training-nv-pytorch 25.11

更新时间:
复制 MD 格式

These are the release notes for the training-nv-pytorch 25.11 image.

Main features and bug fixes

Main features

  • This release adds multi-architecture support for amd64 and aarch64, supports CUDA 13.0.2 and CUDA 12.8.

  • This release upgrades core components, including PyTorch, to version 2.9.

  • This release upgrades core training components: Transformers to 4.57.1, DeepSpeed to 0.18.1, and TransformerEngine to 2.8 with support for Qwen3-VL.

  • This release upgrades the core inference component vLLM to 0.11.2.

Bug fixes

No bug fixes are included in this release.

Contents

Use cases

training/inference

Framework

PyTorch

Requirements

NVIDIA Driver release >= 580

NVIDIA Driver release >= 575

Architecture

amd64 & aarch64

amd64

Core components

  • Ubuntu: 24.04

  • Python: 3.12.7+gc

  • CUDA: 13.0

  • perf: 5.4.30

  • gdb: 15.0.50

  • torch: 2.9.0+ali.10.nv25.10

  • triton: 3.5.0

  • transformer_engine: 2.9.0+70f53666

  • deepspeed: 0.18.1+ali

  • flash_attn: 2.8.3

  • transformers: 4.57.1+ali

  • grouped_gemm: 1.1.4

  • accelerate: 1.11.0+ali

  • diffusers: 0.34.0

  • mmengine: 0.10.3

  • mmcv: 2.1.0

  • mmdet: 3.3.0

  • opencv-python-headless: 4.11.0.86

  • ultralytics: 8.3.96

  • timm: 1.0.22

  • vllm: 0.11.2+cu130

  • flashinfer-python: 0.5.2

  • pytorch-dynamic-profiler: 0.24.11

  • peft: 0.16.0

  • ray: 2.52.0

  • megatron-core: 0.14.0

  • Ubuntu: 24.04

  • Python: 3.12.7+gc

  • CUDA: 12.8

  • perf: 5.4.30

  • gdb: 15.0.50

  • torch: 2.8.0.9+nv25.3

  • triton: 3.4.0

  • transformer_engine: 2.9.0

  • deepspeed: 0.18.1+ali

  • flash_attn: 2.8.3

  • flash_attn_3: 3.0.0b1

  • transformers: 4.57.1+ali

  • grouped_gemm: 1.1.4

  • accelerate: 1.11.0+ali

  • diffusers: 0.34.0

  • mmengine: 0.10.3

  • mmcv: 2.1.0

  • mmdet: 3.3.0

  • opencv-python-headless: 4.11.0.86

  • ultralytics: 8.3.96

  • timm: 1.0.22

  • vllm: 0.11.2

  • flashinfer-python: 0.5.2

  • pytorch-dynamic-profiler: 0.24.11

  • peft: 0.16.0

  • ray: 2.52.0

  • megatron-core: 0.14.0

Assets

Public images

CUDA 13.0.2 (Driver >=580, amd64 and aarch64)

  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.11-cu130-serverless

CUDA 12.8 (Driver>= 575, amd64)

  • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:25.11-cu128-serverless

VPC images

To pull an ACS AI container image faster from within a VPC, replace the image URI egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/{image:tag} with acs-registry-vpc.{region-id}.cr.aliyuncs.com/egslingjun/{image:tag}.

  • {region-id}: The ID of a region where ACS products are available. For example, cn-beijing or cn-wulanchabu.

  • {image:tag}: The name and tag of the AI container image. For example, inference-nv-pytorch:25.10-vllm0.11.0-pytorch2.8-cu128-20251028-serverless or training-nv-pytorch:25.10-serverless.

Note

This image supports ACS and multi-tenant Lingjun environments. It is not for use in single-tenant Lingjun environments.

Driver requirements

  • Release 25.11 supports CUDA 12.8.0 and CUDA 13.0.2, depending on your driver version. CUDA 13.0.2 requires NVIDIA driver version 580 or later, and CUDA 12.8.0 requires NVIDIA driver version 575 or later. For a complete list of supported drivers, see the CUDA Application Compatibility topic. For more information, see CUDA Compatibility and Upgrades.

