Triton:导读 从算子开发到模型服务
这篇文章解决什么问题
这一篇不讨论具体 kernel 或服务配置,而是给整个系列建立阅读入口。Triton 这个主题天然分成两条主线:一条围绕 OpenAI Triton 展开,关注算子实现、访存组织与性能判断;另一条围绕 NVIDIA Triton Inference Server 展开,关注模型部署、服务调度与压测调优。如果不先把这两条线分开,后续阅读很容易在“写 kernel”和“跑服务”之间来回切换,最后两边都不够稳定。
这个系列如何展开
整个系列按照“先分清对象,再逐步进入实现”的顺序组织。
00建立实验起点,确认远端 Linux GPU 服务器上的 OpenAI Triton 与 NVIDIA Triton 环境都可以最小验证。01先把两个同名的 Triton 拆开,明确它们各自解决的问题和边界。02到05进入 OpenAI Triton 主线,从编程模型、性能思维一路推进到 matmul、autotune 和推理热点算子。06到08切到 NVIDIA Triton 主线,从基础部署进入服务端调度,再进入 perf_analyzer 驱动的调优闭环。09最后把系列内容收束成一个最小可展示项目,避免文章只停留在知识点层面。
系列目录
- Triton:00 环境准备与最小验证:建立统一实验起点,确认环境和最小可运行闭环。
- Triton:01 两个 Triton 的职责边界:拆清 OpenAI Triton 与 NVIDIA Triton 的职责分工。
- Triton:02 OpenAI Triton 基础编程模型:建立
program、grid、tile与mask的基本心智模型。 - Triton:03 OpenAI Triton 性能思维:把 kernel 放回
memory-bound与compute-bound的判断框架。 - Triton:04 Matmul、Autotune 与 PyTorch 集成:从一维算子走向二维 tile、候选配置和与 PyTorch 的协作关系。
- Triton:05 推理热点算子与 RMSNorm:讨论什么样的推理算子值得单独用 Triton 接管。
- Triton:06 NVIDIA Triton 基础部署:建立
model repository、config.pbtxt与最小推理服务闭环。 - Triton:07 调度、批处理与并发:理解
dynamic_batching、instance_group与吞吐时延权衡。 - Triton:08 性能分析与调优闭环:用
perf_analyzer建立稳定的压测与调优方法。 - Triton:09 项目落地与后续路线:把整条学习链收束成可复现、可展示的最小项目。
推荐阅读方式
如果目标是理解 OpenAI Triton,重点阅读 00、01、02、03、04、05。如果目标是把模型组织成稳定的在线推理服务,重点阅读 00、01、06、07、08、09。如果目标是把这两个方向串起来形成一个完整的 AI Infra 项目,建议按编号顺序完整阅读。
读完这个系列应该获得什么
这个系列的目标不是让读者记住更多名词,而是建立一组稳定判断。
- 什么时候应该把问题归到算子实现层。
- 什么时候应该把问题归到模型服务层。
- 如何区分实验环境、实现细节和性能结论之间的关系。
- 如何把零散实验整理成能复现、能比较、能展示的工程成果。
结论
如果把这个系列压缩成一句话,它讨论的是同一个问题的两个层面:一层是“一个算子怎样算得更合理”,另一层是“一个模型怎样以服务的形式跑得更稳定”。只有把这两层连起来,Triton 这个主题才真正具有工程价值。
系列导航
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Smarter's blog!
评论
