news 2026/5/9 11:47:33

NPU平台DeepSeek-V3.2推理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
NPU平台DeepSeek-V3.2推理

DeepSeek-V3.2-Exp Inference on NPU

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

概述

DeepSeek团队发布了最新的模型DeepSeek-V3.2-Exp,在各项指标上都达到了SOTA水平。本样例基于DeepSeek开源代码进行迁移,并在CANN平台上完成对应的优化适配,可在华为 Atlas A3 集群上运行起来。

  • 本样例的并行策略和性能优化点详细介绍可参见NPU DeepSeek-V3.2-Exp推理优化实践。

硬件要求

产品型号:Atlas A3 系列

操作系统:Linux ARM

镜像版本:cann8.5_pt2.6.0_dsv3.2_aarch_image:v0.7

驱动版本:Ascend HDK 25.2.0

npu-smi info 检查Ascend NPU固件和驱动是否正确安装。如果已安装,通过命令npu-smi info确认版本是否为 25.2.0。如果未安装或者版本不是 25.2.0,请先下载固件和驱动包,然后根据指导自行安装。

快速启动

下载源码

在各个节点上执行如下命令下载 cann-recipes-infer 源码。

mkdir -p /home/code; cd /home/code/ git clone https://gitcode.com/cann/cann-recipes-infer.git cd cann-recipes-infer

下载数据集

从链接中下载长序列输入数据集longbook_qa_eng,并上传到各个节点上新建的路径 dataset/InfiniteBench下。

mkdir -p dataset/InfiniteBench

下载权重

下载DeepSeek-V3.2-Exp原始fp8权重,并上传到Atlas A3各节点某个固定的路径下,比如/data/models/DeepSeek-V3.2-Exp-fp8

获取 docker 镜像

从ARM镜像地址中下载 docker 镜像,然后上传到A3服务器的每个节点上,并通过命令导入镜像docker load -i cann8.5_pt2.6.0_dsv3.2_aarch_image_v0.7.tar

拉起 docker 容器

在各个节点上通过如下脚本拉起容器,默认容器名为 cann_recipes_infer。注意:需要将权重路径和源码路径挂载到容器里。

docker run -u root -itd --name cann_recipes_infer --ulimit nproc=65535:65535 --ipc=host \ --device=/dev/davinci0 --device=/dev/davinci1 \ --device=/dev/davinci2 --device=/dev/davinci3 \ --device=/dev/davinci4 --device=/dev/davinci5 \ --device=/dev/davinci6 --device=/dev/davinci7 \ --device=/dev/davinci8 --device=/dev/davinci9 \ --device=/dev/davinci10 --device=/dev/davinci11 \ --device=/dev/davinci12 --device=/dev/davinci13 \ --device=/dev/davinci14 --device=/dev/davinci15 \ --device=/dev/davinci_manager --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /home/:/home \ -v /data:/data \ -v /etc/localtime:/etc/localtime \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /etc/ascend_install.info:/etc/ascend_install.info -v /var/log/npu/:/usr/slog \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /usr/local/dcmi:/usr/local/dcmi -v /usr/local/sbin:/usr/local/sbin \ -v /etc/hccn.conf:/etc/hccn.conf -v /root/.pip:/root/.pip -v /etc/hosts:/etc/hosts \ -v /usr/bin/hostname:/usr/bin/hostname \ --net=host \ --shm-size=128g \ --privileged \ cann8.5_pt2.6.0_dsv3.2_aarch_image:v0.7 /bin/bash

在各个节点上通过如下命令进入容器:

docker attach cann_recipes_infer cd /home/code/cann-recipes-infer/models/deepseek-v3.2-exp

转换权重

在各个节点上使用weight_convert.sh脚本完成FP8到Bfloat16/Int8权重转换。

入参介绍:input_fp8_hf_path:原始fp8权重路径;output_hf_path:转换后输出的权重路径;quant_mode:量化模式

如果权重转换的运行环境为NPU,需要先执行:

cann_path=/usr/local/Ascend/ascend-toolkit/latest # cann包安装路径 source ${cann_path}/bin/setenv.bash

权重转换拉起示例:

