昇腾AI芯片与算子开发
5.1 昇腾推理软硬件栈与模型转换
梳理昇腾推理的软硬件全栈——推理卡/推理服务器形态、ATC 模型转换流程、OM/MindIR 模型格式,掌握从训练模型到昇腾推理模型的关键一步
推理 ATC OM模型 模型转换 昇腾
推理部署的第一步,是把训练好的模型变成「昇腾能高效执行的形态」。这一步涉及昇腾推理的软硬件栈和模型转换工具链。这一章把「从训练模型到昇腾推理服务」的链路讲清楚。
📑 目录
- 1. 昇腾推理软硬件栈总览
- 2. 推理硬件形态:推理卡与推理服务器
- 3. 模型转换:从训练模型到 OM
- 4. ATC 工具与转换示例
- 5. MindIR / ONNX / OM 的关系
- 6. 推理执行:单算子 vs 离线模型
- 总结
- 延伸阅读
1. 昇腾推理软硬件栈总览
应用 / 推理服务(MindIE / vLLM-Ascend / 自研)
│
▼
OM 模型(离线编译好的昇腾模型)────────── ATC 编译
│
▼
CANN Runtime + AscendCL(执行引擎)
│
▼
昇腾推理硬件(推理卡 / 训练推理一体机)
推理栈与训练栈的关键区别:
- 训练时模型「边解释边执行」(或动态图),推理时模型预先编译成 OM,加载即执行,启动快、开销低。
- 推理关注 延迟(TTFT/TPOT)与吞吐,软硬件栈围绕「批量、常驻、低延迟」设计。
2. 推理硬件形态:推理卡与推理服务器
昇腾推理硬件主要有两种形态:
| 形态 | 代表产品(以官方发布为准) | 特点 |
|---|---|---|
| 推理卡 | Atlas 300I 系列(Duo/Pro 等) | PCIe 卡,插在通用服务器上,灵活扩容 |
| 推理服务器 | Atlas 800I A2 / A3 系列 | 整机形态,8 卡(或更多),面向大模型 |
| 训练推理一体 | Atlas A3 训练系列 | 训推一体,训练与推理共用同一硬件 |
选型认知:
- 推理卡的算力/显存配置更「精打细算」,适合按需扩缩容。
- 推理服务器(800I A3 等)支持大模型常驻,通常搭配 MindIE / vLLM-Ascend 部署。
- 具体规格与适配矩阵以昇腾社区硬件平台查询为准。
3. 模型转换:从训练模型到 OM
OM(Offline Model,离线模型) 是昇腾推理的标准模型格式:
- 由训练好的模型(MindIR / ONNX / TensorFlow 等)经 ATC 工具离线编译生成;
- 编译时完成算子选择、图优化、权重格式整理,运行时直接加载执行;
- 类比 NVIDIA 的 TensorRT Engine:离线编译一次,运行时高效执行。
MindIR / ONNX / 其他格式 ──ATC──▶ OM 模型
│
▼
MindIE / AscendCL 加载执行
4. ATC 工具与转换示例
ATC(Ascend Tensor Compiler) 是昇腾的离线模型编译器,用法类似 TensorRT 的转换工具:
# 将 ONNX 模型转换为 OM(示意参数,具体以文档为准)
atc --model=model.onnx \
--output=model_om \
--input_shape="input_ids:1,512" \
--soc_version=Ascend910B3 \
--framework=5
关键参数:
--model:输入模型路径;--output:输出 OM 路径;--input_shape:指定输入形状(推理时固定/优化 batch 场景很常见);--soc_version:目标芯片型号(必须与部署硬件匹配,否则无法加载)。
经验提示:soc_version 写错是 ATC 最常见的报错来源;大模型转换时通常配合推理引擎(MindIE)的工具链完成,很少手动敲 ATC。
5. MindIR / ONNX / OM 的关系
| 格式 | 来源 | 用途 |
|---|---|---|
| ONNX | PyTorch 等导出 | 通用交换格式,可转昇腾 |
| MindIR | MindSpore 导出 | 框架级 IR,可直接编译 |
| OM | ATC 编译产物 | 昇腾专用离线模型,运行时执行 |
一句话:MindIR/ONNX 是「源码」,OM 是「编译好的可执行文件」。转换链路 = 训练模型 → (ONNX/MindIR) → ATC → OM。
6. 推理执行:单算子 vs 离线模型
昇腾推理有两种执行粒度:
| 方式 | 特点 | 使用场景 |
|---|---|---|
| 单算子调用(aclnn) | 灵活、逐步执行,无整图优化 | 调试、自定义推理流程、算子验证 |
| 离线模型(OM) | 整图优化、启动快、开销低 | 生产推理(MindIE/vLLM-Ascend) |
生产推理几乎都走 OM 路线:图级融合、内存规划在编译期完成,运行时「加载即跑」。
总结
- 昇腾推理栈 = 推理硬件(推理卡/推理服务器)+ ATC(模型转换)+ OM(离线模型)+ 推理引擎(MindIE/vLLM-Ascend)。
- 模型转换三步:训练模型 → (ONNX/MindIR) → ATC 编译 → OM。
soc_version必须与硬件匹配,是 ATC 最常见的坑。- 生产推理走 OM(离线模型),单算子调用用于调试与自定义流程。