Skip to content

昇腾生态实战

「纸上得来终觉浅,绝知此事要躬行。」—— 陆游

阶段目标

这是整条学习路径中最核心的实战阶段。前四个阶段你在建立知识和能力,这个阶段你要把它们落到昇腾硬件上

学完这个阶段,你将能够:

  • 理解昇腾 NPU 与 NVIDIA GPU 的差异
  • 了解昇腾硬件产品线(Atlas 系列)
  • 掌握昇腾软件栈全貌(CANN → PyTorch/MindSpore → MindIE/MindSpeed)
  • 在昇腾上完成模型推理部署
  • 在昇腾上完成大模型微调
  • 进行基本的性能分析和调优
  • 规划昇腾认证路径

💡 学习建议

这个阶段必须动手。如果你没有实体昇腾设备,可以使用昇腾云 ModelArts 上的昇腾算力。光看文档是学不会的,一定要跑通完整的流程。


第一部分:昇腾 vs NVIDIA GPU

为什么要了解两者的差异?

如果你之前学的是 PyTorch + NVIDIA GPU,转到昇腾时需要理解:

text
不是简单换个硬件,而是换一套生态:

NVIDIA 生态:
  GPU 硬件 → CUDA 驱动 → cuDNN → PyTorch → 应用

昇腾生态:
  NPU 硬件 → CANN → PyTorch-NPU / MindSpore → 应用

大部分应用层代码不用改,但底层逻辑和工具链不同。

架构差异

维度NVIDIA GPU昇腾 NPU
架构类型GPU(图形处理器)NPU(神经网络处理器)
设计理念通用并行计算AI 专用加速
核心计算CUDA Core / Tensor CoreAI Core(Cube/Vector)
编程模型CUDACANN(Ascend C)
优势生态成熟、通用性强AI 算力效率高、能效比好
生态全球最成熟中国本土生态,快速成长

计算架构对比

text
NVIDIA GPU 架构(如 A100):
  ┌───────────────────────────┐
  │       GPU 芯片             │
  │  ┌──────┐  ┌──────┐      │
  │  │SM 0  │  │SM 1  │ ...  │  Streaming Multiprocessor
  │  │Core× │  │Core× │      │  每个 SM 包含多个 CUDA/Tensor Core
  │  └──────┘  └──────┘      │
  └───────────────────────────┘

昇腾 NPU 架构(如 Ascend 910):
  ┌───────────────────────────┐
  │       NPU 芯片             │
  │  ┌──────┐  ┌──────┐      │
  │  │AI Core│  │AI Core│ ... │  每个 AI Core 包含
  │  │Cube  │  │Cube  │      │  Cube(矩阵运算)+
  │  │Vector│  │Vector│      │  Vector(向量运算)
  │  └──────┘  └──────┘      │
  └───────────────────────────┘

生态差异

层次NVIDIA昇腾
硬件GPU(A100/H100等)NPU(Ascend 910/310等)
驱动CUDA DriverNPU Driver
计算库cuDNN、cuBLASCANN(含算子库)
框架适配PyTorch 原生PyTorch-NPU 适配层 / MindSpore 原生
推理引擎TensorRT、vLLMMindIE
训练加速Megatron、DeepSpeedMindSpeed
开发语言CUDA C++Ascend C

迁移成本

text
好消息:
  ✅ PyTorch 代码大部分可以复用(通过 PyTorch-NPU)
  ✅ 模型结构和训练逻辑不用大改
  ✅ Hugging Face 模型大部分可在昇腾上运行

需要注意:
  ⚠️ 某些 CUDA 专用的算子可能不支持,需要替代方案
  ⚠️ 性能调优方法不同
  ⚠️ 调试工具和日志系统不同
  ⚠️ 部分模型需要额外适配

第二部分:昇腾硬件认知

昇腾芯片系列

芯片定位算力典型场景
Ascend 910训练芯片最大约 320 TFLOPS FP16大模型训练、大规模训练
Ascend 910B训练芯片(升级版)高(较 910 提升)大模型训练(当前主力)
Ascend 310推理芯片最大约 22 TOPS INT8边缘推理、轻量推理
Ascend 310P推理芯片(升级版)中高推理服务

Atlas 硬件产品线

Atlas 是基于昇腾芯片的硬件产品系列:

