PaddlePaddle 3.3.0 Release Notes
重要更新
飞桨框架 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, , ,
功能增强
- FlexCheckpoint优化AOA宏展开功能,为fuse类宏支持传入axis属性。#75282
- FlexCheckpoint AOA解析功能增强,支持优化器状态与模型状态共用一套AOA标记,切分信息传递、模型加载与存储共用一套AOA标记。#75613, #76013, #76437
- FlexCheckpoint支持ShardingStage2和ShardingStage3策略。#76309, #76538
- 优化FlexCheckpoint报错信息。 #76813, #77266
- 自动并行中层 API 流水线 Hook 支持处理元组对象。#75081
性能优化
- 将FlexCheckpoint保存阶段重组摊平权重的通信操作延后至加载阶段执行,减少高频保存操作的耗时。#75613
- FlexCheckpoint支持使用Grouped Send Recv进行参数重切分通信。#76779, #76810
- FlexCheckpoint支持权重冗余存储,减少热启时权重重切分时间。#76857
- CINN支持编译Kernel 缓存功能,节省编译耗时开销。 #75989, #76825, #76853
- 优化动转静子图打断率,提升整体转静性能。#76104, #76354, ,
Bug 修复
- 修复FlexCheckpoint部分功能不支持在非分布式环境下使用的问题。 #75413, #76272
- 修复AOA转置功能解析错误问题。#76234
- 修复FlexCheckpoint读文件仲裁负载不均的问题。#76536
- 修复AOA解析耗时过长问题。 #76639
- 修复FlexCheckpoint加载时日志误报权重Shape不匹配的问题。#76958
- 修复shard_dataloader对非Tensor数据的兼容问题。#75252
- 修复自动并行反向算子输入同时存在DenseTensor和DistTensor时,分布式张量转换段错误的问题。#75691
- 修复 H20 环境下序列并行精度问题。#76150
2. 算子优化完善
为突破大模型注意力掩码计算复杂度高、存储占用大导致的训练效率瓶颈,飞桨持续优化并打磨自主创新的列式稀疏注意力掩码计算技术FlashMask。Paddle 3.3新升级的FlashMask V3版本首次提出前向持久化抢占式Tile调度器(Persistent Preemptive Tile Scheduler,PPT),实现 GPU 流式多处理器(SM)间的计算负载均衡,并原生支持长文本上下文并行下的复杂掩码注意力计算,全面强化长文训练能力,在多种掩码模式下实现训练性能质的飞跃:相比上一版本性能最高提升超过 1.4 倍,全面超越FlexAttention,单卡性能最高领先FlexAttention 达 2.1 倍,分布式性能最高领先Megatron-LM 分布式实现版本 80%。除FlashMask外,Paddle 3.3版本对主流MoE模型的高频算子kernel进行了专项精度优化,并增强stride、超大Tensor等场景的支持能力,大幅改进框架算子在超大规模模型训练场景的数值精度、稳定性和健壮性。
新特性
- 新增API: paddle.compat.nn.functional.linear,paddle.dot,paddle.is_floating_point,paddle.is_tensor,paddle.isin。 #76144, #75150, #75032
- 新增Flashinfer支持。#75075
- FlashMask V3实现block mask,支持稀疏 Attention 计算。#76407
功能增强
- register_forward_pre_hook 支持 prepend、with_kwargs和always_call等参数。 #74611
- prod/sum 增加out参数。 #75004
- remainder兼容floor_divide 与 masked_select 行为差异。 #75148
- 接口支持参数别名与scalar输入,并补齐out。 #75163, #75317
- FlashMask v3 支持大于128的head dim 计算。#76365
- pylayer支持set_grad_in_dtype_consistent。 #76537
- FlashMask 的 startend_row_indices 支持 q head 维度的独立 mask 设置。#77469
- C Sink paddle.nn.functional.gelu 支持参数别名与用法差异。 #75210
性能优化
- FlashMask v3 通过引入PPT负载均衡调度器、TileSize调优及kernel控制流优化等多项技术手段,提升kernel整体性能。#75984, #76003, #76216
- 优化FusedRope 内核,提升计算性能。#76824
Bug 修复
- 修复了一系列API的大Tensor、0-Size、stride相关问题。#74851, #74860, #75142, #75261, #75341, #75506, #75523, #75536, #75537, #75538, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
3. 用户体验升级
全面提升生态兼容性,支持在paddle框架中无缝衔接和使用外部生态算子,并推出paddle.compat系列API,包含paddle.compat.nn.Linear、paddle.compat.nn.MultiheadAttention等近10个功能模块,降低飞桨模型接入外部生态模块的成本。优化动态图调试体验,新增前反向计算图可视化功能,构建了API、Tensor与GradNode的统一命名关联体系并支持导出调用栈与MD5校验信息,同时对关键路径日志进行治理并新增局部日志打印功能,特别针对PyLayer嵌套场景显著提升报错信息精准度与日志层级可读性,实现调试信息的丰富度和获取便捷性的提升。新增显存观测功能,直观展示显存池中各个内存块的分布情况,并支持追踪特定代码段的显存申请/释放与全局状态,实现对大模型显存异常的精准定位与高效治理。
新特性
- 新增动态图前反向计算图可视化功能。 #75240, #76032, #76441
- 新增局部日志打印功能,支持动态设置全局日志的级别,支持仅查看某段代码在前反向执行过程中输出的日志。#75368, #75590, #76010, #76685
- 新增关键对象的统一命名体系,实现API、Tensor、GradNode的唯一命名和相互关联。#75752
- 支持导出前向API以及反向GradNode对应的Python调用栈。#76143, #75240
功能增强
- 系统治理动态图前反向关键路径的日志分级信息。#75240
- 优化PyLayer嵌套场景下的报错信息,支持报错直接显示前向栈、GradNode name信息,不同层Pylayer通过缩进区分报错信息。#76219, #76450
- 日志和调试信息优化:GLOG info管理、支持导出forward API Python调用栈等。#75240, #75888, #76010, #76143,#76450,#76219
- 优化自定义算子调试。#76603
Bug 修复
- 修复paddle.Tensor构造时的place相关问题。#75017
- 修复装饰器中缺失泛型参数导致类型传播中断的问题。#75162
- 修复动态shape处理中除法操作问题。#75526
- 修复设备类API、model.to(device=tensor.place)相关问题。#75308, #75530, #75867
- 修复Tensor.__eq__和Tensor.__ne__对不支持类型的处理。#76118
- 修复to_sparse_coo,to_sparse_csr问题。#76076
- 修复CTCLoss的zero_infinity参数位置和文档。#76156,
4. 国产硬件适配
对XPU算子能力进行了系统性增强,针对MoE相关算子新增bool、bfloat16、complex64等数据类型支持,并完善FlashAttention、DeepEP、Profiler等关键模块,显著提升了大模型训练场景的昆仑芯适配能力。此外,通过引入Hygon数学库后端,进一步优化了海光DCU芯片推理性能。
新特性
- 系统增强XPU硬件上assign,assign_value,concat,fill_any,multiply,scatter_nd等关键算子在bool、bf16、complex64等数据类型的支持能力。#75249, #76893, #76903, #76904, #76912
- 新增XPU硬件的index_elementwise_get和masked_fill算子支持。
- aarch64 架构支持XCCL。#75797
- 支持XPU DeepEP。76284, #76362, #76594, #76869
功能增强
- profiler功能支持XPU Nvtx和CUPTI事件采集。#76385
- FlashAttention 重构,支持 float16的fa_taccum。#76737
- 升级XHPC至20251014版本。#75872
- pool2d和pool2d_grad算子底层升级xpudnn实现。
- CUDAExtension 支持 Custom Device。#76876
- 将 asin升级为 arcsin 以支持 NumPy 1.x。#76485
性能优化
- 引入Hygon 数学库后端以提升海光设备推理性能。#76266
Bug 修复
- 修复pinned memory 在 Custom Device 上的误用问题。#75593
- 修复arange,beam_search_decode,binomial_kernel,combine,dispatch,expand,fused_layernorm,mask_select,mp_allreduce_sum,multiclass_nms3,nonzero,psroi_pool_grad,quantize_linear,top_p_sampling 等一系列算子问题。#75532, #75938, #76238, #76487, #76547, #76548, #76561, #76651, , , , , ,
5. 贡献者名单
ADchampion3, ALGO1832, AlAuAu, Android zhang, Ayakouji, Bvicii, Chang Lu, Chen Zhiyang, Difer, Echo-Nie, Eddie-Wang, Fang Chengjie, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,