06. 5 Triton Design Patterns | 从算子到设计
本页是 Part 3 的轻量总结页,只负责把 01-06 里出现过的模式收束成几条可复用的设计思路,再把读者自然带到 07-11。
1. 模式复盘
- Element-wise(01, 02):每个元素独立处理,适合做局部融合
- Reduction(03, 06):需要跨线程归约,核心是 mask、
tl.max、tl.sum - GEMM(04):二维分块 + K 维循环,是最典型的块状算子
- Fusion(02, 03, 06):减少 HBM 往返,把中间结果留在 SRAM 里
2. 三条设计原则
- 先看数据流,再看算子
- 先决定融合边界,再决定分块
- 先保证正确性,再谈 autotune
3. 轻量设计题
请在不写完整 Triton kernel 的前提下,回答下面的问题:
text
output = (x @ W) * sigmoid(x @ W)这是一个去掉门控分支的 SwiGLU 简化版本。
你可以先思考:
- 这个算子属于哪类模式?
- 哪些部分适合融合,融合边界在哪里?
- Grid 和 Block 应该怎么设计?
- 如果输入维度很大,分块策略应该考虑什么?
这道题只要求写设计说明,不要求写完整 kernel。
4. 桥接到 07-11
Part 3 后半部分会把这些模式放进更真实的 LLM 推理场景里:
- 07-09:Attention 优化,重点是让单次计算更快
- 10-11:推理优化,重点是让服务更省、更灵活
如果说前半部分是在建立 Triton 的设计骨架,那么后半部分就是把这些骨架放进工业级推理路径里。
建议阅读顺序
建议在 3.2 过渡篇 之后、3.3 进阶A:Attention优化 之前先读一遍本页,再进入后续主线。