产品形态芯片适用场景
Atlas 200 DK开发者套件Ascend 310边缘开发、学习实验
Atlas 300I/TPCIe 加速卡Ascend 910/310服务器推理/训练
Atlas 800服务器多颗 Ascend 910数据中心训练
Atlas 900训练集群大量 Ascend 910超大规模训练
Atlas 500边缘设备Ascend 310边缘推理
text
选择指南:

学习/实验 → Atlas 200 DK 或 云上 ModelArts
推理服务 → Atlas 300I(推理卡)
模型训练 → Atlas 300T(训练卡)或 Atlas 800
大规模训练 → Atlas 800/900 集群

NPU 概念

text
NPU = Neural Processing Unit(神经网络处理器)

与 GPU 的区别:
  GPU:通用并行处理器,图形渲染 + 通用计算 + AI
  NPU:专门为神经网络计算设计的处理器

NPU 的优势:
  1. AI 计算效率更高(专门的矩阵运算单元)
  2. 能效比更好(单位功耗的算力更高)
  3. 针对AI工作负载优化

第三部分:软件栈全貌

业界主流 AI 全栈系统

在看昇腾自身的软件栈之前,先从业界视角看清一套完整的 AI 全栈系统是如何从底层硬件逐层支撑到行业应用的。昇腾软件栈正是这套五层架构中的一环,理解每一层的作用,能帮你在后续的学习中准确定位各个组件所处的位置。

业界主流 AI 全栈系统通常划分为五层:

功能说明
AI 芯片和硬件提供算力底座昇腾 NPU、GPU 等
芯片使能屏蔽硬件复杂性,软硬结合发挥硬件性能,帮助开发者快速开发基础算子昇腾 CANN
AI 框架使能开发者高效开发、训练和部署模型TensorFlow、PyTorch、MindSpore 等
应用使能凝聚成熟经验、沉淀最佳实践,加速应用开发,填平落地鸿沟AI 平台(ModelArts 等)
行业应用面向具体行业场景智慧交通、智慧金融、智能制造、平安城市、视频分析、搜索推荐

有了这幅业界全景图,下面我们聚焦到昇腾:昇腾的软件栈是一个分层结构,从底层到上层:

text
┌──────────────────────────────────────────────────────┐
│                    应用层                             │
│         你的 AI 应用 / 大模型服务                      │
├──────────────────────────────────────────────────────┤
│                    框架层                             │
│    ┌──────────────┐    ┌──────────────┐             │
│    │PyTorch-NPU   │    │  MindSpore   │             │
│    │(PyTorch适配) │    │  (原生框架)   │             │
│    └──────┬───────┘    └──────┬───────┘             │
├───────────┼───────────────────┼──────────────────────┤
│           │    中间层          │                      │
│           ▼                   ▼                      │
│    ┌──────────────────────────────┐                  │
│    │    MindIE / MindSpeed        │                  │
│    │  (推理引擎)   (训练加速)      │                  │
│    └──────────────┬───────────────┘                  │
├───────────────────┼──────────────────────────────────┤
│                   │  异构计算架构                     │
│                   ▼                                  │
│              ┌─────────┐                             │
│              │  CANN   │  Compute Architecture for   │
│              │         │  Neural Networks            │
│              └────┬────┘                             │
├───────────────────┼──────────────────────────────────┤
│              驱动层                                  │
│           NPU Driver                                │
├──────────────────────────────────────────────────────┤
│              硬件层                                  │
│           Ascend NPU                                │
└──────────────────────────────────────────────────────┘

CANN(核心中间件)

CANN(Compute Architecture for Neural Networks)是昇腾的异构计算架构,相当于 NVIDIA 的 CUDA + cuDNN。

text
CANN 包含:
  - 算子库:高效的 AI 算子实现
  - 图编译引擎:将计算图编译为 NPU 可执行代码
  - 运行时:管理 NPU 资源和执行
  - Ascend C:底层算子开发语言

框架层

PyTorch-NPU

PyTorch-NPU 是 PyTorch 在昇腾上的适配层:

python
# 原来的 PyTorch 代码
import torch
model = Model().cuda()           # GPU
tensor = tensor.cuda()           # GPU

# 昇腾上的代码(改动很小)
import torch
import torch_npu                  # 导入适配模块
model = Model().npu()             # NPU
tensor = tensor.npu()             # NPU

# 大部分代码完全一样!

MindSpore

MindSpore 是开源框架,对昇腾有原生支持:

text
PyTorch-NPU:通过适配层使用昇腾 → 兼容性好,但可能有性能损耗
MindSpore:原生支持昇腾 → 性能最优,但需要学习新 API

