华为昇腾NPU部署GPUStack实现大模型推理指南

发布时间:2026/7/24 14:55:32
华为昇腾NPU部署GPUStack实现大模型推理指南 1. 项目概述在国产AI芯片生态快速发展的背景下华为昇腾Ascend系列NPU已成为大模型私有化部署的重要选择。GPUStack作为一个开源的异构算力集群管理器自v0.6版本起正式支持昇腾硬件并通过MindIE推理引擎实现高效的大模型推理。本文将详细介绍在华为Atlas 800I A2推理服务器搭载Ascend 910B系列NPU上部署GPUStack的全流程。2. 环境准备与前置检查2.1 硬件与系统要求推荐配置服务器型号华为Atlas 800I A2通常搭载4-8张Ascend 910B NPU操作系统openEuler 22.03 LTS/Ubuntu 22.04aarch64架构内存≥128GB存储系统盘≥300MB模型存储盘≥500GB SSD网络确保服务器可访问外网或已配置内网镜像源2.2 确认NPU状态执行以下命令检查NPU驱动是否已安装npu-smi info若返回NPU设备信息说明驱动已正常安装若提示command not found则需先安装驱动。3. 安装昇腾NPU驱动与固件3.1 创建专用用户sudo groupadd HwHiAiUser sudo useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash3.2 下载驱动与固件从昇腾社区下载对应版本的驱动包.run文件cd /opt wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend%20HDK/Ascend%20HDK%2023.0.RC3/Ascend-hdk-910b-npu-driver_23.0.rc3_linux-aarch64.run wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend%20HDK/Ascend%20HDK%2023.0.RC3/Ascend-hdk-910b-npu-firmware_7.1.0.5.220.run3.3 安装驱动chmod x Ascend-hdk-910b-npu-driver_*.run sudo ./Ascend-hdk-910b-npu-driver_*.run --full --install-for-all sudo reboot3.4 安装固件chmod x Ascend-hdk-910b-npu-firmware_*.run sudo ./Ascend-hdk-910b-npu-firmware_*.run --full --install-for-all sudo npu-smi set -t reset -i 0 # 复位指定NPU4. 安装Docker与Ascend Docker Runtime4.1 安装Docker EngineopenEuler/CentOS系sudo yum install -y docker sudo systemctl enable docker sudo systemctl start dockerUbuntu系sudo apt update sudo apt install -y docker.io sudo systemctl enable docker sudo systemctl start docker4.2 安装Ascend Docker Runtimecd /opt wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/MindStudio/Ascend-Docker-Runtime/Ascend-docker-runtime_24.1.rc3_linux-aarch64.run chmod x Ascend-docker-runtime_*.run sudo ./Ascend-docker-runtime_*.run --install sudo systemctl restart docker4.3 验证Docker能否识别NPUdocker run -it --rm \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ ascendai/mindspore:latest \ bash -c npu-smi info5. 部署GPUStack Server与Worker5.1 拉取GPUStack镜像docker pull gpustack/gpustack:latest5.2 启动GPUStack单机模式docker run -d \ --name gpustack \ --restart unless-stopped \ --ipchost \ --networkhost \ --security-opt seccompunconfined \ -e ASCEND_VISIBLE_DEVICES0,1,2,3,4,5,6,7 \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /var/lib/gpustack:/var/lib/gpustack \ gpustack/gpustack:latest5.3 分离部署可选Server节点docker run -d \ --name gpustack-server \ --restart unless-stopped \ --networkhost \ -v /var/lib/gpustack:/var/lib/gpustack \ gpustack/gpustack:latest \ server --server-port 80Worker节点docker run -d \ --name gpustack-worker \ --restart unless-stopped \ --ipchost \ --networkhost \ --security-opt seccompunconfined \ -e ASCEND_VISIBLE_DEVICES0,1,2,3 \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /var/lib/gpustack:/var/lib/gpustack \ gpustack/gpustack:latest \ worker --server-url http://SERVER_IP:806. 验证部署与部署大模型6.1 检查GPUStack状态docker logs -f gpustack6.2 部署大模型以Qwen2.5-7B-Instruct为例通过API部署curl -X POST http://localhost:80/v1/models \ -H Content-Type: application/json \ -d { name: Qwen2.5-7B-Instruct, source: huggingface, huggingface_model_id: Qwen/Qwen2.5-7B-Instruct, backend: mindie, replicas: 1 }6.3 测试推理curl http://localhost:80/v1/chat/completions \ -H Content-Type: application/json \ -d { model: Qwen2.5-7B-Instruct, messages: [{role: user, content: 你好请介绍一下你自己。}] }7. 常见问题与优化建议7.1 常见问题容器无法识别NPU检查Ascend-docker-runtime是否安装正确模型加载失败确认MindIE是否支持该模型架构内存不足调整ASCEND_VISIBLE_DEVICES减少占用卡数7.2 性能优化多卡推理设置tensor_parallel_size参数量化部署使用INT8或FP16量化模型模型预热首次请求前发送空请求预热模型