GPUs Go Brrr

主要观点:AI 需大量计算,近年来致力于减少计算并更高效运行,现提出两个问题,此文包含实践与哲学。以 NVIDIA H100 为例,其硬件细节重要,全计算在流多处理器(SM),重点是保持张量核心运行,发现 H100 保持张量核心运行不易,有诸多 quirks 如 WGMMA 指令复杂、共享内存需注意、地址生成开销大、 occupancy 仍有帮助等。基于此设计了嵌入 CUDA 的 DSL ThunderKittens,能方便编写内核,其简单抽象的小 tiles 与 AI 和硬件趋势相符,认为应围绕硬件设计 AI,且 ThunderKittens 即将应用于 AMD 硬件。
关键信息

  • 关注 NVIDIA H100 原因及硬件细节,如 80GB HBM3、50MB L2 缓存等。
  • H100 计算及利用率情况,张量核心很关键。
  • WGMMA 指令特点及使用中的问题,如内存布局复杂等。
  • 共享内存的单访问延迟及需注意的 bank 冲突等问题。
  • 张量核心和内存地址生成的开销及 TMA 的作用。
  • occupancy 对硬件利用的影响及不同 GPU 的情况。
  • ThunderKittens 的设计及示例,能简化内核编写,提高性能。
    重要细节
  • 不同 GPU 如 H100 和 RTX 4090 的特点及精神动物。
  • ThunderKittens 的四种模板类型及操作。
  • 各种内核在不同 GPU 上的性能表现及对比图。
阅读 14
0 条评论