议程:

  • 介绍: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,微软)

    • https://aka.ms/tritonconference2025

    • 日程安排

      • 请务必参加 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)没有,有人能添加张量描述符的支持吗?

会议纪要