路线图

岗位分支 · 国产化

星辉 2026-07-02 阅读 4 min 646 字 路线图
岗位分支 · 国产化 封面

定位:让模型在国产 GPU/NPU/DCU 上训练和推理,实现自主闭环 对应主路线:Ch2(推理服务化) + Ch4(算力调度) + 本附录专项 典型团队:国产化适配团队、异构算力团队、政企 AI 项目团队


核心能力领域#

1. CUDA/NCCL 与 CANN/HCCL 对照理解#

国产化不是"重新学一套",而是把 CUDA 经验映射到国产栈

英伟达技术栈华为昇腾技术栈功能
CUDACANN(Compute Architecture for Neural Networks)计算框架
NCCLHCCL(Huawei Collective Communication Library)集合通信
cuBLAS / cuDNN昇腾算子库数学库
Nsight Systems / ComputeProfiling 工具性能分析
TensorRTMindIE推理引擎
PyTorch CUDAPyTorch + torch_npu / MindSpore训练框架

API 对照映射

text
CUDA → CANN
├── cudaMalloc → aclrtMalloc
├── cudaFree → aclrtFree
├── cudaMemcpy → aclrtMemcpy
├── cudaLaunchKernel → aclrtLaunchKernel
└── cudaStream → aclrtStream

NCCL → HCCL
├── ncclAllReduce → hcclAllReduce
├── ncclBroadcast → hcclBroadcast
├── ncclSend → hcclSend
└── ncclRecv → hcclRecv

2. 国产算力硬件家族#

厂商产品架构软件栈
华为Ascend 910B / 950PRDa VinciCANN + MindSpore / PyTorch
海光深算系列 DCUROCm 兼容ROCm + PyTorch
昆仑昆仑芯 3自研XPU SDK
燧原云燧 T20/T21自研TopsRider

2026 国产化现状

  • 昇腾 950PR 已量产(原生 FP4 支持)
  • DeepSeek-V4 完全运行在昇腾上
  • CANN 全量开源
  • MindIE 全面支持 vLLM/SGLang 接口且 0day 首发主流模型
  • 国产化已从"适配中"升级为"自主闭环"

3. 昇腾推理部署(2026 重点)#

2026 年昇腾已形成自主闭环:

  • 昇腾 950PR 已量产(原生 FP4 支持)
  • DeepSeek-V4 完全运行在昇腾上
  • CANN 全量开源

推理部署路径:

路径一:vllm-ascend

bash
# DeepSeek-V4 昇腾推理
vllm serve deepseek-ai/DeepSeek-V4 \
  --tensor-parallel-size 8 \
  --trust-remote-code \
  --device npu

vllm-ascend 是 vLLM 的昇腾适配版本,API 与 vLLM 一致。已有 vLLM 经验的团队几乎零迁移。

路径二:MindIE

bash
# MindIE(华为官方推理引擎)
# 2026 全面支持 vLLM/SGLang 接口
# 0day 首发主流模型(DeepSeek-V4/Qwen3.6 等)

MindIE 是华为官方的推理引擎,对标 NVIDIA Triton + TRT-LLM 的组合。

路径三:SGLang + 昇腾

bash
# SGLang 的昇腾适配(2026 新增)
python -m sglang.launch_server \
    --model-path /models/DeepSeek-V4 \
    --device npu \
    --tp-size 8

4. 模型迁移流程#

模型从英伟达 GPU 迁移到国产 NPU 的典型流程:

text
1. 算子兼容性检查 → 确认所有算子有国产对等实现
2. 框架适配 → PyTorch + torch_npu(或 MindSpore)
3. 通信适配 → NCCL → HCCL 环境变量映射
4. 精度验证 → 同一批 prompt 对比输出
5. 性能调优 → Profiling → 瓶颈优化 → 迭代

详细迁移步骤

text
Step 1: 环境准备
├── 安装 CANN Toolkit(昇腾驱动 + 开发库)
├── 安装 torch_npu(PyTorch 昇腾适配)
└── 配置 HCCL 环境变量

Step 2: 模型加载验证
├── from transformers import AutoModel
├── model = AutoModel.from_pretrained(..., device_map="npu")
└── 单 prompt 推理验证输出正确

Step 3: 分布式验证
├── torchrun --nproc_per_node=8 train.py
├── 验证 HCCL 通信正常
└── 验证多卡一致性

Step 4: 性能调优
├── Profiling(msprof 工具)
├── 定位瓶颈算子
└── kernel 优化或算子替换

Step 5: 生产部署
├── vllm-ascend 或 MindIE 部署
├── 监控接入(DCGM → 昇腾 msnpureport)
└── 灰度上线

5. 迁移难点#

