Skip to main content

ROLL x Ascend

Last updated: 06/23/2026.

We have added support for Huawei Ascend devices in ROLL.

Hardware Compatibility and Supported Operating Systems

ROLL's Ascend support is currently validated on training-series Ascend hardware:

ProductSupport statusNotes
Atlas 900 A2 PODc (Ascend 910B1) / Atlas A2 training seriesUse docker/Dockerfile.A2 or the roll:ascend-a2 image.
Atlas 900 A3 PODc (Ascend 910_9391) / Atlas A3 training seriesUse docker/Dockerfile.A3 or the roll:ascend-a3 image.
Ascend 950 training seriesUse the Ascend 950 installation profile: torch 2.10, vLLM v0.20.2, vLLM-Ascend main, and COMPILE_CUSTOM_KERNELS=1 when building vLLM-Ascend.
Atlas A2/A3 inference series and Atlas 200I/500 A2 inference productsxCurrent ROLL NPU images and examples target training-series devices.
Other Ascend training or inference productsNot validatedValidate the driver, firmware, CANN, torch_npu, and vLLM-Ascend versions before use.

In this table, means supported by the current ROLL Ascend Dockerfiles/examples or the manual Ascend 950 installation profile, and x means not supported in the current ROLL NPU setup.

Supported operating systems:

Deployment scenarioSupported OSNotes
Physical hostUbuntu 22.04Recommended and validated by the current ROLL Ascend guides.
ROLL Ascend containerUbuntu 22.04The A2/A3 Dockerfiles are based on quay.io/ascend/cann:9.0.0-*-ubuntu22.04-py3.11.
Ascend 950 manual installationUbuntu 22.04Use the Ascend 950-specific torch/vLLM stack below. Keep the driver, firmware, CANN, and torch_npu versions aligned with the target Ascend 950 environment.
VM/container deployments on other host OS versionsFollow Ascend/CANN compatibility guidanceCheck the Ascend compatibility query assistant and the CANN Software Installation OS compatibility notes for the target hardware.

Installation

Basic Environment Setup

SoftwareVersion
Python3.11
CANN9.0.0

For Ascend 950 , keep Python 3.11 and use the Ascend 950-specific torch/vLLM stack described in [Ascend 950 Installation Profile](#Ascend 950-installation-profile).

Create Conda Environment

Use the following commands to create a new conda environment in Miniconda:

conda create --name roll python=3.11
conda activate roll

Install torch & torch_npu

To use torch and torch_npu in ROLL, install them using the commands below:

# Use CPU-only torch when installing outside the pre-built image
pip install torch==2.9.0 torchvision==0.24.0 torchaudio==2.9.0 --index-url https://download.pytorch.org/whl/cpu

# Install the torch_npu version matching torch/CANN
pip install torch_npu==2.9.0

Install vllm & vllm-ascend

To use vllm in ROLL, compile and install vllm and vllm-ascend as follows:

# vllm
git clone -b v0.18.0 --depth 1 https://github.com/vllm-project/vllm.git
cd vllm
pip install -r requirements/build.txt

VLLM_TARGET_DEVICE=empty pip install -v -e .
cd ..

# vllm-ascend
git clone -b v0.18.0 --depth 1 https://github.com/vllm-project/vllm-ascend.git
cd vllm-ascend

pip install -e .
cd ..

Or you could install vllm and vllm-ascend from pre-built wheel:

# Install vllm-project/vllm. The newest supported version is v0.18.0.
pip install vllm==0.18.0

# Install vllm-project/vllm-ascend from pypi.
pip install vllm-ascend==0.18

Ascend 950 Installation Profile

For Ascend 950, use torch 2.10, vLLM v0.20.2, and vLLM-Ascend from the main branch. Set COMPILE_CUSTOM_KERNELS=1 before installing vLLM-Ascend so its custom kernels are built:

# Install torch 2.10
pip install torch==2.10.0 torchvision==0.25.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cpu

# Install the torch_npu package matching torch 2.10 and your CANN release
pip install torch_npu==2.10.0

# vLLM v0.20.2
git clone -b v0.20.2 --depth 1 https://github.com/vllm-project/vllm.git
cd vllm
pip install -r requirements/build.txt
VLLM_TARGET_DEVICE=empty pip install -v -e .
cd ..

# vLLM-Ascend main
git clone -b main --depth 1 https://github.com/vllm-project/vllm-ascend.git
cd vllm-ascend
export COMPILE_CUSTOM_KERNELS=1
pip install -v -e .
cd ..

Install ROLL

git clone https://github.com/alibaba/ROLL.git
cd ROLL
pip install -r requirements_common.txt
pip install -e .
cd ..

Additional Third-Party Libraries

SoftwareDescription
transformers>= v4.57.6
flash_attnnot supported
transformer-engine[pytorch]not supported
  1. transformers v4.57.6 supports enabling --flash_attention_2.
  2. flash_attn acceleration is not supported currently.
  3. transformer-engine[pytorch] is currently not supported.
pip install transformers==4.57.6

Quick Start: Single-Node Deployment

Before full usage, we recommend testing the single-node pipeline to verify your environment and installation. Since Megatron-LM is not supported on NPU, first change strategy_args in the relevant files to use the fsdp2 option.

  1. Run the single-node pipeline via shell:
bash examples/agentic_demo/run_agentic_pipeline_frozen_lake_single_node_demo.sh
  1. Run the agentic pipeline using a config file:
# Make sure you are in the root directory of the ROLL project

python examples/start_agentic_pipeline.py \
--config_path qwen2.5-0.5B-agentic \
--config_name agentic_val_sokoban
  • --config_path – Directory containing your YAML configuration files.
  • --config_name – Filename (without the .yaml extension).

Current Support Status

FeatureExampleTraining BackendInference BackendHardware
Agenticexamples/qwen2.5-0.5B-agentic/run_agentic_pipeline_sokoban.shFSDP2vLLMAtlas 900 A2/A3 PODc
Agentic-Rolloutexamples/qwen2.5-0.5B-agentic/run_agentic_rollout_sokoban.shFSDP2vLLMAtlas 900 A2/A3 PODc
RLVRexamples/ascend_examples/run_rlvr_pipeline.shFSDP2vLLMAtlas 900 A2/A3/Ascend 950 training series

Disclaimer

The Ascend support provided in ROLL is intended as a reference example. For production use, please consult official channels.