☰
CANN图模式 --ACL Graph运行时简介
2026/10/24 5:38:57 网站建设 项目流程

大模型推理越来越快,很多人第一反应是“芯片变强了”。但真正懂部署的开发者都知道——有时候 NPU 不是在算,是在等 Host 下发指令。今天我们就拆一个最容易被忽略、但收益极高的点:CANN Runtime 的ACL Graph特性。

一、先搞清楚:什么是 CANN 运行时

CANN 运行时(Runtime)是昇腾软件栈里“承上启下”的一层:向上接 PyTorch、MindSpore、推理框架,向下驱动 Ascend NPU。

可以把它理解成NPU的调度中心——模型不是“直接跑在芯片上”,而是先经过 Runtime 去做设备管理、内存分配、流调度、算子下发,再真正执行。

一句话:框架管模型,Runtime 管调度执行,是CANN的大脑。

二、CANN 运行时到底管什么

Device 管理:NPU 设备初始化、查询、配置

Context 管理:执行上下文,隔离不同任务环境

Stream 管理:算子任务按序异步下发

Event 管理:流间同步、执行栅栏

Memory 管理:Device / Host 内存申请、拷贝、释放

Kernel 管理:算子注册与 Launch

而这些能力之上,还有一个最近在推理场景里存在感越来越强的能力 👇

三、ACL Graph

很多开发者容易误会 ACL Graph 是“算子融合”或“图优化”,其实不是。它分为两个阶段:

Capture 阶段把 Stream 上的算子下发序列录下来

Replay 阶段同样 shape 进来,一次下发整图执行

省掉的是哪部分?不是算力,是 Host 侧逐算子下发的调度开销。

为什么大模型推理特别吃这套

Decode 阶段常见特征是:每步只出 1 个 token,单算子计算量小,但算子数量极多,Host 下发速度跟不上 Device 执行速度。

这时候 NPU 上就会出现“空泡”——上一个算子跑完了,下一个还没发过来。这就是典型的 Host-bound。

ACL Graph 的做法很直接:把固定 shape 的算子流捕获成图,回放时一次提交,Host 不再逐个喊“下一个”。

四、Eager模式和ACL Graph差在哪

Eager 模式:逐算子下发,灵活、适合调试,但 Host 开销大,Device也存在资源抢占

ACL Graph:捕获后回放,Host 调用次数骤降,Device 利用率拉满

Qwen 类模型在 vLLM-Ascend 里走 ACL Graph 已比较成熟;DeepSeek 这类结构更复杂的模型,则更多结合 TorchAir / 图编译路径一起做整网加速。

五、10月26日直播讲什么

主题:DeepSeek 推理性能跃迁 4.5 倍,ACL Graph技术解密

时间:10月26日(周一)19:00

推荐谁来:做昇腾推理部署的开发者、碰过性能瓶颈的工程师、想搞懂图模式 / Eager 模式怎么选的同学

CANN 运行时已在开源社区持续迭代,欢迎直接看代码、提 Issue:

🔗 CANN 开源地址:(https://gitcode.com/cann/runtime)

直播后有疑问?可以添加 Runtime 助手微信,进群交流、拿到直播回放与示例。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询