难点具体表现应对
算子缺失某些 CUDA 算子没有 CANN 对等实现用已有算子拼接实现 / 提交需求到华为 / 自定义算子
精度差异同模型不同芯片上输出有差异精度对齐测试 + 量化校准 + 容忍度评估
性能差异某些算子国产芯片上慢Profiling 定位 + kernel 调优 + 算子替换
通信差异HCCL 性能和 NCCL 不同拓扑优化 + 通信参数调优
框架适配PyTorch CUDA → torch_npuAPI 差异处理 + 不支持算子绕行
工具链Nsight → msprof重新学习 profiling 工具

6. 多芯混部#

2026 新趋势:同一集群内英伟达 + 昇腾混合调度。

多芯推理兼容层

text
统一 API(OpenAI Compatible)
多芯路由层(按模型可用性 + 成本路由)
    ├─ 英伟达 GPU 池(vLLM)
    └─ 昇腾 NPU 池(vllm-ascend)

多芯混训:DeepSpeed + torch_npu 支持英伟达 + 昇腾混合训练,但通信效率受跨芯片带宽限制。

加分方向#

  • 多芯混训/混推:同一集群内英伟达 + 昇腾混合调度
  • 多芯推理兼容层:统一 API,底层自动适配芯片
  • 性能对比分析:同一模型在不同芯片上的性能/成本对比
  • 昇腾 NPU 的 SGLang 适配
  • 自定义算子开发(CANN 算子库贡献)
  • 其他国产芯片适配(海光 DCU / 昆仑 / 燧原)

技能树#

text
基础(必备)
├── CUDA/NCCL 经验(迁移基础)
├── PyTorch 深入
├── Linux / Docker
└── K8s(异构集群调度)

昇腾专项
├── CANN Toolkit(计算框架)
├── HCCL(集合通信)
├── torch_npu(PyTorch 适配)
├── MindIE(推理引擎)
├── MindSpeed(训练加速)
└── msprof(性能分析)

推理部署
├── vllm-ascend(vLLM 昇腾版)
├── MindIE(华为官方引擎)
├── SGLang 昇腾适配
└── 多芯路由层

迁移与适配
├── 算子兼容性检查
├── 精度对齐测试
├── 性能 Profiling
└── 自定义算子开发

其他国产芯片(加分)
├── 海光 DCU(ROCm 兼容)
├── 昆仑芯(XPU SDK)
├── 燧原(TopsRider)
└── 多芯混部

学习路径建议#

text
1. 先掌握 CUDA/NCCL 基础(英伟达经验是迁移前提)
2. 再学昇腾栈:CANN / HCCL / torch_npu / MindIE
3. 然后实践迁移:选一个模型从 GPU 迁到昇腾
4. 最后学多芯混部:统一 API + 多芯路由
5. 加分:其他国产芯片(海光/昆仑/燧原)、自定义算子开发

项目经验建议#

简历表达参考:

text
大模型国产化推理平台建设,实现英伟达 → 昇腾自主闭环:
- DeepSeek-V4 / Qwen3.6 在昇腾 950PR 上的推理部署(vllm-ascend + MindIE)
- 模型迁移:算子兼容性检查 + 精度对齐 + 性能调优,迁移后性能达英伟达 80%
- HCCL 多卡分布式推理(TP=8),AllReduce 带宽利用率 75%
- 多芯混部:英伟达 + 昇腾统一路由,按成本和可用性智能调度
- FP4 量化(昇腾 950PR 原生),显存减半,吞吐提升 1.8x

典型面试题方向#

  1. CUDA/NCCL 和 CANN/HCCL 如何类比?迁移时需要注意什么?

    • 答题思路:API 层面有对照映射(cudaMalloc→aclrtMalloc,ncclAllReduce→hcclAllReduce);注意算子缺失、精度差异、通信性能差异
  2. 模型迁移到昇腾可能遇到什么问题?算子不支持怎么处理?

    • 答题思路:算子缺失(拼接实现/提交需求/自定义算子)+ 精度差异(对齐测试)+ 性能差异(profiling 调优)+ 框架适配
  3. vllm-ascend 和 MindIE 各自适合什么场景?

    • 答题思路:vllm-ascend 适合已有 vLLM 经验的团队(API 一致,零迁移);MindIE 适合华为生态深度绑定(官方优化,0day 首发)
  4. 如何评估同一模型在不同芯片上的性能差异?

    • 答题思路:同一权重 + 同一批 prompt + 同等并发压测,对比 TTFT/TPOT/吞吐/显存/精度/成本/稳定性
  5. 多芯混部怎么实现?

    • 答题思路:统一 API(OpenAI Compatible)+ 多芯路由层(按模型可用性+成本路由)+ 英伟达池 + 昇腾池独立部署
  6. 昇腾 950PR 的 FP4 和 Blackwell B200 的 FP4 有什么区别?

    • 答题思路:都是 4bit 浮点,但底层实现不同;昇腾 FP4 配合 CANN 算子库,B200 配合 CUDA;性能和精度需要实测对比