随笔分类 - AI编译器
深度学习编译器
摘要:Linalg的FuseElementwiseOps梳理 1 引言 在编译器优化中,算子融合(Operator Fusion)是一项关键技术,它通过合并多个连续的计算操作来减少中间结果的materialization,从而降低内存带宽需求并提升缓存利用率。MLIR的Linalg方言提供了强大的算子融合
阅读全文
摘要:Linalg融合中Producer输出Indexing Map的Permutation检查分析 1. 问题背景 代码位置 // ElementwiseOpFusion.cpp:175-178 AffineMap producerResultIndexMap = producer.getMatchin
阅读全文
摘要:Tensor vs MemRef 1. 基本概念对比 特性 Tensor MemRef 语义 值语义(Value Semantics) 引用语义(Reference Semantics) 可变性 不可变(Immutable) 可变(Mutable) 内存模型 抽象的,不关心内存 具体的内存缓冲区 别
阅读全文
摘要:PyTorch Inductor Scheduler can_fuse 流程深度解析 本文深入剖析 PyTorch Inductor 编译器中算子融合(Operator Fusion)的核心决策流程 can_fuse,详细解析融合条件检查、特殊融合类型、优化策略等关键实现。 目录 流程概述 融合决策
阅读全文
摘要:PyTorch Inductor Scheduler 模块深度解析 本文详细解析 PyTorch 2.x Inductor 编译器的核心调度模块 torch/_inductor/scheduler.py,深入探讨其架构设计、算子融合策略、内存优化技术等关键实现。 目录 模块概述 核心架构 主要类详解
阅读全文
摘要:ONNX-MLIR IndexExpr系统分析学习 < IndexExpr 是 onnx-mlir 项目的核心基础设施之一,它提供了一套统一的接口来处理编译时常量和运行时动态值,是形状推断和代码生成的关键组件。 1. 引言 1.1 设计动机 在深度学习编译器中,索引计算无处不在: 形状推断:计算输出
阅读全文
摘要:ONNX-MLIR DialectBuilder设计整理 本文深入剖析 onnx-mlir 项目中的 DialectBuilder 设计模式,帮助开发者理解如何优雅地构建 MLIR 操作。 1. 引言 在 MLIR 编译器开发中,我们经常需要创建大量的 IR 操作。直接使用 OpBuilder 虽然
阅读全文
摘要:ONNX-MLIR ShapeHelper 深度解析 本文深入剖析 onnx-mlir 项目中的 ShapeHelper 基础设施,帮助开发者理解如何在编译时和运行时计算 ONNX 操作的输出形状。 1. 引言 在深度学习编译器中,形状推断(Shape Inference) 是核心功能之一。准确的形
阅读全文
摘要:DimAnalysis 动态维度分析 1. 概述 DimAnalysis 是onnx-mlir中用于在编译时分析动态维度之间等价关系的工具类。它能够判断两个动态维度在运行时是否相等,从而帮助编译器做出更优的代码生成决策。 2. 核心作用 2.1 消除不必要的广播代码 当两个张量的动态维度已知相等时,
阅读全文

浙公网安备 33010602011771号