ROLL框架硬件支持详解:Ascend NPU、AMD GPU与CUDA环境配置
ROLL作为一款高效且用户友好的大语言模型强化学习扩展库,提供了对多种硬件平台的全面支持,包括Ascend NPU、AMD GPU和CUDA环境。本文将详细介绍在不同硬件平台上配置和使用ROLL框架的方法,帮助用户快速搭建适合自己的强化学习训练环境。
硬件支持概览
ROLL框架针对不同硬件架构进行了深度优化,确保在各种计算平台上都能发挥最佳性能。目前支持的硬件平台包括:
- NVIDIA CUDA:主流GPU加速方案,支持各种NVIDIA显卡
- AMD GPU:基于ROCm平台的AMD显卡支持
- Ascend NPU:华为Atlas系列AI加速芯片支持
CUDA环境配置
系统要求
CUDA环境是ROLL框架最成熟的部署方案,推荐用于生产环境。最低配置要求:
- CUDA版本 ≥ 12.4
- cuDNN版本 ≥ 9.1.0
- PyTorch ≥ 2.5.1
- vLLM ≥ 0.7.3 或 SGlang ≥ 0.4.3
快速安装步骤
-
克隆仓库
git clone https://gitcode.com/gh_mirrors/roll13/ROLL cd ROLL -
安装依赖
pip install -r requirements_common.txt -
选择合适的推理引擎
- 对于vLLM:
pip install vllm>=0.7.3 - 对于SGlang:
pip install sglang>=0.4.3
- 对于vLLM:
配置优化
在配置文件中可以通过以下参数优化CUDA资源使用:
mem_fraction_static:控制模型权重和KV缓存等静态内存的GPU内存占比CUDA_VISIBLE_DEVICES:指定使用的GPU设备gpu_memory_utilization:调整GPU内存利用率
配置示例:
actor_infer:
strategy_args:
strategy_name: vllm
strategy_config:
tensor_parallel_size: 2
gpu_memory_utilization: 0.9
AMD GPU环境配置
系统要求
AMD GPU用户需要满足以下条件:
- ROCm版本 ≥ 6.3.4
- PyTorch ≥ 2.6.0
- vLLM ≥ 0.8.4
推荐安装方式
ROLL为AMD用户提供了预构建的Docker镜像,推荐使用Docker方式快速部署:
docker pull hub.docker.com/r/rlsys/roll_opensource
如果需要手动安装,请执行:
git clone https://gitcode.com/gh_mirrors/roll13/ROLL
cd ROLL
pip install -r requirements.txt
专用配置文件
ROLL在examples/目录下提供了AMD专用的配置文件,例如:
examples/qwen2.5-0.5B-agentic/agent_val_frozen_lake_amd.yamlexamples/qwen2.5-7B-rlvr_megatron/rlvr_config_amd.yaml
这些配置文件针对AMD GPU进行了优化,可直接用于训练和推理。
Ascend NPU环境配置
支持的硬件
目前ROLL支持的Ascend硬件平台:
- Atlas 900 A3 PODc
环境准备
-
基础环境要求
软件 版本 Python 3.11 CANN 8.5.1 -
创建conda环境
conda create --name roll python=3.11 conda activate roll -
安装PyTorch和torch_npu
# 安装CPU版本PyTorch pip install torch==2.9.0 torchvision==0.24.0 torchaudio==2.9.0 --index-url https://download.pytorch.org/whl/cpu # 安装torch_npu pip install torch_npu==2.9.0 -
安装vllm和vllm-ascend
# 安装vllm pip install vllm==0.13.0 # 安装vllm-ascend pip install vllm-ascend==0.13.0 -
安装ROLL
git clone https://gitcode.com/gh_mirrors/roll13/ROLL cd ROLL pip install -r requirements_common.txt pip install deepspeed==0.16.4
快速启动示例
单节点部署示例:
bash examples/agentic_demo/run_agentic_pipeline_frozen_lake_single_node_demo.sh
使用配置文件启动:
python examples/start_agentic_pipeline.py \
--config_path qwen2.5-0.5B-agentic \
--config_name agentic_val_sokoban
当前支持状态
| 功能 | 示例 | 训练后端 | 推理后端 | 硬件 |
|---|---|---|---|---|
| Agentic | examples/qwen2.5-0.5B-agentic/run_agentic_pipeline_sokoban.sh | DeepSpeed | vLLM | Atlas 900 A3 PODc |
| Agentic-Rollout | examples/qwen2.5-0.5B-agentic/run_agentic_rollout_sokoban.sh | DeepSpeed | vLLM | Atlas 900 A3 PODc |
| DPO | examples/qwen2.5-3B-dpo_megatron/run_dpo_pipeline.sh | DeepSpeed | vLLM | Atlas 900 A3 PODc |
| RLVR | examples/qwen2.5-7B-rlvr_megatron/run_rlvr_pipeline.sh | DeepSpeed | vLLM | Atlas 900 A3 PODc |
设备映射配置
ROLL通过device_mapping参数灵活配置不同角色使用的GPU资源,支持两种模式:
共享模式(Colocated Mode)
多个角色共享相同的GPU资源,提高资源利用率:
actor_infer:
device_mapping: list(range(0,8)) # 与actor_train共享GPU [0,8)
actor_train:
device_mapping: list(range(0,8))
分离模式(Disaggregated Mode)
不同角色使用不同的GPU资源,实现异步训练:
# actor_train使用GPU [0, 1, 2, 3],actor_infer使用GPU [4, 5, 6, 7]
actor_train:
device_mapping: list(range(0,4))
actor_infer:
device_mapping: list(range(4,8))
常见问题解决
CUDA内存不足
- 减小
mem_fraction_static参数值 - 降低批处理大小(batch size)
- 启用模型并行或张量并行
AMD GPU兼容性问题
- 使用官方提供的Docker镜像
- 确保ROCm版本≥6.3.4
- 参考
examples/目录下的AMD专用配置文件
Ascend NPU支持限制
- 目前不支持Megatron-LM训练,需将
strategy_args设置为deepspeed - 不支持colocated模式,需确保训练和推理使用不同的设备
通过以上配置指南,用户可以根据自己的硬件环境快速搭建ROLL框架,充分利用不同硬件平台的优势进行大语言模型的强化学习训练。无论是NVIDIA CUDA、AMD GPU还是Ascend NPU,ROLL都提供了相应的优化方案,帮助用户高效开展强化学习研究和应用开发。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




