training-xpu-pytorch 25.09

Updated at:
Copy as MD

This document provides the release notes for training-xpu-pytorch 25.09.

Main features and bug fixes

Main features

  • Upgraded the PPU SDK to 1.6.1.

  • Upgraded vllm to 0.10.0, which includes community features and bug fixes.

  • Upgraded ffmpeg to 7.1.1 to use its stable software VVC decoder.

Bug fixes

  • Upgraded the SDK to 1.6.1 to resolve the following issues:

    • Fixed an out-of-memory (OOM) error that could occur during asys python sampling.

    • Resolved a bug where calls to the hgptiGetDeviceId API failed to retrieve the device ID.

    • Addressed an issue in Multi-Process Service (MPS) scenarios where certain metrics could exceed 100%.

    • Fixed a crash in DeepEP low latency mode that occurred when the number of experts exceeded 256.

  • Upgraded Triton to version 3.3.0+ppu1.6.1.cu128 to support int8mm optimizations.

Core components

Parameter

Value

Framework

pytorch

Requirements

PPU SDK 1.6.1

Core components

  • Ubuntu : 24.04

  • Python : 3.12.7+gc

  • CUDA : 12.8

  • perf : 5.4.30

  • gdb : 15.0.50

  • ffmpeg : 7.1.1

  • torch : 2.7.0+ali.8.ppu1.6.1.cu128

  • triton : 3.3.0+ppu1.6.1.cu128

  • transformer_engine : 2.3+ppu1.6.0.oe

  • deepspeed : 0.16.9+ali

  • flash-attn : 2.7.4.post1

  • xformers : 0.0.30+ppu1.6.0.oe

  • cupy : 13.5.1+ppu1.6.0.ce

  • transformers : 4.53.3+ali

  • accelerate : 1.7.0+ali

  • diffusers : 0.34.0

  • bitsandbytes : 0.45.5+ppu1.6.0.ce

  • mmengine : 0.10.7

  • mmcv : 2.1.0+ppu1.6.0.ce

  • mmdet3d : 1.4.0+ppu1.6.0.ce

  • vllm : 0.10.0+ppu1.6.1.oe

  • pytorch-dynamic-profiler : 0.24.11

  • peft : 0.16.0

  • ray : 2.49.2

  • cumm-cu128 : 0.8.1+ppu1.6.0.ce

  • spconv-cu128 : 2.3.6+ppu1.6.0.ce

  • imageio-ffmpeg : 0.5.1

  • open3d : 0.19.0+ppu1.6.0.ce

  • flashinfer-python : 0.2.9rc2+ppu1.6.1.oe

  • megatron-core : 0.12.1

Assets

25.09

Public image

  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-xpu-pytorch:25.09

VPC images

  • acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}

    {region-id} is the ID of the region where your Container Service for Kubernetes (ACK) cluster is located, such as cn-beijing or cn-wulanchabu.
    {image:tag} is the actual image name and tag.

Driver requirements

  • Driver version >= 1.1.0

Key features and enhancements

PyTorch compilation optimization

The compilation optimization feature introduced in PyTorch 2.0 usually provides significant benefits in small-scale, single-GPU scenarios, but in LLM training, the need to incorporate memory optimization and distributed frameworks such as FSDP and Deepspeed makes it difficult for torch.compile() to provide benefits and can even cause performance degradation:

  • This optimization controls communication granularity within the DeepSpeed framework, allowing the compiler to capture a more complete computation graph and apply broader optimizations.

  • This release includes an optimized version of PyTorch with the following enhancements:

    • An optimized PyTorch compiler frontend that ensures successful compilation even when arbitrary graph breaks occur.

    • Enhanced pattern matching and dynamic shape capabilities to improve the performance of compiled code.

With these optimizations, you can typically achieve an end-to-end (E2E) throughput gain of around 20% when training an 8B LLM.

Recomputation memory optimization

A model to predict memory overhead was built using extensive benchmark data from various models, clusters, and training configurations—along with system metrics like memory utilization. This allows the system to recommend the optimal number of activation checkpointing layers. Integrated into PyTorch and compatible with the DeepSpeed framework, this feature helps users optimize memory usage.

ACCL communication library

