人工智能大模型模型推理服务AscendCANN【免费下载链接】vllm-ascendCommunity maintained hardware plugin for vLLM on Huawei Ascend项目地址https://gitcode.com/gh_mirrors/vl/vllm-ascend点击查看免费下载本文聚焦 vLLM Ascend 官方预构建镜像在 Atlas 300I DUOAtlas 推理系列 Ascend 硬件上的快速部署路径从选择并拉取带-310p后缀的镜像到通过docker run完成设备与驱动目录的挂载启动再到容器内环境验证。读完后你可以在一台已装好 Ascend 驱动的主机上独立完成从镜像获取到容器就绪的全过程并理解镜像内部软件栈与该硬件专属运行时路径的设计。硬件背景与镜像选型为什么是-310p标签vLLM Ascend 面向多种 Ascend 硬件产品线提供不同的官方镜像。根据仓库内的受支持硬件清单supported_hardware.inc.mdAtlas 300I DUO 与 Atlas 200I Pro 同属 “Atlas inference series products”Atlas 推理系列二者共享同一套运行时路径即310p路径对应的 SoC 版本为ascend310p1参见 安装指南 中 CPU-only 构建验证一节的SOC_VERSION说明。在官方镜像列表prebuilt_image.inc.md中Atlas 300I DUO / Atlas 200I Pro 对应两个标签镜像名称硬件操作系统vllm-ascend:版本-310pAtlas 300I DUO / Atlas 200I ProUbuntuvllm-ascend:版本-310p-openeulerAtlas 300I DUO / Atlas 200I ProopenEuler当前仓库中记录的发布版本为v0.23.0见 mkdocs.yml 中的vllm_ascend_version变量文档模板中的{{ vllm_ascend_version }}占位符在渲染时会替换为该版本号。拉取镜像时请保留完整标签后缀-310p、-310p-openeuler只替换 registry 前缀。前置条件宿主机准备使用预构建镜像路径时宿主机只需要两样东西可用的 Ascend 驱动与固件已安装并运行正常的 Docker。先执行以下命令确认 NPU 固件和驱动安装正确能够识别 Atlas 300I DUO 设备npu-smi info预构建镜像内置了经过验证的完整用户态软件栈包括 CANN、NNAL、PyTorch、TorchNPU、vLLM 和 vLLM Ascend见 Quick Start 的 Requirements 一节。需要注意一个硬件差异A2、A3 和 950DT 产品的镜像还包含 Triton Ascend 运行时而Atlas 300I DUO 和 Atlas 200I Pro 不使用 Triton Ascend-310p镜像中不会安装它。第一步拉取镜像根据宿主机操作系统选择对应标签以下与 atlas-300i-duo.inc.md 中的命令一致# Ubuntu export IMAGEquay.io/ascend/vllm-ascend:v0.23.0-310p docker pull $IMAGE# openEuler export IMAGEquay.io/ascend/vllm-ascend:v0.23.0-310p-openeuler docker pull $IMAGE镜像下载加速vLLM Ascend 镜像默认从quay.io下载。如果直连速度较慢可以按 镜像加速说明 使用 registry 镜像站。例如原始地址为quay.io/ascend/vllm-ascend:TAG可替换为只替换 registry 前缀完整保留原标签# Replace with tag you want to pull TAGv0.23.0 # use docker pull m.daocloud.io/quay.io/ascend/vllm-ascend:$TAG # or docker pull quay.nju.edu.cn/ascend/vllm-ascend:$TAG官方明确提醒只替换 registry 前缀必须完整保留包括-310p、-openeuler在内的标签后缀否则拉取到的将不是针对 Atlas 300I DUO 验证过的镜像。第二步启动容器Atlas 300I DUO 是板卡形态的推理卡容器启动时需要把 NPU 设备节点和宿主机上的驱动文件挂载进容器。Ubuntu 与 openEuler 两套命令完全一致export DEVICE/dev/davinci0 export MODEL_CACHE${HOME}/.cache mkdir -p $MODEL_CACHE docker run --rm \ --name vllm-ascend \ --shm-size1g \ --device $DEVICE \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v $MODEL_CACHE:/root/.cache \ -p 8000:8000 \ -it $IMAGE bash关键参数逐项解析参数作用--rm容器退出后自动删除容器避免残留--name vllm-ascend固定容器名便于后续docker logs、docker exec等管理操作--shm-size1g扩大/dev/shm满足多进程张量共享内存的需求--device $DEVICE挂载 NPU 设备节点示例为/dev/davinci0容器内运行时通过它访问 Atlas 300I DUO--device /dev/davinci_managerAscend 驱动的设备管理器节点--device /dev/devmm_svm驱动内存管理SVM设备节点--device /dev/hisi_hdcHiSilicon 设备调试/管理通道节点-v /usr/local/dcmi:...挂载驱动配置管理接口DCMI目录-v /usr/local/bin/npu-smi:...复用宿主机的npu-smi管理工具-v /usr/local/Ascend/driver/lib64/:...挂载宿主机驱动动态库容器内运行时链接这些库-v /usr/local/Ascend/driver/version.info:...驱动版本信息文件供运行时校验驱动与 CANN 兼容性-v /etc/ascend_install.info:...宿主机 Ascend 安装信息文件-v $MODEL_CACHE:/root/.cache把宿主机模型缓存目录挂到容器/root/.cache避免每次启动重复下载权重-p 8000:8000映射 vLLM OpenAI 兼容服务端口供在线推理访问-it $IMAGE bash交互式进入容器进入后执行验证与推理命令DEVICE变量默认指向/dev/davinci0表示使用第一块 Atlas 300I DUO如果宿主机插有多块推理卡可按需调整该值。MODEL_CACHE指定模型权重缓存位置挂进容器后首次下载的模型在后续重启容器时无需重复拉取。第三步容器环境验证进入容器后执行以下命令完成环境验证来自 verify_container.inc.md。当输出包含vLLM Ascend environment: OK时容器环境就绪npu-smi info python3 - PY import torch import vllm import vllm_ascend assert torch.npu.is_available(), No available Ascend NPU detected in the container print(vLLM Ascend environment: OK) PY这段验证做了三件事npu-smi info确认容器内能看见 NPU 设备import vllm_ascend触发平台插件注册——vLLM 启动时会扫描vllm.platform_plugins插件组日志中出现Platform plugin ascend is activated即表示vllm_ascend的NPUPlatform已被激活torch.npu.is_available()断言 TorchNPU 与设备后端已连通。深入镜像内部-310p镜像是如何构建的从 Dockerfile.310popenEuler 版本为 Dockerfile.310p.openEuler可以看到官方镜像的组装方式这也解释了上文几个关键特性基础镜像quay.io/ascend/cann:9.1.0-310p-ubuntu22.04-py3.12即 CANN 9.1.0 的 310p 专用底座Python 3.12vLLM 版本默认克隆 vLLMv0.30.0标签VLLM_TAG支持用VLLM_COMMIT指定精确 commitSOC 版本构建期固定SOC_VERSIONascend310p1用于编译 310p 专属自定义算子COMPILE_CUSTOM_KERNELS1移除 x86 版 TritonDockerfile 中显式pip uninstall -y triton与triton-ascend——因为 Ascend 设备上标准 Triton 无法正常工作这正对应了文档中 “310p 不使用 Triton Ascend” 的说明驱动守护进程镜像内的entrypoint.sh会启动/var/slogd日志与/var/dmp_daemon驱动管理等守护进程并按驱动规范创建HwHiAiUser、HwDmUser等用户与/var/driver、/var/dmp、/usr/slog目录。因此宿主机侧只需驱动 Docker容器内即获得完整且版本互验过的 CANN/NNAL/PyTorch/TorchNPU/vLLM/vLLM Ascend 栈——这套版本组合是作为整体兼容性集合验证发布的不建议跨版本混配见 安装指南 的 “Validated hardware and software stack” 表格。容器内的 310p 运行时路径进入容器后vLLM Ascend 如何感知 Atlas 300I DUO 这块硬件从源码结构看vllm_ascend/platform.py 中定义的NPUPlatform是 vLLM 的 OOTout-of-tree平台插件device_name为npu设备控制环境变量为ASCEND_RT_VISIBLE_DEVICESdispatch key 使用 PyTorch 的PrivateUse1。而在 hardware_profile.py 中310p 硬件路径默认绑定了专属 workervllm_ascend._310p.worker_310p.NPUWorker310platform.py 中还注册了 310p 专用的 attention 后端vllm_ascend._310p.attention.attention_v1.AscendAttentionBackend310。也就是说Atlas 300I DUO 上运行的不是 A2/A3 的通用代码路径而是仓库内_310p子包提供的独立实现这正是镜像需要按硬件区分标签-310p的底层原因。这些命令示例并非只存在于文档中仓库的 doctest 脚本 001-quickstart-test.sh 会针对310p设备marker_prefixquickstart-300i-duo自动执行容器验证、离线推理与在线服务全流程保证 Quick Start 文档中的命令持续可用。下一步310p 路径的推理注意事项容器就绪后可以继续 Quick Start 中 Atlas 300I DUO 对应的 Qwen3-0.6B 离线推理与在线服务示例。该硬件路径有明确的运行时约束310p 专属务必遵守使用float16数据类型使用FULL_DECODE_ONLY模式并限制图捕获规模例如cudagraph_capture_sizes: [1, 2, 4, 8]不支持enable_npugraph_ex需通过additional_config显式关闭{ascend_compilation_config: {enable_npugraph_ex: false}}。以在线服务为例vllm serve Qwen/Qwen3-0.6B \ --dtype float16 \ --max-num-seqs 8 \ --compilation-config {cudagraph_mode:FULL_DECODE_ONLY,cudagraph_capture_sizes:[1,2,4,8]} \ --additional-config {ascend_compilation_config:{enable_npugraph_ex:false}} 服务启动后日志出现Uvicorn running on http://0.0.0.0:8000即可用之前映射的 8000 端口访问/v1/models、/v1/completions等 OpenAI 兼容接口如需更换模型或深入分布式部署可参考 支持模型列表 与 常见问题。若 Hugging Face 访问受限可在容器内设置VLLM_USE_MODELSCOPETrue并安装modelscope切换模型下载源。附自行构建 310p 镜像如果需要对镜像做定制例如固定 vLLM commit、调整依赖可以用仓库内的 Dockerfile 手动构建见 prebuilt_image.inc.md 对应章节的正确路径为 docs/source/getting_started/installation/prebuilt_image.inc.md# Ubuntu git clone --depth 1 --branch v0.23.0 \ https://gitcode.com/gh_mirrors/vl/vllm-ascend.git cd vllm-ascend docker build -t vllm-ascend-dev:latest -f Dockerfile.310p .# openEuler git clone --depth 1 --branch v0.23.0 \ https://gitcode.com/gh_mirrors/vl/vllm-ascend.git cd vllm-ascend docker build -t vllm-ascend-dev:latest -f Dockerfile.310p.openEuler .构建参数均可通过docker build --build-arg覆盖常用项包括VLLM_COMMIT精确 vLLM commit、VLLM_TAGvLLM 标签、SOC_VERSION默认ascend310p1与COMPILE_CUSTOM_KERNELS默认1控制是否编译自定义 Ascend 算子。构建完成后后续启动与验证流程与前文完全一致。赞分享人工智能大模型模型推理服务AscendCANN【免费下载链接】vllm-ascendCommunity maintained hardware plugin for vLLM on Huawei Ascend项目地址https://gitcode.com/gh_mirrors/vl/vllm-ascend点击查看免费下载相关推荐vllm-ascend 容器化部署实战Atlas 200I Pro 上 CANN 镜像的拉取与容器启动指南vllm ascend 容器化部署实战Atlas 200I Pro 上 CANN 镜像的拉取与容器启动指南 导读 本文聚焦 vllm ascend 项目在华为人工智能大模型模型推理服务AscendCANNvLLM Ascend 在 Atlas 300I DUO 上的 CANN 容器环境搭建与推理实战vLLM Ascend 在 Atlas 300I DUO 上的 CANN 容器环境搭建与推理实战 本指南完整讲解如何在华为 Atlas 300I DUO 推理加人工智能大模型模型推理服务AscendCANNvLLM Ascend Atlas A2 系列CANN 容器镜像拉取、启动与验证实战指南vLLM Ascend Atlas A2 系列CANN 容器镜像拉取、启动与验证实战指南 导读 本文以 vllm ascend 开源仓库的安装文档为骨架聚焦人工智能大模型模型推理服务AscendCANN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考