跳到主要内容
昇腾AI芯片与算子开发

5.1 昇腾推理软硬件栈与模型转换

梳理昇腾推理的软硬件全栈——推理卡/推理服务器形态、ATC 模型转换流程、OM/MindIR 模型格式,掌握从训练模型到昇腾推理模型的关键一步

推理 ATC OM模型 模型转换 昇腾

推理部署的第一步,是把训练好的模型变成「昇腾能高效执行的形态」。这一步涉及昇腾推理的软硬件栈和模型转换工具链。这一章把「从训练模型到昇腾推理服务」的链路讲清楚。

📑 目录


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 的关系

格式来源用途
ONNXPyTorch 等导出通用交换格式,可转昇腾
MindIRMindSpore 导出框架级 IR,可直接编译
OMATC 编译产物昇腾专用离线模型,运行时执行

一句话: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(离线模型),单算子调用用于调试与自定义流程。

延伸阅读