已实现

v09_triton_basics

本版本引入什么

本版本先引入小型 Triton kernel,再处理完整注意力路径。

目标是在不混入分页注意力全部复杂度的情况下,说明 Triton 的执行结构。

为什么引入

如果直接从 PyTorch 分页 GQA 跳到完整 Triton 分页注意力 kernel,会同时出现太多新概念:program ID、块大小、掩码、指针运算、编译期常量和启动网格。

核心原则

Triton kernel 被写成处理一个数据分块的程序。许多程序并行运行,每个程序根据自己的 program ID 计算偏移量。

实现会明确呈现这些概念:

  • Program ID 将工作映射到分块。
  • 掩码保护边界处的加载和存储。
  • 块大小显式可见。
  • Kernel 启动形状成为设计的一部分。

建议对比的文件

  • 新增的 Triton kernel 文件。
  • 用于验证的 PyTorch 参考函数。
  • 对比输出的测试或冒烟脚本。

保留的权衡

本版本有意保持较小范围,目标是建立对正确性的信心,而不是追求极致性能。