Skip to content

06. 5 Triton Design Patterns | 从算子到设计

本页是 Part 3 的轻量总结页,只负责把 01-06 里出现过的模式收束成几条可复用的设计思路,再把读者自然带到 07-11。

导航: 上一组 3.2 过渡篇 | Chapter 3 导学 | 下一组 3.3 进阶A:Attention优化

1. 模式复盘

  • Element-wise(01, 02):每个元素独立处理,适合做局部融合
  • Reduction(03, 06):需要跨线程归约,核心是 mask、tl.maxtl.sum
  • GEMM(04):二维分块 + K 维循环,是最典型的块状算子
  • Fusion(02, 03, 06):减少 HBM 往返,把中间结果留在 SRAM 里

2. 三条设计原则

  • 先看数据流,再看算子
  • 先决定融合边界,再决定分块
  • 先保证正确性,再谈 autotune

3. 轻量设计题

请在不写完整 Triton kernel 的前提下,回答下面的问题:

text
output = (x @ W) * sigmoid(x @ W)

这是一个去掉门控分支的 SwiGLU 简化版本。

你可以先思考:

  1. 这个算子属于哪类模式?
  2. 哪些部分适合融合,融合边界在哪里?
  3. Grid 和 Block 应该怎么设计?
  4. 如果输入维度很大,分块策略应该考虑什么?

这道题只要求写设计说明,不要求写完整 kernel。

4. 桥接到 07-11

Part 3 后半部分会把这些模式放进更真实的 LLM 推理场景里:

  • 07-09:Attention 优化,重点是让单次计算更快
  • 10-11:推理优化,重点是让服务更省、更灵活

如果说前半部分是在建立 Triton 的设计骨架,那么后半部分就是把这些骨架放进工业级推理路径里。

建议阅读顺序

建议在 3.2 过渡篇 之后、3.3 进阶A:Attention优化 之前先读一遍本页,再进入后续主线。

Released under the MIT License.