从朴素实现到 Auto-Tuning
会员专享编写第一个 Flash Attention Kernel,并利用 Auto-Tune 进行性能优化。
在权益中心获取代码我们在上一章推导出了 Flash Attention 的数学公式(Tiling + Online Softmax)。现在,是时候把数学变成代码了。
核心循环结构
从公式到 Kernel,中间隔着三个必须先想清楚的问题。
第一,两层循环谁并行、谁串行。 上一章的推导写成了 "Outer Q, Inner K":外层遍历 的分块,内层遍历 的分块。但在 Triton 里你不会看到外层循环,因为它被 SPMD 模型隐式并行化了:每个 Program 认领一个 块, 就是它的编号。真正写成 的只有内循环。这一点如果没建立起来,读 Kernel 时会一直找不到外层循环在哪。
登录以继续阅读
这是一篇付费内容,请登录您的账户以访问完整内容。
CookLLM文档