PaddlePaddle v3.3.0 Release Notes
Release Date: 2026-01-31 // 4 months ago-
重要更新
飞桨框架 3.3 版本在大模型训练效率、开发体验及国产硬件适配等关键领域持续突破创新,在计算显存高效利用、训推衔接转换、生态兼容性、调试效率、国产硬件适配等方面带来多项重要升级,全面提升大模型训推能力。
训练效率突破
- FlashMaskV3升级 :深度优化稀疏注意力掩码计算FlashMaskV3计算内核,性能全面超越FlexAttention,算子性能最高领先2.1 倍;原生支持上下文并行并引入计算负载均衡机制,分布式场景算子性能相比Megatron-LM快80%,全面强化长文训练能力。
- FlexCheckpoint参数自动切分重组系统 :基于首创的轻量级描述语言AOA (All in One Arrow),支持从单卡视角灵活描述复杂的权重转换关系,并自动推导分片映射;通过跨机通信的高并发与负载均衡调度,在大参数规模下权重转换性能相比Megatron-LM领先1.2倍以上,有效解决大模型训推不同阶段参数转换的成本与效率难题。
- 虚拟内存动态碎片整理 :引入基于虚拟内存技术的显存分配机制,可根据运行时显存占用情况动态进行碎片整理。在主流MoE模型训练中,显存碎片率从超过10%降至最低3%,显著提升显存利用率。
开发体验优化
- 生态兼容 :通过框架API、算子注册、执行调度等关键链路的兼容设计,实现无缝衔接使用外部生态算子,支持FlashInfer、FlashMLA、DeepGEMM、DeepEP、TorchCodec和SonicMoE等社区高性能模块的高效集成应用。
- 动态图调试能力升级 :新增动态图前反向计算图可视化功能,支持导出算子调用栈与张量MD5校验信息;系统优化关键路径日志,新增局部日志打印功能,提升调试信息丰富度与获取便捷性。
- 显存观测工具 :新增显存观测功能,可视化显存池中内存块分布,支持追踪特定代码段的显存申请/释放与全局状态,助力大模型显存异常的精准定位与处置。
国产硬件深度适配
- 昆仑芯 XPU :系统完善MoE场景适配,为相关算子新增bool、bfloat16、complex64数据类型支持,并对FlashAttention、DeepEP、Profiler等模块进行深度适配。
- 海光 DCU :支持 Hygon数学库后端,进一步优化海光芯片推理性能。
1. 执行调度机制
针对大模型预训练、后训练与推理阶段中,因分布式策略及组网差异导致的权重转换困难,飞桨FlexCheckpoint机制创新提出高效的权重重组方法与灵活的模型编辑原语AOA,为模型研发到生产全流程提供高效、统一的分布式参数转换与重组支持。该机制全面适配训推衔接、跨策略断点续训、生态兼容格式加载导出、强化学习参数同步等多种场景下的权重转换需求,并在大参数规模场景下实现超越Megatron-LM 1.2倍以上的转换性能,从根本上解决了分布式参数转换成本高、效率低的难题。
在显存管理方面,针对MoE模型因专家路由动态性导致的显存碎片率高、资源浪费严重等问题,本版本推出了基于虚拟内存管理技术的高性能VMM Allocator。该分配器可在模型运行期间根据系统显存使用情况,动态自适应执行碎片整理,显著提升显存利用效率。
飞桨3.3版本持续深耕自动并行与AI编译器技术。在自动并行架构中新增对FSDP等策略的支持,并增强了动态Shape流水线并行功能;面向科学计算场景,实现了对高阶导数的支持,并拓展了相关算子切分推导规则的覆盖范围,进一步提升了自动并行架构的通用性与易用性。此外,围绕推理场景,优化了AI编译器CINN及动转静SOT功能,显著提升易用性与执行调度性能。新特性
- FlexCheckpoint支持在线合并参数功能。#75613, #76510
- 实现基于虚拟内存管理技术的高性能VMM Allocator。#75323, #76222, #76223, #76389, #76430, #76454, #76523, #76544, #76730, #76793, #77196
- 自动并行支持高阶微分。#75689
- 自动并行支持FSDP策略。#76113, #76868
- 自动并行优化与增强argsort,bmm,elementwise,index_select,matmul,softmax,tile,transpose等算子的自动切分推导。#74826, #74829, #75036, #75044, #75050, #75095, #75246, #75265, #75555
- 动转静支持局部捕获控制流。#75548、#76198
- 动转静支持Python 3.14版本相关语法。 #75853, #75879, #75971,#76072, #76257,#76288, #76320, #76416, #76451, #76804
- 支持在静态图 PIR 上注册 Python 函数,为Triton、DeepGEMM 等 JIT 算子的转静提供图表示能力。 #76888, #76938
- 动态图支持view反向高阶微分。#76667
功能增强
- FlexCheckpoint优化AOA宏展开功能,为fuse类宏支持传入axis属性。#75282
- FlexCheckpoint AOA解析功能增强,支持优化器状态与模型状态共用一套AOA标记,切分信息传递、模型加载与存储共用一套AOA标记。#75613, #76013, #76437
- FlexCheckpoint支持ShardingStage2和ShardingStage3策略。#76309, #76538
- 优化FlexCheckpoint报错信息。 #76813, #77266
- 自动并行中层 API 流水线 Hook 支持处理元组对象。#75081
- 自动并行流水线并行策略支持动态shape。#75724
- 支持自动并行场景下的FlexCheckpoint机制及优化器状态字典的分片处理。#76240, #76305
- 升级 DLPack 到v1.2 版本,全面支持 TVM FFI,支持 C 函数交换协议、DataType 交换协议、Device 交换协议等新特性。#75193, #75205, #75650, #75854, #75973, #76828, #76673
- 将ComparePriority 函数返回类型从 bool升级为int,以满足 std::sort 的严格弱序要求,并引入 SortComparePriority 包装函数确保排序算法正确性。#76027
- 动转静支持禁用编译超时自动回退功能。#76386
- 统一EqualAllOpInferSymbolicShape 函数与InferMeta 逻辑,提升编译器与框架动态图调度结果的一致性。#76477
- ⬇️ 为all_reduce,c_allreduce_sum,c_concat,c_identity,flash_attn_unpadded,mp_allreduce_sum等算子添加 infer_symbolic_shape 接口,支持符号化形状推导。#76783, #76836
性能优化
- 将FlexCheckpoint保存阶段重组摊平权重的通信操作延后至加载阶段执行,减少高频保存操作的耗时。#75613
- FlexCheckpoint支持使用Grouped Send Recv进行参数重切分通信。#76779, #76810
- FlexCheckpoint支持权重冗余存储,减少热启时权重重切分时间。#76857
- CINN支持编译Kernel 缓存功能,节省编译耗时开销。 #75989, #76825, #76853
- 优化动转静子图打断率,提升整体转静性能。#76104, #76354, #76641, #76862
- CINN化简过长的 shape 表达式以减少符号推导耗时。#76969
🐛 Bug 修复
- 修复FlexCheckpoint部分功能不支持在非分布式环境下使用的问题。 #75413, #76272
- 修复AOA转置功能解析错误问题。#76234
- 修复FlexCheckpoint读文件仲裁负载不均的问题。#76536
- 修复AOA解析耗时过长问题。 #76639
- 修复FlexCheckpoint加载时日志误报权重Shape不匹配的问题。#76958
- 修复shard_dataloader对非Tensor数据的兼容问题。#75252
- 修复自动并行反向算子输入同时存在DenseTensor和DistTensor时,分布式张量转换段错误的问题。#75691
- 修复 H20 环境下序列并行精度问题。#76150
- 修复自动并行sharding stage2/stage3策略在混合精度训练场景的 bug。#76462
- 修复动转静下冗余memcpy导致 CUDAGraph 失败的问题。#75078
- 修复CINN对float16类型的兼容性问题。#75090
- 修复框架资源泄漏,逻辑错误,死代码等问题。#75332, #75334, #75338, #75339, #75340, #75349, #75353, #75438, #75439, #75440, #75441, #75442, #75444, #75445, #75448, #75449, #75450, #75451, #75453, #75469, #75498, #75516, #75517, [#7...
Previous changes from v3.2.2
-
重要更新
飞桨框架3.2.2版本在分布式并行、算子机制、硬件适配三个方面完成多项优化与升级,进一步提升框架性能与稳定性。
1. 分布式训练
- 优化 FlexCheckpoint 的重切分通信流程; 为 paddle.nn.Layer 新增 full 接口, 用于返回完整模型参数; 支持加载 HuggingFace 开源格式的 Checkpoint。(#76249, #76291)
- 为 group_sharded_optimizer_stage2 优化器新增 sharded_state_dict 函数。#76311
- 为 paddle.load 接口修复加载 safetensor 文件 device_id 参数错误及 core_dump 问题。#76317
- 新增 PipelineDatasetPreprocessor 机制,消除流水线并行策略中可能出现的内存泄漏问题。 #76260
2. 算子机制
- 修复针对 BFloat16 list 场景下的 to_tensor 精度问题。 #76242
3. 硬件适配
- 修改了独立的 XPU 内存监控模块,以确保与最新的内存监控逻辑保持一致。 #76056
4. 贡献者名单
qw86972190, xingmingyyj, zhangbo9674, zhangyuqin1998
⚡️ Important Updates
🐎 PaddlePaddle Framework version 3.2.2 features multiple optimizations and upgrades across Distributed Parallelism, Operator Mechanism, and Hardware Adaptation to further enhance the framework's performance and stability.
1. Distributed Training
- ⚡️ Optimized the communication process for re-sharding in FlexCheckpoint; added the full interface to paddle.nn.Layer for returning complete model parameters; supported loading Checkpoints in the HuggingFace open-source format. (#76249, #76291)
- Added the sharded_state_dict function to the group_sharded_optimizer_stage2 optimizer. #76311
- 🛠 Fixed errors regarding the device_id parameter and a core dump issue when loading safetensor files using the paddle.load interface. #76317
- Introduced the PipelineDatasetPreprocessor mechanism to eliminate potential memory leak issues in the pipeline parallelism strategy. #76260
2. Operator Mechanisms
- 🛠 Fixed a precision issue in to_tensor for BFloat16 list scenarios. #76242
3. Hardware Adaptation
- ✅ Modified the independent XPU memory monitoring module to ensure consistency with the latest memory monitoring logic. #76056
4. List of Contributors
qw86972190, xingmingyyj, zhangbo9674, zhangyuqin1998