#9 · 主分类: GPU 计算框架
metal-flash-attention
FlashAttention(Metal 移植版)
项目最后更新:09/22/24
GitHub Stars
613
Forks数量
41
贡献者数量
4
许可证
MIT
收录理由
这个项目把 FlashAttention 算法移植到 Apple 芯片的 Metal 上,代码本身和工程笔记都值得细读。实现保持精简,是一组 Swift 源码,运行时 JIT 编译,而不是预编译的二进制。README 把各种硬性取舍讲得很透。Apple 硬件没有原生 FP32 原子操作,加上寄存器压力,迫使作者重新设计了反向传播:拆成独立的 dQ 和 dK/dV 内核,用更多 GEMM 换来了注意力矩阵两个维度上的完全并行化。性能数据用每秒十亿指令数(GI/s)对照 roofline 模型给出,而不是裸的 GFLOPS——在 M1 Max 上稳定跑到 4400 GI/s,ALU 利用率 83%。这个数字给了你一个具体参照,可以判断自己的 Metal shader 是否浪费了 ALU 吞吐。寄存器溢出和分块策略,对任何想把 CUDA 注意力内核搬到 Apple GPU 的人,都有直接借鉴意义。
相关文章
暂无针对该项目的文章。
如需补充新闻资讯、使用教程、应用测评等内容,欢迎 联系我们推荐选题或投稿。
同类热门项目
kompute
基于Vulkan的通用GPU计算框架,支持数千种跨厂商显卡(AMD、高通、NVIDIA等)。极速、支持移动端、异步,并针对高级GPU数据处理场景优化。由Linux基金会支持。
lupine
LUPINE 是一种基于 IP 的 GPU 桥接技术,可将远程 GPU 挂载到仅 CPU 的机器上。
dstack
供应商无关的编排,支持训练、推理和代理工作负载,适用于 NVIDIA、AMD、TPU、Tenstorrent,可在云、Kubernetes 和裸金属上运行。
MetalPetal
基于Metal构建的GPU加速图像和视频处理框架。
tt-metal
:metal: TT-NN 算子库,以及 TT-Metalium 低级内核编程模型。