业界主流 AI 框架对比

前面介绍了昇腾生态自己的框架适配,这里再把视野拉回整个业界,横向看看主流训练框架与推理框架各自的定位。理解这些对比,能帮你在实际选型时做出更贴合项目需求的判断。

训练框架

框架发行公司特点
TensorFlowGoogle(2015.11 开源)TF1 静态图效率高;TF2 默认 eager 模式,推荐 Keras,v2.2 起支持 Profiler
PyTorchFacebook(2017.01)动态图,支持 Tensor/Numpy 互转、ONNX、Tensorboard、分布式训练
MindSpore开源(2019.08,2020.03 开源)全场景 AI 框架,支持可视化、二阶优化、量化训练、混合异构、Serving、MindIR、调试器
PaddlePaddle百度(2016.08 开源)国内最早,v1.1 大规模异步分布式,PaddlePaddle 3.0 提供 VisualDL/PARL/AutoDL/EasyDL/AIStudio

推理框架

框架发行方特点
TensorRTNVIDIA(2017.09)高性能推理 SDK,含运行时与推理优化器,用于 CV 与推荐系统
MNN阿里(2019.05 开源)全平台轻量级推理引擎,解决移动/嵌入式设备推理训练问题
vLLMUC 伯克利(2023.06 开源)最受欢迎推理引擎,提出 PagedAttention 显存管理,显存利用率高、吞吐数倍;支持多生态,并有 vLLM-Ascend 昇腾 NPU 生态

推理与训练加速

了解业界对比后,回到昇腾自身的加速工具箱:

工具用途说明
MindIE推理加速引擎大模型高效推理,类似 TensorRT
MindSpeed训练加速库大模型分布式训练,类似 Megatron

AI 平台层

在五层全栈架构里,AI 平台属于最上层的「应用使能」层,它把数据标注、模型构建、模型训练、模型部署到模型推理的整个生命周期串起来,帮助开发者把模型能力真正落到业务上。业界几个主流 AI 平台对比如下,其中昇腾云 ModelArts 正是昇腾生态侧的应用使能平台。

覆盖数据标注 → 模型结构 → 模型训练 → 模型部署 → 模型使用/推理

平台厂商特点
百度 BML / EasyDL百度BML 全流程开发平台(高级用户);EasyDL 零门槛(新手),支持到数据训练级别
腾讯 TI-ONE腾讯一站式机器学习平台,可视化 + AI 算法模板;预置模型较少、深度学习模型较少
ModelArts昇腾云数据标注到推理全流程,「自动学习」对标 EasyDL;支持多计算引擎与分布式训练
Amazon SageMakerAWS全面 AI 工具,含标注、数据集管理、建/训/部署;多计算引擎、预置算法与可视化

第四部分:实战路径

第一步:环境搭建

text
目标:在昇腾环境中搭建可用的开发环境

需要安装:
  1. NPU 驱动
  2. CANN 工具包
  3. Python 环境
  4. PyTorch + torch_npu(或 MindSpore)

验证:
  运行 npu-smi info → 能看到 NPU 信息
  运行简单 PyTorch 代码 → 能在 NPU 上计算

详细的环境搭建步骤请参考:环境搭建指南 →

💡 快速验证环境

python
import torch
import torch_npu

print(f"PyTorch 版本: {torch.__version__}")
print(f"NPU 是否可用: {torch.npu.is_available()}")
print(f"NPU 数量: {torch.npu.device_count()}")
print(f"NPU 名称: {torch.npu.get_device_name(0)}")

# 简单测试
x = torch.randn(3, 3).npu()
y = torch.randn(3, 3).npu()
z = torch.matmul(x, y)
print(f"NPU 矩阵乘法结果:\n{z}")

第二步:跑通第一个推理

text
目标:在昇腾 NPU 上运行大模型推理

推荐路径(从易到难):

路径A:使用 MindIE(推荐)
  MindIE 是昇腾原生推理引擎,性能最优
  支持主流大模型(Qwen、LLaMA、DeepSeek 等)
  → 详见 [推理部署文档](https://revolutionla.github.io/AscendMate/inference/)

路径B:使用 PyTorch + transformers
  更灵活,适合开发调试
  代码和 GPU 版几乎一样(.cuda() → .npu())

路径C:使用 MindSpore
  原生支持,性能好
  适合需要深度定制的场景

PyTorch-NPU 推理示例

python
import torch
import torch_npu
from transformers import AutoTokenizer, AutoModelForCausalLM

# 加载模型到 NPU
model_path = "Qwen/Qwen2.5-7B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_path)

model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype=torch.float16,
    device_map="npu"                    # 自动分配到 NPU
)

