
7 月 24 日,2026 夏季 InfiniTensor 训练营 Triton & 九齿方向第三课《九齿一重:初窥》开讲。
前置课程《Triton 练气术》系统讲解了 Triton 并行编程语言核心知识,涵盖 DSL 特性、与 CUDA 对比优势及 program_id、arange、load、store 四大基础 API 等内容。
本节课将带你深入理解九齿编程语言,它如何以 Triton 为编译后端,通过“排布+应用”的独特范式,屏蔽底层指针与内存细节,让并行编程初学者也能写出高可读、易维护的高性能 Kernel?从向量加法到 Flash Attention,我们将通过代码与算法的对应关系详细讲解九齿。
九齿是什么?
1.核心定义:一门提供张量级抽象的领域特定语言(DSL)。
2.使用 Triton 作为编译后端:
- 用户层:使用九齿 DSL 编写张量级代码。
- 编译层:Code Generator 将九齿代码编译为 Triton 代码。
- 后端层:复用 Triton 成熟的编译优化后端,避免重复造轮子。
3.对并行编程初学者友好
4.更强的代码可读性与可维护性
为什么需要九齿?

- 九齿的定位:填补 PyTorch 与 Triton 之间的空白,剥离并行细节,让串行编程思维平滑过渡到并行开发。
直观对比:九齿 vs Triton

1.代码量对比:矩阵乘法案例中,九齿代码量显著少于Triton。
2.抽象层级对比:
- Triton:关注 Pointer、Stride、Offsets、Mask、显式 Load/Store。
- 九齿:无指针概念,无显式内存访问;关注 Arrangement(排布)、Application(应用)、tile、expand 等张量操作。
向量加法(Hello World)


1.算法原理:
元素独立,天然适合并行;按 BlockSize 分块计算。
2.Triton 实现回顾:
Pid 获取、Offsets 计算、Mask 处理、Load/Add/Store。
3.九齿实现解析:
- arrangement:使用
.tile()将 A/B/C 按 BlockSize 切分并对齐。 - application:直接对切分后的 Tile 组进行
C = A + B。

4.张量可视化

矩阵乘法(GEMM)


1.并行算法回顾:
M/N/K 三维分块,C 的每个 Block 对应 A 的一行 Block 与 B 的一列 Block,累加小矩阵乘结果。
2.九齿排布技巧:
- 双层 Tile:第一层切物理块,第二层组合逻辑行/列。
- Expand:解决 A 的行 Block 与 C 的 Block 数量不对应问题,建立广播映射。
- Squeeze:去除冗余维度,确保最外层形状一致以建立对应关系。
3.九齿实现:


初始化累加器,遍历对应好的 A/B Tile 组进行.dot()累加。
4.张量可视化:



二维卷积
1.im2col (Image-to-Column):
将卷积转换为隐式矩阵乘法以避免内存膨胀。

2.Implicit GEMM

3.九齿实现

- 直接复用 GEMM 的 Arrangement 与 Application。
- 仅需编写 Input/Filter/Output 到矩阵乘参数的转换逻辑。
4.张量可视化

- 重叠Tile:使用 stride 参数处理滑动窗口重叠。
- Ravel vs Flatten:九齿中 Ravel 用于展平嵌套张量层级,Flatten 用于展平单层张量维度。

Flash Attention-2


1.算法对标:严格对应论文 Algorithm 描述(Q/K/V分块、Online Softmax、累加更新)。
2.张量可视化:

3.九齿实现:

加入训练营
📺完整课程内容,请观看直播或查看课程回放:
InfiniTensor 官网: https://www.infinitensor.com
B站直播: InfiniTensor 官方直播间
视频号直播: InfiniTensor 视频号预约
答疑交流: 训练营官方社群⬇️

关注与交流

