打开软件,点击"?增长 九州体育官方网登录"按钮,从电脑当选择《九州体育官方网登录》文件,或直接将其拖拽至软件界面中。
软件会自动鉴别并解析导入的文件,您可凭据界面提醒选择所需的保留蹊径或下载体式。
确认无误后,点击"起头下载/处置"按钮。期待进度条读取结束,即可在设定的文件夹中查看下载好的正版文件。
还在手写CUDA内核?CODA来了!LLM和新手也能让Transformer跑出光速,九州体育官方网登录
机械之心编纂部
5 月 22 日,Tri Dao 在社交媒体上转发了 Han Guo 的一条推文。他还写路:「经过一些数学重写,了局发现 Transformer 的所有内容都是一系列 GEMM + epilogue(矩阵乘法加尾声)。给定一些优化的原语,LLM(以及新手)就可以为所有 Transformer 操作编写光速内核!」
Tri Dao 是 FlashAttention 系列的主题作者之一,而这条推文则指向了他们当天颁布的一篇论文:CODA
论文标题:CODA: Rewriting Transformer Blocks as GEMM-Epilogue Programs论文地址:https://arxiv.org/abs/2605.19269代码地址:https://github.com/HanGuo97/coda-kernels
这个名字,读起来像「终曲」,想起来像「CUDA」。来自 MIT、普林斯顿、Together AI 和 Meta 的钻研者,试图用一套新的编程抽象,把 Transformer 训练里那些鲜少被人关注、却持续亏损功夫的「散碎推算」,系统性地消化掉。
布景:训练大模型的「吐妨税」
要理解 CODA 在解决什么问题,先要领略大模型训练的功夫都去哪了。
在一块英伟达 H100 上训练一个 LLaMA-3 风格的 1B 参数模型,大部门人会直觉地以为:功夫都花在矩阵乘法和把稳力推算上,终于那才是「真正的推算」。这个直觉大体上没错:矩阵乘法(GEMM)和把稳力的确占据了重要算力
但若是你打开机能分析器仔细看,会发现还有一批「幼算子」在安静地亏损着功夫:归一化(RMSNorm)、激活函数(SwiGLU、RoPE)、残差加法、跨层规约……它们单个推算量不大,却频仍地把大型中央张量从显存里搬进搬出。
这就是所谓的「内存带宽瓶颈」:好比一个厨艺绝顶的厨师,但每做一路菜都要把食材从远处的仓库搬来、用完再送回去,而不是放在手边的台面上。厨师的手速再快,期待搬运的功夫也是真实的浪费。
更糟糕的是,随着英伟达的 FP8、FP4 等低精度体式让矩阵推算越来越快,这些「搬运」操作的相对成本反而在上升:矩阵乘法加快了,但张量搬进搬出的成本并没有同比缩短。
论文中有一组数据很直观:在 H100 上用 TorchTitan 训练 1B 参数模型时,非矩阵乘法操作占据了相当一部门的端到端运行功夫,且随着 FP8 精度的引入,这一比例还会进一步凸显。
现有的编程框架对此险些力所不及。PyTorch 把 Transformer 的推算表白成一串算子序列,算子之间有清澈的天堑。这种天堑对于自动微分(autograd)极度敦睦,却刚好阻止了跨算子的融合优化:每一个算子天堑,往往就是一次不用要的显存写回。
CODA:「尾声」里藏着宝藏
CODA 的启程点是一个朴素的观察。
在 GPU 上,一个高机能的矩阵乘法(GEMM)内核在结构上分为两个部门:主循环(mainloop)掌管主题的矩阵分块乘加推算,尾声(epilogue)掌管在了局写回显存之前做一些扫尾处置,好比加偏置、类型转换、单一缩放。
尾声存在的意思,在于此时矩阵乘法的输出还「活在」片上寄放器里,还没有落地到全局显存。这是一个短暂的黄金窗口:若是能在这个时刻多做一些推算,就能够齐全省掉一次显存写入再读出的往返。
CODA 的主题洞察是:Transformer 里那些内存密集型操作,其实好多能够被代数地重新参数化,塞进这个「尾声」窗口里执行。
这必要一点数学技巧。以最常见的 GEMM-RMSNorm-GEMM 模式为例:一个矩阵乘法的了局,经过残差加法、RMS 归一化,而后再做另一个矩阵乘法。传统做法是三个独立算子串行执行,中央了局两次落地显存。
CODA 团队发现,RMS 归一化中的行缩放因子 r,由于是每行共享的标量,它和后面的矩阵乘法满足互换律:能够把 r 的利用从「第二个 GEMM 之前」推迟到「第二个 GEMM 的尾声」。推迟之后,第一个 GEMM 的尾声只必要推算部门的「分块均方根」(partial RMS),由一个极轻量的辅助规约内核归并,而齐全的 RMSNorm 推算隐没了。
类似的重新参数化,对 SwiGLU、RoPE(旋转地位编码)、交叉熵损失等操作同样合用,甚至对反向传布也成立。论文中有一个定理证明:只有前向尾声是「分块部门」的,反向传布就自动继承一样的结构。具体请接见原论文查看。
五种「积木」和一套「乐高说话」
CODA 不是一个具体的融合内核,而是一套编程抽象。
它固定住经过专家优化的 GEMM 主循环,而后在尾声地位露出五类可组合的根基原语:
逐元素变换(residual 加法、激活函数、RoPE)向量加载与存储(广播 RMSNorm 权重)矩阵分块加载与存储(保留中央激活供反向传布使用)分块规约(部门均方根、分块 log-sum-exp)有状态变换(在线归一化所需的 max 和 sum-exp 统计)
用这五类积木,一个尺度 Transformer 的前向和反向传布钟注除把稳力之表的险些全数操作都能够被覆盖。
更有意思的是这套抽象对「谁来写代码」的宽容度。论文在尝试中评估了两种实现模式:一种是人为法式员撰写,另一种是用 Claude Code 来天生 —— 给定 CODA 的原语注明、若干示例和实现日志,由 AI 实现大部门内核代码,人为轻度监督。
两种模式的机能阐发均达到了较高水平。Tri Dao 在推文中说「LLM 以及新手就能够编写光速内核」,这正是论文尝试了局在现实层面的映射。
尝试了局
CODA 的基准测试选择的是较为刻薄的敌手:cuBLAS 加上 torch.compile,以及专为 LLM 优化的 Liger Kernel 和 FlashInfer。
论文对每个内核评估了两种实现:CODA (LLM)由 Claude Code 天生,钻研者提供原语注明、若干示例和一份持续更新的实现技巧日志,AI 实现主体代码,人为做轻度监督;CODA (Human)由人为法式员独立编写,使用同样的高层重参数化思路,但不依赖 CODA 原语集自身。两组了局都与 cuBLAS + torch.compile、Liger Kernel、FlashInfer 蹬着化库进行对比。
在单算子层面,以 GEMM-RMSNorm-GEMM 这一典型模式为例,CODA 在对应 1B、7B、70B 三个模型规模的暗藏维度下均实现了对 cuBLAS + PyTorch 基线的超过。SwiGLU、RoPE、交叉熵等尾声组合也有类似阐发。
LLM 天生的内核在大无数基准上与人为手写版本不相高低,个别配置下甚至略有超过。这在 GPU 内核优化这个从来门槛极高的领域,是一个颇为罕见的结论。
反向传布的收益尤为凸起:GEMM-Residual-PartialRMS-GEMM 的反向内核相比基线加快幅度可达 1.6 至 1.8 倍,SwiGLU 反向也有约 1.4 至 1.6 倍的提升。这个方向上,LLM 与人为实现的差距同样微幼。这并不奇怪:反向传布天然涉及更多中央张量的存取,尾声融合的收益就更大;而 CODA 的原语设计足够清澈,使得 AI 模型可能正确地实现组合。
在齐全 Transformer 层的端到端基准中,CODA 的前向加快在分歧规模下约为 5% 至 20%,在较大模型尺寸(对应 70B 规模的暗藏维度)下成效更为显著。
数值精度方面,CODA 的重参数化调整了 RMSNorm 缩放因子的利用机遇,但尝试批注其数值误差与 PyTorch 参考实现相当,在某些配置下误差甚至更幼 —— 得益于 GEMM 主循环自身拥有更高精度的累加器。
CODA 能做什么:一张速查单
在进入更大的视角之前,先把 CODA 的能力边界说明显。
覆盖领域:尺度 Transformer(如 LLaMA 架构)的前向和反向传布中,除把稳力和词嵌入之表的险些全数推算,蕴含 RMSNorm、残差加法、SwiGLU 激活、RoPE 旋转地位编码、交叉熵损失,以及上述操作的反向梯度推算。加快成效:在对应 1B 至 70B 规模的暗藏维度下,单算子层面相比 cuBLAS + torch.compile 基线有分歧水平的提升,其中反向传布收益最为显著(部门内核可达 1.6 倍以上);齐全 Transformer 层的端到端前向加快约为 5% 至 20%,在较大模型尺寸下成效更凸起。谁能用:CODA 基于 CuTeDSL(NVIDIA CUTLASS 的 Python DSL)实现,支持人为法式员和 AI 模型两种内核编写方式,且两种方式均能达到高机能。当前限度:目前仅支持单 GPU 场景,不涉及散布式训练;重参数化重要针对尺度 Transformer 架构,其他架构的合用性有待验证。
CODA 并非孤立的工作。它是一类思想的具体实现:在 GPU 上,真正的优化空间往往不在「算什么」,而在「怎么搬」。
FlashAttention 让把稳力推算「住进」了片上内存,CODA 试图让归一化和激活函数也「住进去」。Triton 降低了写自界说内核的门槛,ThunderKittens、TileLang 等进一步在分歧档次上索求这一空间。这些工作共同指向统一个方向:把 PyTorch 算子图的表白方便性,与靠近手写 CUDA 的执行效能,真正统一在一套可编程的框架里。
Tri Dao 推文的最后一句话值得再回味:「LLM 以及新手就可以为所有 Transformer 操作编写光速内核。」这背后有一个更深的逻辑:当编程抽象设计得足够好,AI 模型自身就能够参加到自身训练基础设施的优化中。这个循环,才是 CODA 最耐人寻味的处所。
从这个角度看,「CODA」这个名字或许还有深意。在古典音乐中,Coda 是乐曲末尾收束全篇的段落。在这里,它是 GEMM 内核的「尾声」—— 而写好这段尾声,或许正是 Transformer 训练系统效能提升的下一个重要章节。
| 软件名称 | 九州体育官方网登录 |
| 软件版本 | v10.63.848 |
| 软件大幼 | 265.23MB |
| 软件分类 | 工具软件 |
| 运行平台 | Android/ios/winall/win7/win10/win11 |
| 软件授权 | 免费版 |
1、打开软件,点击"?增长 九州体育官方网登录"按钮,从电脑当选择《九州体育官方网登录》文件,或直接将其拖拽至软件界面中。
2、软件会自动鉴别并解析导入的文件,您可凭据界面提醒选择所需的保留蹊径或下载体式。
3、确认无误后,点击"起头下载/处置"按钮。期待进度条读取结束,即可在设定的文件夹中查看下载好的正版文件。
下载量:13万
下载量:1779万
下载量:9万
下载量:3521万