学习资料
InfiniTensor 冬季训练营 AI 编译器第五课《拓展 Triton 深度学习编译器——DLCompiler》
发表于:

2026 年 1 月 26 日,2025 冬季 InfiniTensor 大模型与人工智能系统训练营 AI 编译器系列第五课《拓展 Triton 深度学习编译器——DLCompiler》开讲。

本节课由上海人工智能实验室团队讲解其推出的 DLCompiler,DLCompiler 在 Triton 编程模型基础上进行了扩展,通过针对 DSA 芯片的后端适配,实现算子高效执行。

算子开发现状

DSA架构特性

国产 AI 芯片多采用 DSA 架构,与通用 GPU 存在显著差异:

  • 专用计算单元:Cube(矩阵计算)、Vector(向量计算)、Scale(标量计算)
  • 多级缓存体系:L0A、L0B、L0C 等多级片上缓存
  • 数据搬运机制:需要显式管理数据从主机到片上缓存的搬运过程

开发门槛高

传统国产芯片算子开发面临多重挑战:

  • 硬件知识要求:需要深入了解芯片架构、内存层次、计算单元特性
  • 代码复杂度高:单个 Matmul 算子可能需要数百行底层代码
  • 调优困难:手动优化逻辑复杂,性能与维护难以兼顾
  • 架构兼容性:不同代际芯片架构差异大,代码复用性差

生态碎片化

  • 各家厂商提供独立的软件栈,开发者需要针对不同厂商重复开发相同功能,造成资源浪费。

DLCompiler 整体架构和解决方案

整体架构和流程

安装和测试

DLCompiler 开发算子范式

编程范式差异

CUDA 模型:

  • 处理单元:每个线程处理单个数据点
  • 编程粒度:标量级别的细粒度控制
  • 代码复杂度:需要手动管理内存、同步、边界条件

DLCompiler/Triton 模型:

  • 处理单元:每个 program 处理一个数据块(tile)
  • 编程粒度:块级别的粗粒度抽象
  • 自动优化:编译器自动处理内存布局、并行化等细节

DLCompiler 开发算子流程

DLCompiler 开发 GEMM 算子

跨架构的 DSL 扩展

Producer/Consumer 编程模型

创新性地将生产者-消费者模型引入算子开发,通过将 Cube 计算(生产者)和 Vector 计算(消费者)解耦,实现流水线并行,显著提升硬件利用率:

Tile-based 编程接口

针对国产芯片的多级缓存体系,DLCompiler 实现了精细化的 Tile 管理:

数据搬运优化

  • Global Memory → L0A/L0B:预取下一轮计算所需数据
  • L0C → Global Memory:异步写回计算结果
  • 重叠计算与搬运:最大化硬件资源利用率

计算流水化

将算子分解为多个阶段:

  1. 数据加载阶段:从全局内存加载数据到片上缓存
  2. 计算阶段:执行 Cube/Vector 计算
  3. 结果写回阶段:将结果写回全局内存

各阶段可并行执行,形成高效的计算流水线。

智能自动优化

DLCompiler 内置多个优化 Pass:

生态建设和成果展示

上层框架对接和生态建设

基于 DLCompiler 的算子支持与性能优化

未来发展方向

当前 DLCompiler 主要优化单卡内部算子,未来将扩展至多卡场景:

  • 通信隐藏:在计算的同时进行通信
  • 流水线优化:跨设备的计算-通信流水线
  • 拓扑感知:根据网络拓扑优化通信模式

总结

本节课介绍了算子开发现状,主要讲解 DLCompiler 的架构、生态建设和成果以及未来发展规划。

DLCompiler 通过扩展 Triton 的编程模型,为国产 DSA 芯片提供了高效的算子开发解决方案。它不仅降低了国产芯片的开发门槛,还通过统一的编程接口促进了生态整合。随着大模型对算力需求的持续增长,DLCompiler 这类深度学习编译器将成为连接算法创新与硬件加速的重要桥梁,推动国产 AI 芯片生态的健康发展。

2025冬季训练营课程表

💡 学习贴士

更多细节及完整课程内容,请观看直播或查看课程回放。

链接:https://www.infinitensor.com/camp/winter2025

📚 训练营报名持续进行中

扫码报名与加入群聊,或点击 「阅读原文」 直达官网报名