training-xpu-pytorch 25.06

更新时间:
复制为 MD 格式

本文介绍training-xpu-pytorch 25.06版本发布记录。

Main Features and Bug Fix Lists

Main Features

  • 升级PPU SDK1.5.2

  • 训练核心组件megatron-core 升级至0.12.1、TransformerEngine 升级至2.3

Bugs Fix

  • 修复v1.5.1版本开启prefix-cache,模型推理偶发乱回复问题。

  • 修复PPU SDK 1.5.2缺失libacext.so报错。

  • 升级pytorch及其相关组件至2.6.0+ali.7.post2.ppu1.5.2,修复pytorchCPU场景不支持LAPACK问题。

Contents

应用场景

训练/推理

训练/推理

镜像

training-xpu-pytorch:25.06.post1

training-xpu-pytorch:25.06

框架

pytorch

pytorch

Requirements

PPU SDK 1.5.2

PPU SDK 1.5.2

核心组件

  • Ubuntu 24.04

  • Python 3.12.7+gc

  • Torch 2.6.0+ali.7.post2.ppu1.5.2.cu126

  • CUDA 12.6

  • ACCL-P 1.5.1-9

  • EIC 1.3.8

  • triton 3.2.0+ppu1.5.2.cu126

  • TransformerEngine 2.3+ppu1.5.2.oe

  • deepspeed 0.16.9+ali

  • flash-attn 2.5.7+torch2.6.ppu1.5.2.cu126

  • xformers 0.0.29.post1+ppu1.5.2.oe

  • cupy 13.3.0+ppu1.5.0.ce

  • transformers 4.51.2+ali

  • megatron-core 0.12.1

  • grouped_gemm 1.1.4+ppu1.5.1.oe

  • accelerate 1.7.0+ali

  • diffusers 0.31.0

  • bitsandbytes 0.45.3+ppu1.5.1.ce

  • mmengine 0.10.3

  • mmcv 2.1.0+ppu1.5.1.ce

  • mmdet3d 1.4.0+ppu1.5.1.ce

  • vllm 0.8.5+ppu1.5.2.oe

  • pytorch-dynamic-profiler 0.24.11

  • perf 5.4.30

  • gdb 15.0.50.20240403-0ubuntu1

  • peft 0.13.2

  • ray 2.43.0

  • cumm 0.5.3+ppu1.5.0.ce

  • spconv 2.3.6+ppu1.5.0.ce

  • ffmpeg 7.0.1

  • open3d 0.19.0+ppu1.5.1.ce

  • flashinfer 0.2.3+ppu1.5.2.oe

  • Ubuntu 24.04

  • Python 3.12.7+gc

  • Torch 2.6.0+ali.7.post1.ppu1.5.2.cu126

  • CUDA 12.6

  • ACCL-P 1.5.1-9

  • EIC 1.3.8

  • triton 3.2.0+ppu1.5.2.cu126

  • TransformerEngine 2.3+ppu1.5.2.oe

  • deepspeed 0.16.9+ali

  • flash-attn 2.5.7+torch2.6.ppu1.5.2.cu126

  • xformers 0.0.29.post1+ppu1.5.2.oe

  • cupy 13.3.0+ppu1.5.0.ce

  • transformers 4.51.2+ali

  • megatron-core 0.12.1

  • grouped_gemm 1.1.4+ppu1.5.1.oe

  • accelerate 1.7.0+ali

  • diffusers 0.31.0

  • bitsandbytes 0.45.3+ppu1.5.1.ce

  • mmengine 0.10.3

  • mmcv 2.1.0+ppu1.5.1.ce

  • mmdet3d 1.4.0+ppu1.5.1.ce

  • vllm 0.8.5+ppu1.5.2.oe

  • pytorch-dynamic-profiler 0.24.11

  • perf 5.4.30

  • gdb 15.0.50.20240403-0ubuntu1

  • peft 0.13.2

  • ray 2.43.0

  • cumm 0.5.3+ppu1.5.0.ce

  • spconv 2.3.6+ppu1.5.0.ce

  • ffmpeg 7.0.1

  • open3d 0.19.0+ppu1.5.1.ce

  • flashinfer 0.2.3+ppu1.5.2.oe

Assets

说明

通过公网拉取ACS AI容器镜像需要先获取鉴权密钥。建议您使用VPC方式加速拉取AI容器镜像,减少镜像拉取的时间。

25.06

公网镜像

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

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

VPC镜像

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

    {region-id}为您使用的ACS产品所在的开服地域,比如:cn-beijing、cn-wulanchabu等。
    {image:tag}为实际镜像的名称和Tag。

Driver Requirements

  • Driver version >= 1.1.0

Key Features and Enhancements

PyTorch编译优化

PyTorch 2.0引入的编译优化能力在单卡小规模下通常可以获得显著的收益,但是在LLM训练中需要引入显存优化、FSDP/Deepspeed等分布式框架,导致torch.compile()无法简单地获得收益或者存在负收益:

  • DeepSpeed框架下控制通信的颗粒度,帮助编译器获取更完整的计算图,做更大范围的编译优化。

  • 优化版本的PyTorch:

    • 优化PyTorch编译器前端,确保在计算图中出现任意graph break的情况下仍能正常编译。

    • 强化模式匹配以及dynamic shape能力,提高编译后代码性能。

结合上述优化,在8B LLM训练下通常可以获得20%左右的E2E吞吐收益。

重计算显存优化

