学习资料
InfiniTensor 冬季训练营 Triton & 九齿第三课《九齿二重:渐悟》
发表于:

2026 年 1 月 23 日,2025 冬季 InfiniTensor 大模型与人工智能系统训练营 Triton & 九齿系列第三课《九齿二重:渐悟》开讲。

本节课主要演示九齿如何简化并行编程。

九齿环境配置与基础概念

1. NineToothed Puzzles

2. 九齿张量基础

  • 符号张量:不存储实际数据值,仅存储元信息和符号表达式。
  • 创建张量
    • 通过 Tensor类创建,指定具体形状(如 shape=(2, 3))或仅指定维度(如 ndim=2)。

  • 张量求值与可视化
    • 使用 eval()方法将符号张量转换为具体的 numpy数组。
    • 打印内容显示元素的索引而非实际数值,有助于理解并行计算中的数据划分。
    • 使用 subs()函数将符号形状的张量转换为数值形状的九齿张量,然后通过 eval()转为 numpy数组。

九齿核心三要素深入解析

1. 要素一:排布

  • 概念:定义如何将输入张量划分到不同的并行计算单元。
  • 操作:使用 tile操作分块张量。
  • 嵌套张量:查看层级信息通过 .shape.dtype

  • 可视化:使用 visualize()函数展示结构。
  • 符号化参数:增加灵活性,便于自动调优。
  • 一致性原则:所有参与运算的张量在排布后最外层形状必须一致。

2. 要素二:应用

  • 概念: 定义在每个并行程序实例上执行的具体计算逻辑。
  • 重要区别: 应用函数中操作的张量是经过排布后的“块”(即次外层张量),而非原始的全局张量。
  • 运算示例:
    基础运算:如向量加法 (z = x + y)。
  • 归约操作: 如求和 (tl.sum)。当分块导致块大小不匹配时(如向量长度不是 blocksize 的整数倍),需要使用 other 参数来填充无效区域的值。
  • 迭代操作: 通过对排布后产生的多层张量进行迭代,可以实现更复杂的算法。这通常要求张量至少被排布成三层。

3. 要素三:张量

  • 概念:声明算法所操作的张量的基本属性(如维度)。
  • 作用:为九齿编译器提供必要信息,以生成正确的代码。

总结

本节课演示了九齿如何简化并行编程,重点在于理解符号张量、嵌套结构和自动并行机制,为开发高效计算内核奠定基础。

2025冬季训练营课程表

💡 学习贴士

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

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

📚 训练营报名持续进行中

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