ACCL is a high-performance network communication library developed by Alibaba for Lingjun products. It is available in three versions: ACCL-N for NVIDIA GPUs, ACCL-P for PPUs, and ACCL-R for AMD accelerators. ACCL-N is based on NVIDIA NCCL, offering full compatibility and including bug fixes and optimizations for performance and stability. ACCL-P is a collective communication library built upon T-Head's open-source pccl. ACCL-R is built upon AMD's open-source ROCm rccl. This release ports key features from ACCL and ACCL-N to pccl, resolves known issues, and is deeply customized for integration with Alibaba Cloud's proprietary networking components.

End-to-end performance evaluation

Using CNP, our cloud native AI performance evaluation tool, we conducted a comprehensive end-to-end performance comparison against a standard base image using mainstream open-source models and framework configurations. We also performed an ablation study to assess the performance impact of each optimization on overall model training.

Image comparison against base image and iterative evaluation

image.png

End-to-end performance contribution analysis of PPU core components

The following tests, based on version 25.09, evaluate and compare end-to-end training performance on a multi-node PPU cluster. The comparison includes:

  1. Base: The standard PPU PyTorch image.

  2. ACS AI Image: Base+ACCL: The base image with the ACCL communication library.

  3. ACS AI Image: AC2+ACCL: The golden image with AC2 BaseOS and ACCL, with no optimizations enabled.

  4. ACS AI Image: AC2+ACCL+CompilerOpt: The golden image with AC2 BaseOS, ACCL, and the torch compile optimization enabled.

  5. ACS AI Image: AC2+ACCL+CompilerOpt+CkptOpt: The golden image with AC2 BaseOS, ACCL, and both torch compile and selective gradient checkpoint optimizations enabled.

image.png

Quick start

The following examples show how to pull the training-xpu-pytorch image with Docker.

Note

To use the training-xpu-pytorch image in ACS, select it from the Artifacts Center on the Create Workload page in the console, or specify the image reference in a YAML file.

1. Log in to the image registry

docker login egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com

2. Enable compiler and recomputation optimization

  • Enable compilation optimization

    Use the transformers Trainer API:

    image.png

  • Enable recomputation-based GPU memory optimization

    export CHECKPOINT_OPTIMIZATION=true

3. Start the container

This topic uses the model training tool ljperf, which is built into the image, to describe the steps for starting a container and running a training task.

Note

For ACS products, use images via YAML.

LLMs

# Start and enter the container
docker run --rm -it --ipc=host --net=host  --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-xpu-pytorch:25.09

# Run the training demo
ljperf --action train --model_name deepspeed/llama3-8b

Recommendations

  • This image contains changes to libraries such as PyTorch and DeepSpeed. Do not reinstall them.

  • In the DeepSpeed configuration, leave zero_optimization.stage3_prefetch_bucket_size blank or set it to auto.

  • Quantization capabilities:

    • DeepSeek R1 (671B):

      • vLLM 0.10.0: Supports per-token/per-channel a8w8 (int8), AWQ (w4a16), and GPTQ (w4a16, w8a16) quantization schemes.

    • Qwen3:

      • vLLM 0.10.0: Supports per-token/per-channel a8w8 (int8), AWQ (w4a16), and GPTQ (w4a16, w8a16) quantization schemes.

  • Use this image with driver version 1.5.1 or later for the best performance. For more information, see Specify GPU models and driver versions for ACS GPU Pods and GPU driver versions.

  • Adjust the built-in NCCL_SOCKET_IFNAME environment variable based on your use case:

    • If a single Pod requests 1, 2, 4, or 8 GPUs for training or inference tasks, set NCCL_SOCKET_IFNAME=eth0. This is the default configuration in this image.

    • If a single Pod requests all 16 GPUs on a machine for training or inference tasks, set NCCL_SOCKET_IFNAME=hpn0. This setting lets you use the High-Performance Network (HPN).

  • Use this image with the service described in Use the Alibaba Cloud PPU PIP Service in ACS. This service provides one-stop, password-free access to the PIP service within an ACS Virtual Private Cloud (VPC), so you do not need to use other PIP sources. This image includes the required pip configuration. You must also follow the documentation to complete the setup for your specific use case.

  • To use AcclEP-P (the PPU version of DeepEP) in an ACS environment, set the environment variable: export EIC_VSOLAR=1. This setting is required for this image but is expected to be removed in future image versions.