网易首页 > 网易号 > 正文 申请入驻

torch.compile 加速原理:kernel 融合与缓冲区复用

0
分享至

PyTorch 的即时执行模式在原型开发阶段很方便,但在推理性能上存在明显短板。每个张量操作独立启动 kernel、独立访问显存,导致内存带宽成为瓶颈GPU 算力无法充分利用。

torch.compile 通过提前构建计算图来解决这个问题。它的核心策略是操作融合和缓冲区复用:第一次调用需要编译而之后的推理会快很多。在 PyTorch 官方的基准测试中,各种模型平均获得了 20%-36% 的加速。

即时执行意味着每个操作独立运行。一个 32 层、每层 100 个操作的模型,前向传播一次就要触发3200 次 kernel 启动,这些开销全部叠加到推理延迟里。



延迟飙升的根本原因是什么?内存才是即时执行成为瓶颈。Nvidia H100 能跑到 300+ TFLOPs但内存带宽只有约 3 TB/s。所以内存搬运的代价太高了,即时执行模式在规模化场景下根本撑不住。每个操作至少要做三次内存访问:从 VRAM 读输入张量、把中间结果写回 VRAM、再从 VRAM 读权重。

比如说这个简单的表达式 x = torch.relu(torch.matmul(a, b) + c) ,即时执行模式下至少要六次内存传输:分别读 a、b、c,写矩阵乘法结果,读这个结果,写最终输出。内存带宽很快就被打满了,GPU 核心反而闲着。



所以问题的本质在于:独立的操作没法融合内存传输,造成大量冗余的 VRAM 访问。

生产环境下情况更糟。CPU 要处理成千上万的并发请求,花在 PyTorch 调度器上的时间可能比真正计算还多,吞吐量被严重拖累。

计算图

torch.compile 要解决的就是这种逐操作的开销。它会提前捕获整个计算图,核心靠两个组件:TorchDynamo 是一个 Python JIT 编译器,负责拦截字节码执行;TorchInductor 是后端,为 GPU 生成优化过的 Triton kernel,为 CPU 生成 C++ 代码。





PyTorch 里这个计算图叫 FX Graph,把操作表示成有向无环图(DAG)的节点。调用 torch.compile 时,TorchDynamo 分析 Python 字节码,生成 FX 图:节点是张量操作,边是数据依赖。

TorchInductor 拿到 FX 图后会做三件事:操作融合、内存规划、Triton 自动调优。

操作融合

还是前面那个例子 x = torch.relu(torch.matmul(a, b) + c)。即时执行要六次 VRAM 传输,TorchInductor 把它们融合成一个 Triton kernel:先把 a、b、c 的分块加载到片上 SRAM(共享内存),在寄存器里算矩阵乘法,加法和 ReLU 也在寄存器里做完,最后只把结果写回 VRAM。

内存传输从 6 次降到 2 次,减少了 3 倍。

内存规划

TorchInductor 不会给每个中间结果都分配新内存,而是让生命周期不重叠的缓冲区共用同一块空间——和编译器复用寄存器是一个思路。这相当于在整个计算图上做全局缓冲区复用,对激活模式不规则的 Transformer 模型特别有效。另一个好处是压低峰值内存占用,能跑更大的 batch。

Triton 自动调优

Triton 自动调优会针对具体硬件和输入 shape,自动搜索最优的 kernel 配置:tile 大小、线程块维度、流水线深度这些参数都不用手动调。

结果

第一次调用时,大模型的编译可能要几分钟。但后续调用只需要几毫秒加载预编译好的 kernel。初始开销会在后续推理中摊销掉,特别适合生产场景下模型持续运行的情况。冷启动慢一点,后面每个请求都快很多。

PyTorch 官方在 165 种模型(Transformer、CNN、扩散模型都有)上做了基准测试,torch.compile 在 float32 精度下平均加速 20%,开启自动混合精度(AMP)后加速 36%。

用起来也很简单:

import torch
# For a model
model = YourModel()
compiled_model = torch.compile(model)
# Or for a function, also enables Triton autotuning
@torch.compile(backend="inductor")
def forward_pass(x, weights):
return torch.relu(torch.matmul(x, weights))
output = compiled_model(input_tensor)

这就是 torch.compile 的大致原理:不再为每个操作单独启动 kernel、单独搬运数据,而是用一个 kernel 处理多个操作,共享内存缓冲区。内存瓶颈的影响被大幅削减,GPU 算力利用率上去了。

总结

这种加速具有普适性,不只对大语言模型有效,CNN、扩散模型等架构同样适用。torch.compile 的价值在于:它把原本需要手写 CUDA 或 Triton 才能实现的优化,封装成了一行代码的事情。对于生产环境下的推理服务,这是目前性价比最高的优化手段之一。

https://avoid.overfit.cn/post/271bbf42f4a946c3a92b8a9745e223db

作者:Aryan Keluskar

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
争议!阿森纳悍将踩马竞队徽引冲突 56岁匪帅拉架反遭推搡后暴怒

争议!阿森纳悍将踩马竞队徽引冲突 56岁匪帅拉架反遭推搡后暴怒

我爱英超
2026-04-30 07:21:54
多家私人影院涉黄被曝光:服务细节辣眼,价格明码标价,照片流出

多家私人影院涉黄被曝光:服务细节辣眼,价格明码标价,照片流出

老猫观点
2026-04-30 11:42:48
浙江男子花860万买了套排屋,收房时傻眼,院子里有一个“凸起”,业主:跟老家的厕所一样,开放商:不利因素已公示

