目录天数智芯与 Triton 的适配优势1. LLVM生态兼容2. GPGPU 架构契合3. Triton Kernels 零改写复用天数智芯 Triton 适配1. Triton 架构分层2. 适配工作的三个层面天数智芯 Flash Attention 算子优化Block TilingV1版本 Block Tiling1. V1版本 warps per tile2. MMA 指令3. 天数 FP16 TCU 指令4. 延时归约优化V2 版本 Block Tiling总结本文从 CUDA 兼容到性能优化天数智芯如何让 Triton 在国产 GPU 上高效运行。天数智芯与 Triton 的适配优势1. LLVM生态兼容• 天数智芯的自研软件栈编译器基于 LLVM 开发而 Triton 本身也依赖 MLIR 和LLVM等基础设施。这意味着 Triton 的工具链优化流程能与天数智芯编译器无缝对接无需额外翻译。2. GPGPU 架构契合• 天数智芯 GPU 采用 GPGPU 架构与 Triton 最初支持的 NVIDIA GPU、AMD GPU 架构相似内存模型相似、计算模型一致因此 Triton 中针对 GPGPU 的中间表示优化手段可直接复用3. Triton Kernels 零改写复用• 这是对开发者最友好的优势无需修改代码Triton 经验可直接迁移。如需进一步提升性能可针对特定 kernel 进行优化天数智芯 Triton 适配1. Triton 架构分层•Kernel 层用户编写或自动生成的算子•编译器层对 kernel 进行基础优化和GPU专用优化•LLVM 与硬件后端层将 Triton GPU IR 转换为硬件指令2. 适配工作的三个层面天数智芯 Flash Attention 算子优化• V0版本官方实现支持• V1版本head_dim 切分优化• V2版本转置视图优化Block Tiling• Grid划分对 sequence length 维度按block m 切分• 任务分配不同线程块并行处理不同的batch、head 和 sequence length 分段V1版本 Block Tiling1. V1版本 warps per tile• Warp 垂直排列每个 warp 负责一个 16×128 的横条• 优势• 减少跨 Warp 数据交换• 避免数据排布转换• 提升计算效率2. MMA 指令•线程负载计算• 矩阵 A 总元素量 个 FP16 元素。• Warp 分配。即每个线程寄存器需存储 8 个 FP16 元素。•寄存器片段布局 (Fragment Layout)-右侧图表展示了矩阵 A 在 Warp 内的物理映射。•非连续分布以T0 (Thread 0)为例红框标记它持有的 8 个元素 () 并非在矩阵中连续排列而是分散映射。例如• 位于 Row 0, Col 0-1。• 位于 Row 0, Col 8-9。• 位于 Row 8, Col 0-1。•线程负载计算• 矩阵 c 总元素量 个 FP16 元素。• Warp 分配。即每个线程寄存器需存储 4 个 FP16 元素。•寄存器片段布局 (Fragment Layout)• 右侧图表展示了这 4 个元素在物理空间中的映射逻辑以 T0 (Thread 0) 为例红框标记• 寄存器分配包含两个 .f16x2 寄存器分别存储 和 。• 空间映射 (Layout)映射在矩阵的 Row 0, Col 0 位置。映射在矩阵的 Row 8, Col 0 位置。• 布局特点数据并非连续排列而是存在 8 行的跨度 (Stride)。T0 虽然只负责第 0 列的数据但被拆分到了矩阵的上半部分Row 0和下半部分Row 8。这种特定的 Swizzling 布局是为了配合 Tensor Core 在 K 维度上的高效数据读取与累加。•线程负载计算• 矩阵 B 总元素量 个 FP32 元素。• Warp 分配。即每个线程寄存器需存储 4 个 FP32 元素。•物理映射• 空间分布与矩阵 B 的布局高度一致。Thread 0 (红框) 持有的 位于 Row 0, Col 0-1而 位于 Row 8, Col 0-1。• 意义这种布局确保了计算结果可以直接作为下一次 MMA 运算的输入Accumulator或者通过简单的 Shuffle 操作存回 Shared Memory/Global Memory。3. 天数 FP16 TCU 指令4. 延时归约优化• 原流程沿 k 遍历每步分线程内归约、warp 内线程归约与前步结果求和更新部分和每步都做归约操作• 延时归约去掉 warp 内归约放到循环最后中间计算结果更新为部分累加和Partial Sum循环结束后不同线程结果求和得最终正确结果省去每步开销V2 版本 Block Tiling•V2版本更快的原因• Reduce 方向改变减少中间指令数量• 避免 MMA 结果在不同 Operand 表示之间的额外转换降低数据重排与指令开销总结天数智芯通过深度适配Triton为国产 GPU提供了高效的算子开发解决方案使得开发者能够轻松将现有 Triton 代码迁移到天数智芯 GPU 上。随着更多算子的适配和优化天数智芯 GPU 的生态将更加丰富为国产 AI 芯片的发展提供强大支持。