# KunpengDistInfer **Repository Path**: kunpeng-hpc/KunpengDistInfer ## Basic Information - **Project Name**: KunpengDistInfer - **Description**: DeepSeek鲲鹏分布式推理参考实现 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-11 - **Last Updated**: 2025-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeepSeek鲲鹏分布式推理参考实现 ## 1. 简介 鲲鹏芯片支持向量、矩阵计算,算力跃升,辅以高速RDMA网络,带来超大带宽、微秒级延迟的极致性能。该芯片多NUMA与大带宽互联的特性在部署推理服务时, 天然亲和MoE架构模型的集群拓展。基于此,我们提出一种多节点分布式推理DeepSeek R1/V3的方案,采用TP=16、EP=256的并行策略。以16节点示例,每 个节点放置1份Attention权重、每个NUMA放置1个专家权重,通过算子级流水编排并结合高速RDMA网络,实现计算-通信隐藏,为大规模MoE模型提供高并发、 低延迟、可线性扩展的鲲鹏分布式推理实践。 ## 2. 本地运行 ### 2.1 环境搭建 #### 2.1.1 HPCKit安装 该方案使用HPCKit组件中的毕昇编译器进行编译,HPCKit安装流程参考[官方指导文档](https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/instg/KunpengHPCKit_install_002.html)。 #### 2.1.2 加载毕昇编译器 ```shell HPCKIT_PATH=/path-to-HPCKit source ${HPCKIT_PATH}/latest/compiler/bisheng/env/setvars.sh export CC=$(which clang) export CXX=$(which clang++) export FC=$(which flang) ``` #### 2.1.3 MVAPICH安装 该方案使用MVAPICH进行程序拉起,源码获取参考[MVAPICH官网](https://mvapich.cse.ohio-state.edu),安装流程如下: ```shell bash script/mvapich_install.sh --prefix=/path/to/install ``` #### 2.1.4 safetensors-cpp安装 该方案使用开源软件[safetensors-cpp](https://github.com/syoyo/safetensors-cpp)进行Tensor处理,软件安装流程如下: ```shell git clone https://github.com/syoyo/safetensors-cpp.git ``` #### 2.1.5 KUPL安装 KUPL最新软件包联系华为方进行获取。 同时,KUPL最新版本需配合[zcopy](https://gitee.com/kunpeng-hpc/kutacc/blob/dist_infer/thirdparty/zcopy/README.md)驱动进行安装使用。 ### 2.1.6 KuTACC安装 KuTACC为华为自研AI推理融合算子库,安装流程参考[KuTACC安装流程](https://gitee.com/kunpeng-hpc/kutacc/tree/dist_infer/)。 ### 2.1.7 Conda环境准备 ```shell conda create -n deepseek_env python=3.11 conda activate deepseek_env conda install -r requirements.txt ``` ### 2.2 编译 加载环境变量并执行编译脚本: ```shell KUPL_PATH=/path-to-KUPL export MPI_PATH=/path-to-MVAPICH export KUTACC_PATH=/path-to-KuTACC export SAFETENSORS_CPP_PATH=/path-to-safetensors-cpp export PATH=${MPI_PATH}/bin:$PATH export CPATH=${KUPL_PATH}/include:$CPATH export LIBRARY_PATH=${KUPL_PATH}/lib:$LIBRARY_PATH export LD_LIBRARY_PATH=${KUPL_PATH}/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/lib64/libibverbs:$LD_LIBRARY_PATH bash build_kpinfer.sh ``` ### 2.3模型转换 该方案使用美团的W8A8量化模型,从[Hugging Face](https://huggingface.co/meituan/DeepSeek-R1-Channel-INT8)下载权重,放入 `/path-to-models`文件夹,并模型权重转换为特定格式 ```shell python script/convert.py \ --load-path /path-to-models/DeepSeek-R1-Channel-INT8 \ --save-path /path-to-models/DeepSeek-R1-Channel-INT8-kpinferconvert \ --world-size 16 \ --local-size 16 \ --n-experts 256 ``` #### 2.4 运行 配置`run.sh`中的模型路径`MODEL_PATH`和节点配置`HOSTS`,然后启动推理流程: ```shell cp /path-to-models/tokenizer.json script/ cp /path-to-models/tokenizer_config.json script/ chmod +x script/*.sh bash run.sh ``` > [支持场景] > 1.推理示例支持batch size=32、64、128下,输入序列长度和输出序列长度之和小于3096的场景。 > 2.推理示例的最优性能使用专家静态均衡算法,支持专家静态均衡算法、Top-K算法。 ## License 此代码库遵循[Open Software License 1.0](LICENSE),继承至MIT。 ## 联系方式 如果您有任何疑问,欢迎提issue讨论。