KTransformers Ascend NPU支持:昇腾处理器适配教程

【免费下载链接】ktransformers A Flexible Framework for Experiencing Cutting-edge LLM Inference Optimizations 【免费下载链接】ktransformers 项目地址: https://gitcode.com/gh_mirrors/ktr/ktransformers

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,并禁止系统自动更新。

昇腾NPU架构

软件栈安装步骤

1. HDK和CANN安装

首先安装Ascend HDK 25.3.RC1CANN 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

模型权重准备

需要准备两份权重并进行合并:

使用合并脚本:

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

NPU性能对比

性能基准测试

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

优化建议

  1. 内存配置:部署满血版DeepSeek-R1/V3需要约400GB物理内存
  2. 网络优化:确保github、gitcode等平台网络畅通
  3. 版本一致性:严格遵循推荐的软件版本要求
  4. 监控调试:使用PROF_DECODE和PROF_PREFILL环境变量进行性能分析

通过本教程,您可以在昇腾NPU平台上成功部署KTransformers框架,享受高性能的LLM推理体验。🚀

昇腾计算架构

【免费下载链接】ktransformers A Flexible Framework for Experiencing Cutting-edge LLM Inference Optimizations 【免费下载链接】ktransformers 项目地址: https://gitcode.com/gh_mirrors/ktr/ktransformers

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