training-xpu-pytorch 26.04

更新时间:
复制 MD 格式

This topic describes the release notes of training-xpu-pytorch 26.04 versions.

Main Features and Bug Fix Lists

Main Features

  • Upgrade CUDAto 13.0 and PPU SDKs to 2.1.0.

  • Upgrade deepspeed to 0.18.8, cupy to 14.0.1, and vllm to 0.18.0.

Bugs Fix

No.

Contents

Image Name

training-xpu-pytorch

Image TAG

26.04.post1

Application Scenarios

Training /Inference

Framework

pytorch

Requirements

PPU SDK 2.1.0

Supported Architectures

amd64

Core component

  • Ubuntu: 24.04

  • Python: 3.12.7+gc

  • CUDA: 13.0

  • perf: 5.4.30

  • gdb: 15.1

  • ffmpeg: n8.0

  • torch: 2.9.0+ali.10.ppu2.1.0.cu130

  • triton: 3.5.0+ppu2.1.0.cu130

  • transformer_engine: 2.8+v0.1.0.ppu2.1.0

  • deepspeed: 0.18.8+ali

  • flash-attn: 2.7.4.post1+v0.1.0.ppu2.1.0

  • xformers: 0.0.30+v0.1.0.ppu2.1.0

  • cupy: 14.0.1+v0.1.0.ppu2.1.0.ce

  • transformers: 4.57.6+ali

  • accelerate: 1.11.0+ali

  • diffusers: 0.34.0

  • bitsandbytes: 0.49.1+v0.1.0.ppu2.1.0.ce

  • mmengine: 0.10.7

  • mmcv: 2.1.0+v0.1.0.ppu2.1.0.ce

  • vllm: 0.18.0+v0.1.0.ppu2.1.0.oe

  • pytorch-dynamic-profiler: 0.24.11

  • peft: 0.16.0

  • cumm-cu130: 0.8.1+v0.1.0.ppu2.1.0.ce

  • spconv-cu130: 2.3.6+v0.1.0.ppu2.1.0

  • imageio-ffmpeg: 0.5.1

Assets

We recommend that you accelerate AI container image pulls over VPC to reduce pull times.

Public Image

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

VPC image

You can replace the asset URI egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/{image:tag} of the specified AI container image with a acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag} to pull the AI container image from a VPC.

  • {region-id}: the region ID of the ACS service, including Finance Cloud and Alibaba Gov Cloud. For example: cn-beijing, cn-wulanchabu, cn-shanghai-finance-1, etc.

  • {image:tag}: the name and tag of the AI container image. For example: inference-xpu-pytorch:25.11-v1.7.0-vllm0.10.2-torch2.8-cu129-20251113, training-xpu-pytorch:25.11, etc.

Driver Requirements

  • Driver version >= 1.5.0

Key Features and Enhancements

PyTorch Compiler Optimization

The compiler optimization capability introduced by PyTorch 2.0 can usually achieve significant benefits on a small scale with a single card, but distributed frameworks such as video memory optimization and FSDP/Deepspeed need to be introduced in LLM training, resulting in torch.compile() that the benefits cannot be simply obtained or have negative benefits.

  • The granularity of communication is controlled under the DeepSpeed framework, which helps the compiler obtain a more complete computational graph and make a wider range of compilation optimizations.

  • Optimized version of PyTorch:

    • Optimize the front end of the PyTorch compiler to ensure that the compiler can still compile properly even if any graph break occurs in the computing graph.

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

Combined with the above optimization, E2E throughput gains of about 20% can usually be obtained under 8B LLM training.

Recompute memory optimization

Based on a large amount of performance evaluation data, including different models in different clusters and different training parameter configurations, as well as related system indicator data such as video memory utilization collected during evaluation, we conduct predictive modeling and analysis of the model's video memory overhead, and recommend the best activation value to recalect the number of layers, and integrate it into PyTorch, so that users can use the performance benefits brought by video memory optimization at a low threshold. This feature is supported in the DeepSpeed framework.

ACCL Communication Library

ACCL is a high-performance network communication library developed by Ali for Lingjun products. It provides three versions of ACCL-N, ACCL-P and ACCL-R for GPU, PPU and AMD. ACCL-N is a high-performance communication library customized by Alibaba Cloud based on NCCL. It is fully compatible with NCCL, fixes some bugs in the official NCCL version, and optimizes performance and stability. ACCL-P is a collection communication library based on pccl, an open source communication library for secondary development. ACCL-R is a collection communication library based on AMD Rocm open source communication library rccl for secondary development. This version mainly transplants the main features implemented on ACCL/ACCL-N to pccl, fixes some problems, and makes in-depth customization in combination with relevant self-developed product components of Gaowang.

E2E performance benefit evaluation

Using the cloud-native AI performance evaluation and analysis tool CNP, we used mainstream open source models and framework configurations to conduct a comprehensive end-to-end performance comparison analysis with standard base images, and further evaluated the contribution of each optimization component to the overall model training performance through ablation experimental analysis.

Compare basic images and iterative evaluation

image.png

E2E Performance Contribution Analysis of PPU and GPU Core Components

The following tests are based on images in this issue to evaluate and compare the E2E performance of training on a multi-node PPU cluster. The comparison items include:

  1. Base: PPU PyTorch Image

  2. Use the ACCL communication library for ACS AI Image:Base+ACCL: images

  3. ACS AI Image:AC2+ACCL: Golden images use AC2 BaseOS and do not enable any optimization.

  4. ACS AI Image:AC2+ACCL+CompilerOpt: Golden images use AC2 BaseOS and only enable torch compile optimization

  5. ACS AI Image:AC2+ACCL+CompilerOpt+CkptOpt: Golden images use AC2 BaseOS with both torch compile and selective gradient checkpoint optimization enabled.

