v09_triton_basics
本版本引入什么
本版本先引入小型 Triton kernel,再处理完整注意力路径。
目标是在不混入分页注意力全部复杂度的情况下,说明 Triton 的执行结构。
为什么引入
如果直接从 PyTorch 分页 GQA 跳到完整 Triton 分页注意力 kernel,会同时出现太多新概念:program ID、块大小、掩码、指针运算、编译期常量和启动网格。
核心原则
Triton kernel 被写成处理一个数据分块的程序。许多程序并行运行,每个程序根据自己的 program ID 计算偏移量。
实现会明确呈现这些概念:
- Program ID 将工作映射到分块。
- 掩码保护边界处的加载和存储。
- 块大小显式可见。
- Kernel 启动形状成为设计的一部分。
建议对比的文件
- 新增的 Triton kernel 文件。
- 用于验证的 PyTorch 参考函数。
- 对比输出的测试或冒烟脚本。
保留的权衡
本版本有意保持较小范围,目标是建立对正确性的信心,而不是追求极致性能。