议程:¶
介绍:Cicie Wang 和 Whitney Tsang(联合组织者)。
Multi-pass profiler - 一个用于编排式和 LLM Agentic 性能分析应用的联邦式 GPU 工具框架(Kevin Fang 等,Meta)
Triton 开发者大会最新动态(Ofer Dekel,微软)
问:谁在用 tritonbench?你们是怎么用的?OpenAI 在用吗?(Cicie Wang,Meta)
问:Triton 的测试策略——大家怎么看?我们缺少什么?希望在哪些方面看到更多的覆盖?(Bill Yoshimi,Meta)
问:自由线程 Python。有计划让 Triton 兼容自由线程吗?(Bill Yoshimi,Meta)
其他话题的自由发言时间。
笔记:¶
MPP (Multi-pass profiler)
许多新的 DSL(如 Gluon 和 TLX)和性能分析器。
正与 OAI 的 Keren 合作进行性能分析
与编译器集成
支持新的 DSL
结构级性能分析时间线
算子级延迟
请参阅 OSDI '25 论文(已被接收)
方法
将分析器、LLM 智能体等工具连接到不同的性能分析后端(如 proton、ncu、nvbit 等)
要求
可编程接口
即时执行(eager execution)(使调试更容易)
易于并行化
沙盒化 - 例如让智能体能够尝试实验(以获得一个干净的环境)
可调试。
原型
数据结构 - 程序 IR、执行轨迹、性能报告
抽象 - 任务(task)和作业(job)(作业可以嵌套)
系统架构
作业图
MPP 运行时 - 调度任务和即时执行
后端 - 状态缓存、GPU/CPU 池。用于错误恢复的数据库
案例研究 1:分析异步操作
有时很困难,因为某些资源是共享的。
我们进行多次传递并测量统计指标。
统计时间线视图。
MPP 可以让你看到执行时间的分布(P20、P50、P80)
案例研究 2:Triton PGO 智能体
阶段/智能体:分析、总结、优化
分析:获取性能分析结果
总结:压缩上下文窗口,生成摘要(TL;DR)
优化:重写内核以提高性能
正在试验 TTGIR 重写。
示例:识别执行变化较大的部分。识别关键路径并建议如何缩短它们。
结果:与无性能分析、NCU 相比,使用 MPP(提升 7-12%)。
失败模式
内核结果改变
死锁
案例研究 3:细粒度 IPC
来自 proton 内核内分析器的时间数据
来自 nvbit 或 cutracer(由 Meta 开发)的指令类型统计信息
可以识别寄存器压力。
结论
在 proton 之上,用于编排性能分析工作流
即将开源
问:添加其他 GPU 厂商(如 AMD)有多困难?
答:如果你的后端能提供数据,我们就能做到。我们没做是因为我们对 warp specialization 感兴趣。这个框架是通用的,你可以实现接口 API。
问:你们有没有试过用优化器来重写汇编代码?
答:演示中使用的是 TTGIR,但你可以创建一个能够重写 PTX 或汇编的智能体。
问:你需要为智能体编写提示(prompt)吗?
答:是的。这是一个非常简单的提示。
Triton 大会最新动态(Ofer Dekel,微软)
日程安排
请务必参加 happy hour 环节进行交流(这可能是最重要的部分)。
请注册。观看直播也需要注册。抱歉,会议当天无法注册。
当你注册后,状态会是待定(pending)。审批可能需要长达一周的时间。(为什么?因为它需要通过微软的安全审查)。
请使用你的机构/工作邮箱注册,而不是 yahoo/gmail/通用邮箱。通用邮箱的审批时间会更长。如果超过 8 天仍未收到批准,可以联系 Ofer。
将有从旧金山到会场的大巴。
需要签证信?请尽快注册,以便我们能为你提供邀请函。
议程
Phil & Thomas - Triton:今天与未来
Mark Saroufim - GPU MODE:Triton 的现状
Jason Ansel - Helion:一个用于内核编写的更高级 DSL
Keren Zhou (George Mason) & Kevin Fang (Proton: 可移植的性能分析)
Lixun Zhang (AMD) - 无需预热:Triton 在 AMD GPU 上的首日速度
Chris Sullivan (Nvidia) - 用于 Triton 的 Nvidia Blackwell GPU 后端
Peter Bell (OpenAI) - Gluon:具有底层控制的基于 tile 的 GPU 编程
Hongtao Y (Meta) - TLX
Wenlei Bao (字节跳动) - Triton - 分布式计算与通信重叠
Yanming Chen (领英) - Liger 内核到训练后的演进
问:谁在用 tritonbench?你们是怎么用的?OpenAI 在用吗?
Kernelize.ai - 使用 tritonbench 进行 vLLM 的每夜测试。构建了一个可视化工具(注意到 Liger 内核和 BF16 在 H100 和 B200 上的性能回归)。
OpenAI - 没在用 tritonbench,用的是内部的基准测试系统。一些低技术含量的东西,ocaml(其中一些在仓库中是开源的)。简单的基准测试。
问:没有添加新的内核吗?
答:我们正在持续更新它们,考虑上游更多的内核,比如 attention,但没有时间表。我们正在更新 MoE。
问:Triton 的测试策略——大家怎么看?我们缺少什么?希望在哪些方面看到更多的覆盖?
Ettore - 希望看到更多的 lit 测试覆盖,这不需要 GPU。运行起来更简单、更快速。而不是端到端地测试算子。
20K 的单元测试很好,但如果我们想要更好的改进,就需要加强 lit 测试。GPU 测试应该放在第三方目录中。添加 lit 测试。
Alex Baden:测试:对于重要的内核,进行 IR 差异比较!运行成本更低(如果 IR 没有变化,就不应该有性能回归)。使用 LLVM 工具来消除空白字符的变化。对于重要的内核,提取并比较 IR 的变化。
问:关于自由线程 Python 的策略是什么?
前端有很多东西需要修复(后端是相当线程安全的)。
但这在我们(OAI)的工作列表中优先级不高。
问:Flex attention:更新注释/文档以使用张量描述符(tensor descriptors)而不是 TMA(除非确实在引用 TMA)。
PyTorch flex attention 使用张量描述符,但注释/代码中引用了 TMA。正在联系 flex attention PyTorch inductor 模板内核的负责人来更新注释和代码。这对使用不支持 TMA 的 GPU 的人来说很困惑。
Ettore:FlexAttention 的前向传播(FWD)使用了张量描述符,但后向传播(BWD)没有,有人能添加张量描述符的支持吗?