Key features and enhancements

PyTorch compilation optimization

torch.compile(), introduced in PyTorch 2.0, often delivers strong gains for small-scale, single-GPU workloads. But LLM training depends on GPU memory optimization and distributed frameworks such as FSDP or DeepSpeed, so torch.compile() may offer limited benefits or even degrade performance.

  • Control communication granularity in the DeepSpeed framework. This helps the compiler capture a more complete compute graph and apply broader compilation optimizations.

  • Use an optimized PyTorch build:

    • The PyTorch compiler frontend is improved to ensure that compilation succeeds even if a graph break occurs in the compute graph.

    • Pattern matching and dynamic shape support are strengthened to improve post-compilation performance.

With these optimizations, 8B-parameter LLM training typically achieves an end-to-end throughput gain of about 20%.

GPU memory optimization for recomputation

A predictive model for GPU memory overhead, built on large-scale performance data—including different models, clusters, and training parameter settings, as well as system metrics such as GPU memory utilization collected during benchmarking—recommends the optimal number of activation recomputation layers. This approach is integrated into PyTorch, allowing you to achieve the performance gains of GPU memory optimization with minimal effort. This feature is now supported in the DeepSpeed framework.

E2E performance evaluation

We used CNP (cloud-native AI performance benchmarking tool) to perform a comprehensive end-to-end performance comparison between our image and a standard base image using mainstream open-source models and framework configurations. We also performed an ablation study to evaluate the performance contribution of each optimized component to the overall model training.

Image performance evaluation: baseline comparison and iterative analysis

image.png

E2E performance contribution of core GPU components

The following tests are based on the 25.11 release and were conducted on a multi-node GPU cluster to evaluate and compare end-to-end training performance. The comparison includes:

  1. Base: The NGC PyTorch image.

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

  3. ACS AI Image: AC2+ACCL: This image uses the AC2 BaseOS with no optimizations enabled.

  4. ACS AI Image: AC2+ACCL+CompilerOpt: This image uses the AC2 BaseOS with only torch.compile() optimization enabled.

  5. ACS AI Image: AC2+ACCL+CompilerOpt+CkptOpt: This image uses the AC2 BaseOS with both torch.compile() and selective gradient checkpointing (CkptOpt) enabled.

image.png

Quick start

The following example shows how to pull the training-nv-pytorch image by using Docker.

Note

To use the training-nv-pytorch image in ACS, select it from the Artifact Center page on the console when you create a workload, or specify the image reference in a YAML file.

1. Select an image

docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]

2. Enable compiler optimization and GPU memory optimization

  • Enable compiler optimization

    Use the Transformers Trainer API:

    training_args = TrainingArguments(
        bf16=True,
        gradient_checkpointing=True,
        torch_compile=True
    )
  • Enable GPU memory optimization for recomputation

    export CHECKPOINT_OPTIMIZATION=true

3. Start the container

The image includes a built-in model training tool, ljperf. The following steps show how to start the container and use this tool to run a training task.

LLMs

# Start the container and enter its shell.
docker run --rm -it --ipc=host --net=host  --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-nv-pytorch:[tag]
# Run the training demo.
ljperf benchmark --model deepspeed/llama3-8b 

4. Usage notes

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

  • In your DeepSpeed configuration, leave zero_optimization.stage3_prefetch_bucket_size empty or set it to auto.

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

    • If a single pod requests 1, 2, 4, or 8 GPUs for a training or inference task, set NCCL_SOCKET_IFNAME=eth0. This is the default setting in the image.

    • If a single pod requests all 16 GPUs on a node for a training or inference task (which allows you to use the High-Performance Network (HPN)), set NCCL_SOCKET_IFNAME=hpn0.

Known issues

Compiling fa3 directly in the CUDA 13.0.2 image results in an error. This is a known community issue.