KTransformers Ascend NPU支持:昇腾处理器适配教程
KTransformers作为一个灵活的LLM推理优化框架,最新版本已经全面支持华为昇腾Ascend NPU处理器。本文将为您提供完整的昇腾NPU适配指南,帮助您在Atlas服务器上部署DeepSeek-R1/V3模型并获得最佳性能表现。🎯## 昇腾NPU环境配置### 硬件要求目前KTransformers支持的NPU型号为**300I A2**,推荐配置:- 服务器型号:Atla
KTransformers Ascend NPU支持:昇腾处理器适配教程
KTransformers作为一个灵活的LLM推理优化框架,最新版本已经全面支持华为昇腾Ascend NPU处理器。本文将为您提供完整的昇腾NPU适配指南,帮助您在Atlas服务器上部署DeepSeek-R1/V3模型并获得最佳性能表现。🎯
昇腾NPU环境配置
硬件要求
目前KTransformers支持的NPU型号为300I A2,推荐配置:
- 服务器型号:Atlas 2UP
- CPU: HUAWEI Kunpeng 920 7270Z
- 内存: DDR5服务器内存(1TB)
系统环境部署
选用Ubuntu 22.04 for aarch64系统,内核版本5.15.0-25-generic,并禁止系统自动更新。
软件栈安装步骤
1. HDK和CANN安装
首先安装Ascend HDK 25.3.RC1和CANN 8.3.RC1.alpha003,需要安装ToolKit、Kernel和NNAL组件。
2. Python环境配置
conda create -n py311 python=3.11
conda activate py311
pip3 install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1
pip3 install transformers==4.57.1 # 必须使用此版本
3. torch_npu编译安装
从torch_npu Gitcode获取源码,编译v2.5.1分支版本:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
模型权重准备
需要准备两份权重并进行合并:
- Q4权重:DeepSeek-R1-Q4_K_M
- W8A8权重:DeepSeek-R1-W8A8
使用合并脚本:
python merge_safetensor_gguf.py --safetensor_path /path/to/Q4 --gguf_path /path/to/W8A8 --output_path /output/path
KTransformers部署
项目初始化
git clone https://gitcode.com/gh_mirrors/ktr/ktransformers
cd ktransformers
git submodule update --init --recursive
环境变量配置
开启图下沉功能:
export TASK_QUEUE_ENABLE=0 # 保证算子下发顺序有序
export USE_BALANCE_SERVE=1
export USE_NUMA=1
安装编译
source /usr/local/Ascend/ascend-toolkit/set_env.sh
apt install cmake libhwloc-dev pkg-config
bash ./install.sh
启动服务示例
创建启动脚本start_server.sh:
#!/bin/bash
export USE_MERGE=0
export INF_NAN_MODE_FORCE_DISABLE=1
export TASK_QUEUE_ENABLE=0
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
python ktransformers/server/main.py \
--port 10002 \
--model_path <your_model_path> \
--gguf_path <your_model_path> \
--model_name DeepSeekV3ForCausalLM \
--optimize_config_path ./ktransformers/optimize/optimize_rules/npu/DeepSeek-V3-Chat-300IA2-npu-serve.yaml \
--max_new_tokens 1024 \
--cache_lens 20480 \
--backend_type balance_serve
性能基准测试
| Prompt长度 | 1K | 2K | 4K |
|---|---|---|---|
| Prefill tokens/s | 174.68 | 169.52 | 167.15 |
| Decode tokens/s | 16.07 | 16.12 | 16.48 |
常见问题解决
依赖库缺失
# 解决libhccl.so缺失
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# 解决libascend_hal.so缺失
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
ARM平台特殊配置
注释掉./third_party/llamafile/iqk_mul_mat_arm82.cpp中的:
// #define iqk_mul_mat iqk_mul_mat_arm82
// #define iqk_mul_mat_moe iqk_mul_mat_moe_arm82
优化建议
- 内存配置:部署满血版DeepSeek-R1/V3需要约400GB物理内存
- 网络优化:确保github、gitcode等平台网络畅通
- 版本一致性:严格遵循推荐的软件版本要求
- 监控调试:使用PROF_DECODE和PROF_PREFILL环境变量进行性能分析
通过本教程,您可以在昇腾NPU平台上成功部署KTransformers框架,享受高性能的LLM推理体验。🚀
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐





所有评论(0)