重要更新
飞桨框架 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 功能,显著提升易用性与执行调度性能。
新特性
实现基于虚拟内存管理技术的高性能 VMM Allocator。#75323, #76222, #76223, #76389, #76430, #76454, #76523, #76544, #76730, #76793, #77196
自动并行支持高阶微分。#75689
自动并行优化与增强 argsort,bmm,elementwise,index_select,matmul,softmax,tile,transpose 等算子的自动切分推导。#74826, #74829, #75036, #75044, #75050, #75095, #75246, #75265, #75555
动转静支持 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
自动并行中层 API 流水线 Hook 支持处理元组对象。#75081
自动并行流水线并行策略支持动态 shape。#75724
升级 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 化简过长的 shape 表达式以减少符号推导耗时。#76969
Bug 修复
修复 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, #75518, #75519, #75520, #75749, #75750, #75753, #75754, #75755, #75756, #75757, #75759,#75761, #75762, #75764, #75765, #75766, #75767, #75768, #75769, #75770, #75771, #75772, #75774, #75775, #75776, #75777, #75779, #75780, #75781, #75782, #75783, #75784, #75785, #75786, #75787, #75788, #75789, #75790, #75791, #75792, #75802, #75798, #75803, #75812, #75813, #75819, #75820, #75822, #75823, #75959, #76049,#76052, #76054, #76047, #76058, #76077,#76078, #76102,#76463, #76483
修复 StrategyForArangeSymbolic 中 all_static 情况下 attrs 存储无效 false 值的 bug。#75837
修复自动微分前反向数据类型不一致问题。#75840
修复 Crop 算子的 CINN 符号推导 Bug。#75992
修复 CINN 在 0-size 动态 shape 场景下 infer shape 阶段未正确初始化 shape 的 bug。#76093
修复动转静组网期错误将 parameter OP 添加到子 block 等问题。#76190
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
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
提升了一系列 API 的运算精度,包括:conv 系列,matmul 系列,interpolate 系列,reduce 系列等。#75237, #75238, #75335, #75341, #75355, #75363, #75367, #75379, #75426, #75454, #75503, #75525, #75547, #75549, #75588, #75605, #75717, #75799, #75816, #75898, #75965, #75968, #75970, #76066, #76224, #76231, #76246, #76398, #76553, #76590, #76723, #76735, #76758, #76814, #76846, #76922, #76980, #77098, #77143, #77149
CUDA 11.8 支持 fused_rms_norm_ext。#76624
默认启用 cudnn_frontend。 #76735
性能优化
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, #75539, #75540, #75541, #75542, #75543, #75545, #75554, #75562, #75577, #75578, #75580, #75581, #75596, #75601, #75607, #75608, #75614, #75615, #75616, #75625, #75626, #75633, #75636, #75637, #75639, #75640, #75641, #75642, #75643, #75644, #75645, #75647, #75655, #75658, #75659, #75660, #75661, #75662, #75663, #75664, #75665, #75666, #75667, #75673, #75699, #75700, #75701, #75703, #75704, #75706, #75707, #75708, #75709, #75710, #75711, #75713, #75714, #75715, #75716, #75717, #75725, #75731, #75798, #75852, #75856, #75903, #75909, #75965, #75987, #75988, #76107, #76230, #76278, #76290, #76303, #76355, #76363, #76364, #76368, #76376, #76393, #76419, #76453, #76458, #76466, #76468, #76480, #76512, #76587, #76612, #76694, #76760, #76797, #76798, #76834, #76858, #76867, #76934, #76937, #76965, #76980, #77074, #77076, #77098, #77140
修复 FlashMaskV3 在 arch>=90 的编译问题。 #76227
修复 FlashMask LSE 存储中的 padding 与上游 FA2 的 LSE 存储格式不对齐的问题。#76886
修复 FlashMask 在部分序列长度下存在的读越界问题。#76951
修复 weight only linear pass 的 bug。 #76097
3. 用户体验升级
全面提升生态兼容性,支持在 paddle 框架中无缝衔接和使用外部生态算子,并推出 paddle.compat 系列 API,包含 paddle.compat.nn.Linear、paddle.compat.nn.MultiheadAttention 等近 10 个功能模块,降低飞桨模型接入外部生态模块的成本。优化动态图调试体验,新增前反向计算图可视化功能,构建了 API、Tensor 与 GradNode 的统一命名关联体系并支持导出调用栈与 MD5 校验信息,同时对关键路径日志进行治理并新增局部日志打印功能,特别针对 PyLayer 嵌套场景显著提升报错信息精准度与日志层级可读性,实现调试信息的丰富度和获取便捷性的提升。新增显存观测功能,直观展示显存池中各个内存块的分布情况,并支持追踪特定代码段的显存申请/释放与全局状态,实现对大模型显存异常的精准定位与高效治理。
新特性
新增局部日志打印功能,支持动态设置全局日志的级别,支持仅查看某段代码在前反向执行过程中输出的日志。#75368, #75590, #76010, #76685
新增关键对象的统一命名体系,实现 API、Tensor、GradNode 的唯一命名和相互关联。#75752
支持 vmm Allocator 相关调试能力,支持通过 paddle.device.cuda.memory_summary 接口获取显存池状态,通过 paddle.device.cuda.allocate_record_guard 和 paddle.device.cuda.allocate_record_table 分析打印特定代码模块显存申请情况。#76197, #76349,#76499, #76554, #76647, #76716, #76812
新增 paddle.compat 系列 API,包含 paddle.compat.equal,paddle.compat.nn.AvgPoolD,paddle.compat.nn.Linear,paddle.compat.nn.MultiheadAttention,paddle.compat.nn.Softmax,paddle.compat.nn.functional.sdpa,paddle.compat.seed,paddle.compat.slogdet,paddle.compat.unique 等。#74697,#76169,#76275,#76279,#76471,#76637,#76446,#76440,#76387
新增一系列 CUDA 相关 API,包括 paddle.cuda.cudart,paddle.cuda.get_stream_from_external,paddle.cuda.ipc_collect,paddle.cuda.Stream,paddle.device,paddle.version.cuda 等。#75063, #75089, #75091, #75108, #75115, #75153, #75366, #75435, #75455, #75744, #76344
针对一系列 API 支持多种签名,提升兼容性。#75013, #75027, #75037, #75043, #75055, #75063, #75089, #75091, #75108, #75115, #75146, #75153, #75154, #75174, #75183, #75206, #75211, #75298, #75344, #75366, #75435, #75455, #75742, #75744, #76089, #76132, #76136, #76149, #76179, #76189, #76191, #76206, #76217, #76221, #76237, #76254, #76274, #76285, #76304, #76344, #76394, #76439, #76440, #76446, #76493, #76522, #76552, #76580, #76696, #76754, #76818
新增调试和监控类相关 API,包含 set_vlog_level 等。#75368, #75500, #76010, #76450, #76554, #76647
功能增强
系统治理动态图前反向关键路径的日志分级信息。#75240
优化 PyLayer 嵌套场景下的报错信息,支持报错直接显示前向栈、GradNode name 信息,不同层 Pylayer 通过缩进区分报错信息。#76219, #76450
日志和调试信息优化:GLOG info 管理、支持导出 forward API Python 调用栈等。#75240, #75888, #76010, #76143,#76450,#76219
优化自定义算子调试。#76603
文档和示例代码优化。#74603, #75232, #75233, #75234, #75527, #75594, #76188, #76350, #76435, #76542, #76563, #76574, #76617, #76689, #76691, #76698, #76721, #76750, #76926
兼容 floor_divide 与 masked_select 行为差异 #75148
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
修复 Embedding 的 weight[padding_idx]初始化问题。#76204
修复 XPU pin_memory 问题。#76147
修复张量打印问题。#76380
修复 Windows 编译错误。#76322
修复 paddle.nn.Parameter 的 kwargs 参数传入问题。#76476
修复 Layer.zero_grad,normalize,uniform_,unfold 问题。#76494, #76600
修复窗函数的 dtype 相关问题。#76623
修复 view 梯度在 out_grad 不连续时的问题。#76679
修复 custom_device 中的.cuda 问题。#76755
修复 SDPA 在分布式上运行的错误。#76782
修复 paddle.compat.equal 问题。#76658
修复 MultiHeadAttention 中 GQA 中的 head 为 0 问题。#76761
修复 Dy2St 因字典顺序触发的重新编译问题。#76944
修复 SDPA 的 attn_mask 扩展问题和变量名问题。#76959
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 moe_gate_dispatch 算子。#75230
自定义设备支持 mixvector。#75182
功能增强
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, #76666, #76690, #76792, #76901, #76906, #77025
修复 iluvatar_gpu 和 metax_gpu 相关编译问题。#75969
更新 xhpc 以修复 strided_copy 参数检查问题。#76213
修复在启用编译选项-DWITH_XPTI=ON 时的构建失败问题。#76577
修复 XPU 下 AddGradKernel,SoftmaxWithCrossEntropy,view 等算子问题。 #76631
5. 贡献者名单
ADchampion3, ALGO1832, AlAuAu, Android zhang, Ayakouji, Bvicii, Chang Lu, Chen Zhiyang, Difer, Echo-Nie, Eddie-Wang, Fang Chengjie, Felix Schladt, Frank Lee, GoldPancake, Gu Shiwei, HU Shenwei, Haco, Hammer, Haonan Luo, Haze188 灏喆, HydrogenSulfate, Jia Ningyu, Jianbang Yang, Jiaxin Sui, Jingzong Liu, Kunbo Ding, LLSGYN, Leo Guo, LiaoYFBH, LixinGuo, Lucas, Luckycheng222, Ma Xiaolong, MayYouBeProsperous, MingkunZhang, Nyakku Shigure, Pan Zhichen, Patrisam, Qianyue He, Ricardo-shuo-liu, Rockway, Ruibiao Chen, Runming Xie, Ryan, SUN Dong, SZTULDH, Shuhao Liang, SidusAntares, Sunday019, Sunny-bot1, Tao Luo, Tianyu Zheng, Tofu, Wang Jiabao, Wenfei (Charles) Qi, Wennie396, Xiangrui Yu, XiangzheWang, XiaoguangHu, YUNSHEN XIE, Yami, Yiqun Liu, Yohanna, Yuan Xiaolan, YuanRisheng, Yuang Liu, Yufei Liao, Yuntao Nie, Yuqiang Ge, Yutian Rao, Z784555, Zero Rains, Zhan Rongrui, Zhang Ting, Zhaowu Pan, ZhenxingLi, Zhou Xin, ZhouDuan, ZhouMinhao98, Zx, baiyue, baoqiwen, bigwhite37, blacksheep-Aristotle, bukejiyu, chen, chen2016013, co63oc, cyberslack_lee, cyy536, dakelong, ddchenhao66, dongzezhao, fangfangssj, fanhaoxuee, feri, fxyfxy777, gouzil, huangjiyi, ice, jzhang533, lijialin03, lijin23, liufengwei0103, liuruyan, lzy, megemini, mikethegoblin, ooo oo, paddle-xpu-bot, qjyyy77, qw86972190, sneaxiy, starcrown001, tianhaodongbd, tianlef, tianshuo78520a, umiswing, waliwali777, wanghuancoder, wanrui, xiaoguoguo626807, xingmingyyj, xinruiM, xuanyuanminzheng, xxiu1, yangjianfengo1, yongqiangma, yunruoxi, zccjjj, zhangbo9674, zhanghonggeng, zhangyikun02, zhangyuqin1998, zhengshengning, zhupengyang, zhwesky2010, zoeczy, zyfncg, zzm, 周周周, 苍天荒, 椿下湫咚, 正在学习, 学习中的牛马