# 推理
messages = [
    {"role": "user", "content": "你好,请介绍一下你自己"}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to("npu")

with torch.no_grad():
    outputs = model.generate(**inputs, max_new_tokens=256)

response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

详细推理部署步骤请参考:推理部署指南 →


第三步:微调一个模型

text
目标:在昇腾上微调大模型

推荐工具:LLaMA-Factory
  开源大模型微调框架
  支持 LoRA、QLoRA、全量微调
  支持昇腾 NPU

微调流程:
  1. 准备数据集(JSON/JSONL 格式)
  2. 配置训练参数
  3. 启动训练
  4. 合并 LoRA 权重
  5. 部署微调后的模型

使用 LLaMA-Factory 微调

bash
# 1. 安装 LLaMA-Factory(昇腾适配版)
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch-npu,metrics]"

# 2. 准备数据(SFT 格式)
# data/my_dataset.json
[
  {
    "instruction": "请将以下句子翻译成英文",
    "input": "今天天气真好",
    "output": "The weather is really nice today."
  }
]

# 3. 注册数据集
# 在 data/dataset_info.json 中添加你的数据集

# 4. 启动 LoRA 微调
llamafactory-cli train \
  --model_name_or_path Qwen/Qwen2.5-7B-Instruct \
  --dataset my_dataset \
  --finetuning_type lora \
  --lora_target q_proj,v_proj \
  --output_dir ./output \
  --per_device_train_batch_size 4 \
  --learning_rate 5e-5 \
  --num_train_epochs 3 \
  --fp16 True

详细微调步骤请参考:LLaMA-Factory 微调指南 →

💡 微调方法选择

方法显存需求训练速度效果适用场景
全量微调最好有充足资源、追求最佳效果
LoRA大多数场景的推荐选择
QLoRA最低较好资源有限时使用

第四步:性能调优

text
目标:让模型在昇腾上跑得更快、更省资源

调优维度:
  1. 模型层面:量化、剪枝
  2. 推理层面:KV Cache、批处理
  3. 系统层面:内存管理、并行策略
  4. 算子层面:自定义算子优化

常用调优工具

工具用途
npu-smi查看 NPU 状态(类似 nvidia-smi)
msprof性能分析工具(类似 nsight)
MindIE推理性能优化
CANN 算子调优算子级优化

性能调优基础

bash
# 1. 监控 NPU 状态
npu-smi info
# 查看:NPU 利用率、显存占用、温度等

# 2. 性能分析
msprof --application="python inference.py" --output=./prof_data
# 生成性能报告,分析瓶颈

# 3. 常见优化手段
# - 使用 MindIE 替代纯 PyTorch 推理
# - 开启 KV Cache
# - 使用量化(INT8/INT4)
# - 调整 batch size
# - 使用连续批处理(Continuous Batching)

详细性能调优步骤请参考:性能调优工具 →

调优检查清单

text
□ NPU 利用率是否够高?(目标 > 70%)
□ 显存利用率是否合理?
□ 是否启用了 KV Cache?
□ 是否使用了量化?
□ Batch size 是否最优?
□ 是否有不必要的数据拷贝?
□ 是否使用了 MindIE 等优化引擎?
□ 是否有算子不支持导致的回退?

第五部分:昇腾认证

为什么要考认证?

text
认证的价值:
  1. 系统学习:认证课程覆盖完整知识体系
  2. 能力证明:简历加分,面试加分
  3. 企业认可:产业及生态企业认可
  4. 个人成长:以考促学,查漏补缺

认证路径

text
┌─────────────────────────────────────────────────────┐
│                  昇腾 AI 认证体系                     │
├─────────────────────────────────────────────────────┤
│                                                     │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐      │
│  │ HCIA-AI  │ →  │ HCIP-AI  │ →  │ HCIE-AI  │      │
│  │  初级    │    │  高级    │    │  专家    │      │
│  └──────────┘    └──────────┘    └──────────┘      │
│   AI 通识         昇腾开发        架构设计           │
│   基础概念         模型开发        复杂方案           │
│                                                     │
└─────────────────────────────────────────────────────┘