# 转换为Bfloat16权重 bash utils/weight_convert.sh --input_fp8_hf_path /data/models/DeepSeek-V3.2-Exp-FP8 --output_hf_path /data/models/DeepSeek-V3.2-Exp-Bfloat16 --quant_mode bfloat16 # 转换为W8A8C16权重 bash utils/weight_convert.sh --input_fp8_hf_path /data/models/DeepSeek-V3.2-Exp-FP8 --output_hf_path /data/models/DeepSeek-V3.2-Exp-W8A8C16 --quant_mode w8a8c16 # 转换为W8A8C8权重 bash utils/weight_convert.sh --input_fp8_hf_path /data/models/DeepSeek-V3.2-Exp-FP8 --output_hf_path /data/models/DeepSeek-V3.2-Exp-W8A8C8 --quant_mode w8a8c8 # 转换为W4A8C8权重 bash utils/weight_convert.sh --input_fp8_hf_path /data/models/DeepSeek-V3.2-Exp-FP8 --output_hf_path /data/models/DeepSeek-V3.2-Exp-W4A8C8 --quant_mode w4a8c8

修改代码

  • 在各个节点上修改 set_env.sh 文件中的IPs。

    export IPs=('xxx.xxx.xxx.xxx' 'xxx.xxx.xxx.xxx') # 所有节点的IP,确保第1个IP是master,多个节点的ip通过空格分开
  • 在各个节点上修改 config/ 路径下需要执行的yaml文件中的model_path路径。关于YAML文件中的更多配置说明可参见YAML参数描述。

    # BF16 model_path: "/data/models/DeepSeek-V3.2-Exp-Bfloat16" # W8A8C16 model_path: "/data/models/DeepSeek-V3.2-Exp-W8A8C16" # W8A8C8 model_path: "/data/models/DeepSeek-V3.2-Exp-W8A8C8"
  • 在各个节点上修改 infer.sh 文件中的YAML_FILE_NAME,指定为上一步需要执行的yaml文件名。默认的yaml路径为32卡推理。

    # BF16 prefill export YAML_FILE_NAME=deepseek_v3.2_exp_rank_64_64ep_prefill_benchmark.yaml # BF16 decode export YAML_FILE_NAME=deepseek_v3.2_exp_rank_128_128ep_decode_benchmark.yaml # W8A8C8 prefill export YAML_FILE_NAME=deepseek_v3.2_exp_rank_64_64ep_w8a8c8_prefill_benchmark.yaml # W8A8C8 decode export YAML_FILE_NAME=deepseek_v3.2_exp_rank_128_128ep_w8a8c8_decode_benchmark.yaml

    Note: 本样例BF16场景Prefill支持32-128卡,Decode支持32-128卡,Int8场景Prefill支持8-128卡,Decode支持8-128卡,可分别在config下的yaml文件中修改world_size配置。

拉起多卡推理

在各个节点上同步执行如下命令即可拉起多卡推理任务。

bash infer.sh

附录

FAQ

  • HCCL_BUFFSIZE不足问题:如果报错日志中出现关键字"HCCL_BUFFSIZE is too SMALL, ..., NEEDED_HCCL_BUFFSIZE..., HCCL_BUFFSIZE=200MB, ...",可通过配置环境变量export HCCL_BUFFSIZE=实际需要的大小解决,所有Rank上的该环境变量需保持一致。HCCL_BUFFSIZE参数介绍可参考昇腾资料中的详细描述。
  • 自定义算子导入失败:如果报错日志中出现类似关键字"'_OpNamespace' 'custom' object has no attribute",可参考自定义算子指南编译所需算子。

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 11:46:50

CANN/ge函数处理点API

FuncProcessPoint 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFl…

作者头像 李华
网站建设 2026/5/9 11:37:12

Dragon Brain:基于知识图谱与向量搜索的AI智能体持久记忆系统

1. 项目概述:为AI智能体构建持久记忆的“龙脑” 如果你和我一样,长期与Claude、Cursor这类AI助手协作,一定经历过这种挫败感:昨天我们还在深入讨论一个复杂的项目架构,今天打开新对话,它就像得了失忆症&am…

作者头像 李华
网站建设 2026/5/9 11:34:29

点餐外卖小程序源码如何降低平台开发成本与运营压力

这几年,本地生活行业变化非常明显。 越来越多餐饮门店、生鲜商超以及区域配送平台,开始尝试搭建自己的线上系统。尤其是在即时配送和私域运营不断发展的背景下,“点餐外卖小程序源码”逐渐成为很多商家重点关注的方向。 过去很多商家做线上外…

作者头像 李华
网站建设 2026/5/9 11:32:28

艾平咨询机构公布2026国内企业商城开发商综合实力排名

2026年5月,国内知名产业研究机构艾平咨询正式发布《2026国内企业商城开发商综合实力排名》。本次评选围绕技术架构、源码开放性、合规安全、交付能力及长期性价比五大维度,对国内主流服务商进行了为期三个月的深度调研。最终,宁波启山智软科技…

作者头像 李华