openEuler/llm_solution硬件使能:CANN与CUDA协同优化的完整配置手册
【免费下载链接】llm_solutionA solution for large model inference, such as DeepSeek, built with full-stack open-source components.项目地址: https://gitcode.com/openeuler/llm_solution
前往项目官网免费下载:https://ar.openeuler.org/ar/
openEuler/llm_solution是基于全栈开源组件构建的大模型推理解决方案,支持DeepSeek等模型的高效部署。本文将详细介绍如何通过CANN与CUDA的协同优化,充分发挥硬件性能,实现大模型推理的高效运行。
一、硬件使能架构概览
openEuler/llm_solution的硬件使能架构采用分层设计,从底层硬件到上层应用形成完整的技术栈。硬件层支持鲲鹏CPU、昇腾NPU和GPU等多种计算设备,通过CANN和CUDA技术实现不同硬件的协同工作。
1.1 软件栈层次结构
整个软件栈分为以下几个主要层次:
- 智能应用平台:包括智能调优、智能运维、智能问答和深度研究等模块
- 领域模型平台:支持LLaMA、Qwen、DeepSeek等多种大模型
- 运行加速平台:集成vLLM、SGang、MindSpore等推理加速框架
- 数据管理平台:采用openGauss数据库进行高效数据管理
- 任务管理平台:通过openYuanrong、RAY等实现任务调度
- 异构融合平台:基于openEuler异构融合操作系统内核,实现不同硬件的协同
二、CANN与CUDA协同优化配置
2.1 环境准备
在进行CANN与CUDA协同优化配置前,需要先安装必要的依赖包。项目提供了自动化脚本,可通过以下命令执行:
script/mindspore-deepseek/workspace/roles/prepare/files/lib/ascend_prepare.sh该脚本会自动安装包括unzip、gcc、make、git等在内的依赖包,并下载和安装昇腾NPU驱动。
2.2 环境变量配置
环境变量的正确配置对于CANN与CUDA的协同工作至关重要。项目提供了set_env.sh脚本用于统一配置环境变量:
script/mindspore-deepseek/workspace/roles/prepare/files/lib/set_env.sh主要配置项包括:
ASCEND_RT_VISIBLE_DEVICES:指定可见的昇腾设备ASCEND_TOTAL_MEMORY_GB:设置昇腾设备的总内存HCCL_SOCKET_IFNAME:配置HCCL通信使用的网络接口vLLM_MODEL_MEMORY_USE_GB:设置模型内存使用量
2.3 硬件加速框架配置
openEuler/llm_solution采用分层架构实现硬件加速,从底层到上层依次为硬件层、操作系统层、AI框架层、推理服务层和模型层。
关键配置文件路径:
- 昇腾设备配置:
script/mindspore-deepseek/workspace/roles/prepare/files/lib/ascend_prepare.sh - 环境变量设置:
script/mindspore-deepseek/workspace/roles/prepare/files/lib/set_env.sh - 模型配置文件:
/workspace/mindformers/research/deepseek3/deepseek_r1_671b/predict_deepseek_r1_671b_w8a8.yaml
三、一键部署脚本使用
为简化部署流程,项目提供了一键部署脚本,可快速完成CANN与CUDA协同优化环境的配置:
git clone https://gitcode.com/openeuler/llm_solution cd llm_solution script/mindspore-intelligence/scripts/0-one-click-deploy/one-click-deploy.sh该脚本会自动完成以下操作:
- 环境检查与依赖安装
- 昇腾驱动与CANN工具包安装
- CUDA环境配置
- 模型优化参数设置
- 推理服务启动
四、性能优化建议
4.1 内存优化
- 设置合理的模型内存使用量:
export vLLM_MODEL_MEMORY_USE_GB=53 - 启用内存虚拟化管理:
export MS_ALLOC_CONF="enable_vmm:True"
4.2 并行计算配置
- 根据节点数量调整模型并行参数
- 单节点配置:
model_parallel: 8 - 多节点配置:使用对应的yaml文件,如
predict_deepseek_r1_671b_w8a8_ep4tp4.yaml
4.3 网络优化
- 配置合适的网络接口:
export HCCL_SOCKET_IFNAME=eth0 - 增加通信超时时间:
export HCCL_CONNECT_TIMEOUT=7200
五、常见问题解决
5.1 驱动安装失败
如果昇腾驱动安装失败,可检查以下几点:
- 确保系统内核版本与驱动匹配
- 检查依赖包是否安装完整
- 查看安装日志定位具体错误:
cat /var/log/ascend_seclog/ascend_install.log
5.2 环境变量不生效
若环境变量配置后不生效,可执行以下命令手动加载:
source /root/.bashrc或检查set_env.sh脚本是否正确执行,确认环境变量是否已写入.bashrc文件。
六、总结
通过本文介绍的CANN与CUDA协同优化配置方法,您可以充分发挥openEuler/llm_solution在异构硬件环境下的性能优势。项目提供的自动化脚本和配置文件大大简化了部署流程,即使是新手用户也能快速搭建高效的大模型推理环境。
如需进一步了解详细配置选项,可参考项目文档:doc/deepseek/DeepSeek-V3&R1部署指南.md。
【免费下载链接】llm_solutionA solution for large model inference, such as DeepSeek, built with full-stack open-source components.项目地址: https://gitcode.com/openeuler/llm_solution
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考