Hacker News 中文摘要

RSS订阅

当内核名称包含"cutlass"时,FP8运行速度提升约100 TFLOPS -- Fp8 runs ~100 tflops faster when the kernel name has "cutlass" in it

文章摘要

Mogball在Triton项目中提交了关于持久注意力机制的Pull Request #7298,主要内容是添加相关教程和实现。该PR位于triton-lang/triton代码库中。

文章总结

以下是文章主要内容的重新陈述:

标题

[Gluon][教程] Mogball提出的持久注意力机制 (#7298)

主要内容

  1. Pull Request概述

    • Mogball向triton-lang/triton仓库提交了关于持久注意力机制的PR #7298
    • 该PR包含93个提交,修改了5个文件,增加了466行代码,删除了512行代码
  2. 性能改进

    • 重写了注意力内核使其具有持久性,在低上下文情况下表现更好
    • 但在大上下文情况下,fp16性能因ptxas指令调度问题有所下降
    • 当内核名称包含"cutlass"时,fp8性能提高了约100 TFLOPS
  3. 性能数据对比

    • 提供了D=64和D=128两种维度下,因果和非因果注意力机制的性能对比表格
    • 展示了从1024到65536不同上下文长度(N_CTX)下的triton-fp16和triton-fp8性能数据
  4. 技术细节

    • 通过在内核名称中添加"cutlass_"来触发特殊优化
    • 讨论了ptxas编译器对包含"cutlass"的内核名称的特殊处理
    • 有开发者通过反汇编ptxas证实了这一点
  5. 讨论与审查

    • 多位开发者参与了代码审查和讨论
    • 讨论了性能下降的原因和可能的解决方案
    • 提到了布局转换和内核命名对性能的影响
  6. 合并状态

    • PR已被合并到main分支
    • 通过了9项检查
    • 原始分支mogball/persistent已被删除

关键点

  • 该PR主要优化了注意力机制在低上下文情况下的性能
  • 发现并利用了ptxas编译器对特定内核名称的特殊优化
  • 虽然在某些情况下性能有所下降,但整体上改进了注意力机制的执行效率

评论总结

评论总结:

  1. 关于NVIDIA优化争议:
  • 有评论指出NVIDIA存在针对特定内核名称的硬编码优化行为,认为这是不稳定的实验性优化,可能引发潜在问题 "By disassembly of ptxas...strstr(kernel_name, "cutlass")" "this is an unstable, experimental, aggressive optimization...may produce some elusive bugs"

  • 另有评论质疑NVIDIA与Intel类似行为受到不同对待 "When intel did it, the pitchforks came out. Nvidia seems to get a pass"

  1. 关于代码提交规范:
  • 批评提交信息过于简略,建议使用amend功能改进 "Almost 100 commits with pointless commit messages like 'wip' or 'x'" "Someone really needs to learn to use git commit --amend"
  1. 历史案例回顾:
  • 提及25年前ATI(AMD)通过重命名可执行文件操纵Quake III基准测试的往事 "ATI caught manipulating the Quake III benchmarks by renaming the executables to 'quack'" 提供了多个历史报道链接作为佐证
  1. 其他观点:
  • 认为当前讨论内容重复,没有新观点 "This was discussed before...there's nothing new that I can see"