浙江男子花860万买了套排屋,收房时傻眼,院子里有一个“凸起”,业主:跟老家的厕所一样,开放商:不利因素已公示

极目新闻
2026-04-30 10:33:16
激烈冲突!巴雷特怒喷哈登:来我们替补席拿球就是不尊重

激烈冲突!巴雷特怒喷哈登:来我们替补席拿球就是不尊重

仰卧撑FTUer
2026-04-30 13:03:06
图解丨中国台湾人均GDP首次同时超过日本和韩国

图解丨中国台湾人均GDP首次同时超过日本和韩国

格隆汇APP
2026-04-27 17:45:34
乌克兰的艰苦岁月:610亿美元到900亿欧元

乌克兰的艰苦岁月:610亿美元到900亿欧元

书生论剑
2026-04-29 06:48:54
詹姆斯25+7创历史第1神迹,湖人惜败火箭!里夫斯16中4,艾顿暴走

詹姆斯25+7创历史第1神迹,湖人惜败火箭!里夫斯16中4,艾顿暴走

一将篮球
2026-04-30 13:42:44
辽宁锦州凌海市发生一起交通事故造成4人死亡

辽宁锦州凌海市发生一起交通事故造成4人死亡

新京报
2026-04-30 13:08:07
寒武纪触及涨停 成交额近260亿

寒武纪触及涨停 成交额近260亿

财联社
2026-04-30 13:46:42
何润东出席“苏超”未收1分钱出场费,纯属友情演出

何润东出席“苏超”未收1分钱出场费,纯属友情演出

扬子晚报
2026-04-30 12:37:25
17岁男生不当操作导致阴茎骨折,错失早期最佳治疗窗口,延误救治或影响后续功能恢复

17岁男生不当操作导致阴茎骨折,错失早期最佳治疗窗口,延误救治或影响后续功能恢复

观威海
2026-04-28 18:12:05
骑士逆转险胜3-2猛龙:哈登23+9季后赛破4000分 莫布利23+9

骑士逆转险胜3-2猛龙:哈登23+9季后赛破4000分 莫布利23+9

醉卧浮生
2026-04-30 10:18:01
国铁正式通知!5月30日新规落地,60岁以上老人坐高铁福利来了

国铁正式通知!5月30日新规落地,60岁以上老人坐高铁福利来了

北纬的咖啡豆
2026-04-29 19:35:49
调查 | 两名工人,坠亡在电梯井

调查 | 两名工人,坠亡在电梯井

新民周刊
2026-04-30 12:07:02
“上午立夏,穿单衣;夜晚立夏,五月寒”,今年立夏在几点?

“上午立夏,穿单衣;夜晚立夏,五月寒”,今年立夏在几点?

阿龙美食记
2026-04-26 17:10:17
香奈儿发布新款凉鞋,仅包裹脚后跟,脚背部分几乎完全裸露,王菲在1999年巡演中曾穿过类似款式高跟鞋;网友:“这和光脚的区别在哪?”

香奈儿发布新款凉鞋,仅包裹脚后跟,脚背部分几乎完全裸露,王菲在1999年巡演中曾穿过类似款式高跟鞋;网友:“这和光脚的区别在哪?”

鲁中晨报
2026-04-29 21:51:12
高校丨“大儒”杨念群被举报与十数名女子发生不正当关系,自称“学术布拉德皮特”(简明版)

高校丨“大儒”杨念群被举报与十数名女子发生不正当关系,自称“学术布拉德皮特”(简明版)

忘忧杂话店
2026-04-29 15:25:20
印度一男子为取姐姐留下的1400元,挖出姐姐尸骨背到银行取款,只因银行要求必须本人到场

印度一男子为取姐姐留下的1400元,挖出姐姐尸骨背到银行取款,只因银行要求必须本人到场

观威海
2026-04-29 10:32:12
刚下飞机就被抓!美国佬用抓孟晚舟的套路、逮捕了中国公民徐泽伟

刚下飞机就被抓!美国佬用抓孟晚舟的套路、逮捕了中国公民徐泽伟

吃货的分享
2026-04-29 04:49:05
最败家富二代濒临破产?800亿地产豪门,快被接班人卖光了

最败家富二代濒临破产?800亿地产豪门,快被接班人卖光了

金融八卦女
2026-04-29 16:03:41
2026-04-30 14:36:49
deephub incentive-icons
deephub
CV NLP和数据挖掘知识
1985文章数 1461关注度
往期回顾 全部

科技要闻

四巨头财报齐发:AI已经不只是风口

头条要闻

"上海最通透爸爸"去世 女儿:他退休20多年这辈子不亏

头条要闻

"上海最通透爸爸"去世 女儿:他退休20多年这辈子不亏

体育要闻

骑士天王山:哈登、莫布里和……施罗德?

娱乐要闻

孙杨妈妈被曝!过往言行被扒大开眼界

财经要闻

安世之乱,闻泰帝国近黄昏?

汽车要闻

上汽一季报出炉 在低增长周期里守住基本盘

态度原创

艺术
家居
亲子
教育
军事航空

艺术要闻

安东·爱德华·基尔德鲁普:19世纪丹麦风景画家

家居要闻

灵动实用 生活艺术场

亲子要闻

助孕人群高龄化趋势日益突出!建设生育友好型社会,妇产科专家这样说……

教育要闻

一文读懂!2026年北京中招特长生政策出炉

军事要闻

意大利议会批准:捐赠航母给印度尼西亚

无障碍浏览 进入关怀版