基于大量性能评测数据,包括不同模型在不同集群以及不同训练参数配置,以及评测过程中采集的相关显存利用率等系统指标数据,我们进行模型显存开销的预测建模分析,并推荐出最佳的激活值重算层数,并集成到PyTorch中,让用户可以低门槛的使用显存优化带来的性能收益。当前已支持该特性在DeepSpeed框架中的适配。

ACCL通信库

ACCL是阿里针对灵骏产品自研的高性能网络通信库,针对GPU、PG1AMD三个场景提供ACCL-N、ACCL-PACCL-R三个版本。ACCL-N是阿里云基于英伟达NCCL定制后提供的高性能通信库,在完全兼容NCCL的基础上,修复了官方NCCL版本的一些BUG,并进行了性能和稳定性相关的优化。ACCL-P是基于平头哥开源通信库pccl,进行二次开发的集合通信库。ACCL-R是基于AMD Rocm开源通信库rccl,进行二次开发的集合通信库。本版本主要将ACCL/ACCL-N上实现的主要特性移植到了pccl上,修复了一些问题,结合高网的相关自研产品组件进行了深度定制。

E2E性能收益评估

利用云原生AI性能评测分析工具CNP,我们采用主流开源模型和框架配置,与标准的基础镜像进行了全面的端到端性能比较分析,并通过消融实验分析,进一步评估了每个优化组件对整体模型训练性能的收益贡献。

镜像对比基础镜像&迭代评估

image.png

PPU核心组件E2E性能贡献分析

以下测试基于25.06, 在多节点PPU集群上进行训练E2E性能评测和对比分析,对比项包括:

  1. Base:PPU PyTorch Image。

  2. ACS AI Image:Base+ACCL: 镜像使用ACCL通信库。

  3. ACS AI Image:AC2+ACCL: Golden镜像使用AC2 BaseOS,不开启任何优化。

  4. ACS AI Image:AC2+ACCL+CompilerOpt: Golden镜像使用AC2 BaseOS,只启用torch compile优化。

  5. ACS AI Image:AC2+ACCL+CompilerOpt+CkptOpt:Golden镜像使用AC2 BaseOS,且同时开启torch compileselective gradient checkpoint优化。

image.png

Quick Start

以下示例内容仅通过Docker方式拉取training-xpu-pytorch镜像。

说明

ACS中使用training-xpu-pytorch镜像需要通过控制台创建工作负载界面的制品中心页面选取,或者通过YAML文件指定镜像引用。

1. 选择镜像

说明

通过公网拉取ACS AI容器镜像需要先获取鉴权密钥。建议您使用VPC方式加速拉取AI容器镜像,减少镜像拉取的时间。

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

2. 调用API开启编译器+重计算显存优化

  • 启用编译优化

    使用transformers Trainer API:

    image.png

  • 启用重计算显存优化

    export CHECKPOINT_OPTIMIZATION=true

3. 启动容器

镜像中内置了模型训练工具ljperf,以此说明启动容器和运行训练任务的步骤。

说明

ACS形态产品请通过YAML方式使用镜像。

LLM

# 启动容器并进入
docker run --rm -it --ipc=host --net=host  --privileged egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/training-xpu-pytorch:25.06

# 运行训练demo
ljperf --action train --model_name deepspeed/llama3-8b

使用建议

  • 镜像中的改动涉及Pytorch、Deepspeed等库,请勿重装。

  • deepspeed配置中的zero_optimization.stage3_prefetch_bucket_size留空或者auto。

  • 使用本期(25.06)镜像运行DeepSeek R1(671B)、Qwen3量化模型,支持的量化方法如下:

    • DeepSeek R1(671B):

      • VLLM 0.8.5:支持AWQ(w4a16)、GPTQ (w4a16、w8a16)、per-token/per-channel a8w8(int8)量化方案。

    • Qwen3:

      • VLLM 0.8.5:支持AWQ(w4a16)、GPTQ (w4a16、w8a16)、per-token/per-channel a8w8(int8)量化方案。

  • 暂时不支持PPU SDK 1.5.11.5.2 Release Note中提到的DeepEPsailSHMEM功能,支持时间待定。

  • 建议配合“1.5.1”及以上版本驱动使用本镜像获得最佳性能,设置方法请参考ACS GPU Pod指定GPU型号和驱动版本GPU驱动版本说明

  • 本镜像内置环境变量NCCL_SOCKET_IFNAME需要根据使用场景动态调整:

    • 当单pod只申请了1/2/4/8卡进行训练/推理任务时:需要设置NCCL_SOCKET_IFNAME=eth0(本镜像内默认配置)。

    • 当单pod申请了整机的16卡(此时您可以使用HPN高网)进行训练/推理任务时:需要设置NCCL_SOCKET_IFNAME=hpn0

Known Issues

  • Qwen3模型

    • Qwen3-235B-A22B存在推理精度问题,建议增加环境变量 ACEXT_ENABLE_MOE_GEMV=0规避,后续版本会修复。

  • Qwen2.5模型

    • 运行Qwen2.5-omni模型时会出现“ModuleNotFoundError: No module named 'vllm.vllm_flash_attn.layers' ”,此问题由vLLM 0.8.5社区已知问题触发,待vLLM版本更新后修复。

  • DeepSeek R1模型

    • 测试DeepSeek R1模型 --max-model-len 设置需要小于 80k,否则可能会在运行中出现 OOM。

  • 稳定性问题

  • 性能问题:

    • MOE类大模型使用Autotune工具可以提升性能 ,VLLM支持通过硬件相关的fused_moe kernel配置文件启动kernel以提升性能的优化功能。