显示 HN:约 100 行 CUDA 中的 Flash Attention
Show HN: Flash Attention in ~100 lines of CUDA

原始链接: https://github.com/tspeterkim/flash-attention-minimal

该存储库包含使用 CUDA 和 PyTorch 的 Flash Attention 的最小实现。 该项目的目的是通过提供一个简单且具有教育意义的示例,使学习 CUDA 的过程变得更容易。 目前,该项目仅包含在“flash.cu”中编写的约 100 行的 Flash Attention 前向传递。 用户可以运行基准测试来比较手动注意力和最小闪光注意力的性能。 目标是通过添加反向传递、加速矩阵乘法、动态设置块大小等来改进实现。请注意,存在一些注意事项,例如不支持反向传递、数据类型差异和固定块大小。 对于没有 GPU 的用户,可以使用在线 Colab 演示。

本次讨论围绕实现高效的机器学习算法展开,特别关注 Transformer 和名为“FlashAttention”的近似注意力。 用户更喜欢使用 Triton 编写自定义内核,因为它易于集成到现有工具链和抽象层中,并且不会对性能产生负面影响。 他们提到,甚至 FlashAttention 的创建者也从 Cutlass 转向 Triton。 尽管 Triton 目前仅支持 AMD GPU,但它提供了块级编程和超参数自动优化等优势,使得开发快速内核变得更加简单。 关于零成本与非零成本抽象的争论仍在继续。 双方都同意 Triton DSL(训练、推理、建模)可以使构建复杂的机器学习架构变得更容易。
相关文章

原文
联系我们 contact @ memedata.com