image.png

Quick Start

The following example pulls a training-xpu-pytorch image only by using Docker. To use a training-xpu-pytorch image in ACS, you can specify the image address when you create a workload in the console, or specify the image reference in a YAML file.

1. Call the API to enable the compiler and recompute memory optimization.

  • Enable Compiler Optimization

    Use transformers Trainer API:

    image.png

  • Enable memory optimization for recalculation

    export CHECKPOINT_OPTIMIZATION=true

2. Start the container

The image contains the built-in model training tool ljperf. The following example shows how to start a container and run a training task.

LLM Class

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

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

Usage suggestions

  • The changes in the image involve libraries such as PyTorch and DeepSpeed. Do not reinstall them.

  • The zero_optimization.stage3_prefetch_bucket_size in the DeepSpeed configuration is left blank or auto.

  • The built-in environment variable NCCL_SOCKET_IFNAME of this image needs to be dynamically adjusted according to the usage scenario:

    • If only 1/2/4/8 cards are applied to a single pod for training or inference tasks, you need to set NCCL_SOCKET_IFNAME=eth0 (the default configuration in this image).

    • When a single pod applies for 16 cards of the whole machine (in this case, you can use the HPN high-speed network) to perform training or inference tasks: You need to set the NCCL_SOCKET_IFNAME=hpn0.

  • We recommend that you use this image together with the PPU PIP service provided by Alibaba Cloud to support password-free PIP service in ACS VPCs. You do not need to use other PIP sources in combination. pip config is built into this image. you must configure pip config according to the instructions in this document.

  • In the ACS environment to use AcclEP-P (that is, PPU version of DeepEP), you need to set the environment variable export EIC_VSOLAR=1 (this image needs to be set, and it is expected that subsequent images will remove this limit).

  • Standard quantization capabilities supported by various frameworks of SDK 2.1.0:

    • vLLM 0.18.0 (on SDK 2.1): per-token/per-channel w8a8(int8)

    • Precautions for quantization capability: Currently, SAIL vLLM has not adapted and optimized the Marlin kernel. The performance of AWQ(w4a16) and GPTQ(w4a16 and w8a16) is poor. Use the w8a8(int8) quantization scheme.

    • A8W8(INT8) quantitative demonstration model.

      • An example of a quantitative model adapted to SDK2.1 is provided. The system logs the ledger and uses the PTG PIP ledger (can be obtained by contacting your account manager):

        • DeepSeek-R1: support per-token/per-channel a8w8(int8) quantization scheme

        • DeepSeek v3.2: support per-token/per-channel a8w8(int8) quantization scheme

        • Kimi-K2-Instruct: support per-token/per-channel a8w8(int8) quantization scheme

        • Qwen3-235B-A22B: support per-token/per-channel a8w8(int8) quantization scheme

        • GLM-5: support per-token/per-channel w8a8(int8) quantization scheme

        • MiniMax-M2.5: support per-token/per-channel w8a8(int8) quantization scheme

        • Qwen3.5-397B-A17B: support per-token/per-channel w8a8(int8) quantization scheme

        • GLM-5.1: support per-token/per-channel w8a8(int8) quantization scheme

  • We recommend that you use this image with the latest driver to obtain the best performance. For more information, see Specify a GPU model and driver version for a ACS GPU Pod and GPU driver version description.

Known Issues

  • vLLM0.18.0 Image

    • GLM-5 model operation requires an upgrade transformers==5.2.0.

    • DP + EP + DeepEP low latency Question:

      • The first time you start the server, you must set the export VLLM_ENGINE_READY_TIMEOUT_S=6000. Otherwise, the service may fail to start due to the timeout of the DeepGemm WarmUp compiler. The community has the same problem on the GU8TF card type.

      • There is an accuracy issue for the Qwen3 MoE BF16 scenario. The community also has this accuracy problem. Do not use this combination of DP + EP + DeepEP low latency to launch Qwen3 MoE BF16 model weights.

    • If the MiniMax-M2.5 model TP=16 causes service startup failure, use TP=8 to run int8 quantization weights.

    • If the value of the --gpu_memory_utilization is higher than 0.96, the HGGC OOM problem may occur. Lower the gpu_memory_utilization to avoid this problem.

    • If you enable the Flashinfer Sampler feature, the performance can be improved. However, this feature may cause precision loss. By default, this feature is disabled. The community has the same problem. You can turn this feature on or off by VLLM_USE_FLASHINFER_SAMPLER the environment variable.

    • If you use the DeepGemm backend, the warm up is automatically performed during the service startup phase, and the DeepGemm kernel is compiled. This may take a long time to warm up.

      • The warmup time is long. we recommend that you use environment variables to specify the deepgemm cache path export DG_CACHE_DIR=<your path> to avoid repeated compilation.

      • You can skip the DeepGemm warm up export VLLM_DEEP_GEMM_WARMUP="skip". If it is not, the performance will be degraded.

    • In terms of quantization, the current SAIL vLLM version does not adapt and optimize the Marlin kernel. AWQ(w4a16), GPTQ (w4a16, w8a16), and mxfp4 have poor performance. Use the int8 w8a8 quantization scheme.