HCIA-AI(初级)

维度说明
定位AI 通识认证,适合入门
内容AI 概述、数学基础、机器学习、深度学习概览
难度★★☆☆☆
准备时间1-2 个月
适合AI 新人、想系统了解 AI 的人

HCIP-AI(高级)

维度说明
定位昇腾 AI 开发高级认证
内容昇腾软硬件、MindSpore 开发、模型训练部署
难度★★★☆☆
准备时间2-3 个月
适合在昇腾生态中做开发的工程师

HCIE-AI(专家)

维度说明
定位昇腾 AI 解决方案专家认证
内容AI 解决方案设计、昇腾全栈技术、复杂场景落地
难度★★★★★
准备时间3-6 个月
适合资深 AI 工程师、解决方案架构师

认证学习建议

text
认证 vs 实战:

❌ 只考证不实践 → 纸上谈兵,面试露馅
❌ 只实践不学理论 → 知识有盲区,遇到新问题不会
✅ 理论+实践+认证 → 系统学习 + 动手能力 + 能力证明

建议路径:
  1. 跟着本学习路径完成阶段一到五
  2. 在备考过程中查漏补缺
  3. 先考 HCIA-AI 建立体系
  4. 积累实战经验后考 HCIP-AI
  5. 有丰富项目经验后考虑 HCIE-AI

认证资源

资源说明
昇腾人才在线官方认证入口
昇腾云学院官方培训课程
昇腾社区技术文档和实战资源
认证考试指南官方考试大纲和样题

常见问题

Q:没有昇腾硬件怎么办?

text
方案1:昇腾云 ModelArts
  - 提供昇腾算力按需使用
  - 适合学习和实验
  - 按时计费,成本可控

方案2:昇腾开发板
  - Atlas 200 DK 开发者套件
  - 价格相对亲民
  - 适合个人学习和边缘开发

方案3:公司资源
  - 如果公司有昇腾服务器
  - 申请使用权限进行实验

Q:PyTorch 代码迁移到昇腾麻烦吗?

text
大部分情况下,改动很小:

1. 导入 torch_npu
   + import torch_npu

2. 设备指定
   - .cuda() → .npu()
   - "cuda" → "npu"
   - device_map="auto" 通常自动适配

3. 个别算子适配
   某些 CUDA 专有操作可能需要替换

4. 性能优化
   - 考虑使用 MindIE 替代纯 PyTorch 推理
   - 使用 CANN 优化工具

Q:MindSpore 还是 PyTorch?

text
决策建议:

选 PyTorch-NPU 如果你:
  ✅ 已经熟悉 PyTorch
  ✅ 需要复用大量 PyTorch 代码/模型
  ✅ 团队以 PyTorch 为主
  ✅ 想要最低迁移成本

选 MindSpore 如果你:
  ✅ 追求昇腾上的最优性能
  ✅ 从零开始开发项目
  ✅ 需要使用 MindSpore 特有功能
  ✅ 在昇腾内部生态中工作

最佳策略:两个都了解,根据项目选择。

阶段总结

知识点清单

完成本阶段后,确认你掌握了:

认知

  • [ ] 昇腾 NPU 与 NVIDIA GPU 的主要差异
  • [ ] Atlas 硬件产品线
  • [ ] CANN 在软件栈中的位置
  • [ ] PyTorch-NPU 和 MindSpore 的选择策略
  • [ ] MindIE 和 MindSpeed 的用途

实践

  • [ ] 搭建昇腾开发环境
  • [ ] 在 NPU 上运行模型推理
  • [ ] 使用 LLaMA-Factory 微调大模型
  • [ ] 使用 npu-smi 监控 NPU 状态
  • [ ] 进行基本的性能分析和调优

实战项目建议

项目难度涉及技能
在昇腾上部署 Qwen 推理服务★★☆推理部署
用 LLaMA-Factory 微调 7B 模型★★★微调训练
搭建 RAG 知识库问答系统★★★RAG + 推理
性能调优对比报告★★★★性能分析

下一步

🚀 下一阶段

👉 阶段六:行业应用与进阶 —— 从技术走向业务

「你现在已经具备了在昇腾生态上做开发的基本能力。接下来的挑战是:如何把这些技术能力转化为业务价值——这是从'工程师'到'优秀工程师'的关键跨越。」

AscendMate · AscendLA · GitHub 统计(近14天):仓库访问 次 · 独立访客 人 · 克隆