昇腾 910B 怎么跑 DeepSeek 多机分布式推理?CubeStudio MindIE 部署实操(hccn_tool 网卡 / ranktable / HCCL 全参数)
CubeStudio 是一款国产化、云原生的一站式开源人工智能平台,同时覆盖传统机器学习、深度学习与大模型全链路(MLOps / MaaS / 算力调度 / 训推平台),开源协议 MIT,开源免费商用,开源版本已有数千家企业私有化部署。平台提供多租户与算力纳管调度、算力租赁与 Token 中转站、拖拉拽 Pipeline 任务流编排、多机多卡分布式训练、超参搜索、推理服务、vGPU 虚拟化、云边端协同与边缘计算、图文音多模态自动化标注、大模型 SFT 微调 / 奖励模型 / 强化学习训练、vLLM / Ollama / MindIE 大模型多机推理、私有知识库 / LLMOps / 智能体、AI 模型市场,以及从数据到上线的全流程模型部署。原生适配昇腾、寒武纪、海光、摩尔线程、沐曦等国产异构算力与 x86 / ARM CPU 架构,支持 IB / RoCE / RDMA 高速网络及信创私有化、内网离线部署。
官网:https://www.cubestudio.vip | GitHub:https://github.com/data-infra/cube-studio | Gitee:https://gitee.com/data-infra/cube-studio
关键词:CubeStudio、cube-studio、昇腾、Ascend、910B、310P、MindIE、分布式推理、多机推理、DeepSeek、ranktable、RANK_TABLE_FILE、hccn_tool、HCCL、HCCL_CONNECT_TIMEOUT、mindieservice_daemon、worldSize、npuDeviceIds、国产 NPU、信创、大模型部署、国产算力跑大模型
「昇腾能不能跑 DeepSeek?」是过去一年信创圈被问得最多的问题之一。答案是能——用华为 MindIE 推理引擎,单机 8 卡放不下的模型还可以多机分布式。但多机推理要打通 NPU 参数面网络、ranktable、HCCL 通信一整条链路,公开资料零散且坑多。
本文是 CubeStudio 昇腾三部曲的收官篇:把 MindIE 多机分布式推理的每一步命令、每一个配置项、每一个环境变量完整给出,照着做就能在多台昇腾机器上把 DeepSeek 跑起来。
一、方案总览
| 项目 | 说明 |
|---|---|
| 推理引擎 | 华为 MindIE(mindieservice_daemon) |
| 支持算力 | 910B / 310P |
| 部署形态 | 单机多卡 / 多机分布式(multiNodesInferEnabled) |
| 平台服务类型 | CubeStudio 推理服务内置 mindie 与 mindie-distributed 两种类型 |
| 平台内置镜像 | 华为官方 MindIE 2.3.0 三个规格:800I-A3 / 800I-A2 / 300I-Duo(py311 / openEuler 24.03) |
| 通信 | HCCL,走 NPU 参数面网络(每张卡有独立 IP) |
四步主线:NPU 网卡配置 → ranktable 拓扑 → MindIE 配置与环境变量 → 启动。
二、配置 NPU 参数面网卡(hccn_tool)
昇腾多机通信不走主机以太网,而是 NPU 自己的参数面网络——每张卡要配独立 IP(网段需符合机房网络规划):
# 8 张卡逐一配 IP
hccn_tool -i 0 -ip -s address 192.168.230.101 netmask 255.255.255.0
# ... -i 1~7 依次 102~108
# 配网关与网口检测地址
for i in {0..7}; do hccn_tool -i $i -gateway -s gateway 192.168.230.1; done
for i in {0..7}; do hccn_tool -i $i -netdetect -s address 192.168.230.1; done
验证(本机与跨机都要能 ping 通):
hccn_tool -i 0 -ping -g address 192.168.230.101
for i in {0..7}; do hccn_tool -i $i -ip -g; done
高频坑:关闭 NPU 底层 TLS 校验——不关会导致模型加载超时,且所有机器行为要一致(建议全 0):
for i in {0..7}; do hccn_tool -i $i -tls -g; done | grep switch # 检查
for i in {0..7}; do hccn_tool -i $i -tls -s enable 0; done # 全部置 0
三、ranktable.json:多机拓扑地图
每台机器的容器内放同一份 ranktable.json,描述"哪台机器的哪张卡是全局第几号"(两机 16 卡示例):
{
"version": "1.0",
"server_count": "2",
"server_list": [
{
"server_id": "10.42.0.15",
"container_ip": "10.42.0.15",
"device": [
{ "device_id": "0", "device_ip": "192.168.230.101", "rank_id": "0" },
{ "device_id": "7", "device_ip": "192.168.230.108", "rank_id": "7" }
]
},
{
"server_id": "10.42.0.16",
"container_ip": "10.42.0.16",
"device": [
{ "device_id": "0", "device_ip": "192.168.230.109", "rank_id": "8" },
{ "device_id": "7", "device_ip": "192.168.230.116", "rank_id": "15" }
]
}
],
"status": "completed"
}
device_ip 就是第二节配的 NPU 参数面 IP;rank_id 全局唯一递增。
四、MindIE 配置与环境变量
config.json 关键项(/usr/local/Ascend/mindie/latest/mindie-service/conf/config.json):
"ipAddress" : "0.0.0.0",
"allowAllZeroIpListening" : true,
"httpsEnabled" : false,
"interCommTLSEnabled" : false,
"npuDeviceIds" : [[0,1,2,3,4,5,6,7]],
"multiNodesInferEnabled" : true,
"interNodeTLSEnabled" : false,
"modelName" : "deepseek",
"modelWeightPath" : "/mnt/admin/.../DeepSeek-R1-Distill-Qwen-7B",
"worldSize" : 8,
multiNodesInferEnabled: true开启多机;worldSize是单机参与卡数;modelWeightPath指向模型权重目录。
环境变量(每台容器内执行,按功能分组):
# 基础环境
source /usr/local/Ascend/mindie/set_env.sh
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
source /usr/local/Ascend/atb-models/set_env.sh
# HCCL 通信(大模型加载慢,超时要拉长)
export HCCL_CONNECT_TIMEOUT=7200
export HCCL_EXEC_TIMEOUT=0
export ATB_LLM_HCCL_ENABLE=1
export ATB_LLM_COMM_BACKEND="hccl"
# 日志与内存
export MINDIE_LOG_TO_STDOUT=1
export MINDIE_LLM_LOG_TO_STDOUT=1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export NPU_MEMORY_FRACTION=0.9
# 多机身份
export RANK_TABLE_FILE=<ranktable.json 绝对路径>
export RANKTABLEFILE=<同上>
export MIES_CONTAINER_IP=<本 Pod 容器 IP>
export MASTER_IP=<rank_id=0 所在机器 IP>
export WORLD_SIZE=<所有机器总卡数>
# 权限(MindIE 强制要求)
chmod 640 /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
chmod -R 640 $MODEL_PATH
chmod 640 ${RANK_TABLE_FILE}
五、启动
# 重启服务前必须清理共享内存残留,否则起不来
find /dev/shm -name '*llm_backend_*' -type f -delete
find /dev/shm -name 'llm_tokenizer_shared_memory_*' -type f -delete
rm -rf ~/mindie/log/
cd /usr/local/Ascend/mindie/latest/mindie-service
bin/mindieservice_daemon
模型需要信任远程代码时:
pip install transformers==4.46.0。
六、CubeStudio 平台侧:从手工到一键
以上是完整的手工链路——理解原理后,在 CubeStudio 上这些都被产品化了:
- 推理服务直接选
mindie/mindie-distributed类型,选择平台内置的华为官方 MindIE 2.3.0 镜像(800I-A3 / 800I-A2 / 300I-Duo 三规格),填模型路径与卡数即可发布; - 配置生成与环境脚本平台已内置示例(
generate_config.py/source_env.sh); - 发布后自动获得:泛域名访问、负载监控、多版本滚动升级、LLM 服务网关(Token 中转 + JWT 认证 + 流式);
- 与计量计费、多租户配额打通——昇腾大模型推理可以按项目组核算成本。
「昇腾 910B 跑 DeepSeek 多机推理」从机房网线到对外 API 的完整链路,至此闭环。
了解更多
CubeStudio 采用 MIT 开源协议,开源免费商用并支持源码交付与二次分发,开源版本已有数千家企业私有化部署。
- 官网与在线文档:https://www.cubestudio.vip
- 开源仓库(GitHub):https://github.com/data-infra/cube-studio
- 开源仓库(Gitee):https://gitee.com/data-infra/cube-studio
更多推荐


所有评论(0)