[Operator Mechanism] Harden MoE permute/unpermute boundary cases (#79211)
Extend the validation added in #79136 to cover additional boundary inputs surfaced by compute-sanitizer:
- moe_unpermute: enforce unzipped_token_probs holds one probability per unzipped token row (numel == unzipped_tokens.dims()[0]), both in MoeUnpermuteInferMeta and MoeUnpermuteKernel. This rejects the zero-size / mismatched probs buffer that previously caused an out-of-bounds read of unzipped_token_probs.
- moe_permute: enforce XScale.dims()[0] == X.dims()[0] when do_gather is set, mirroring the InferMeta check so the FP8 scale gather path fails early on a mismatched scale buffer.
- Make the row-major index arithmetic in tokens_zip_kernel and permute_kernel int64-safe so a valid (each dim <= INT32) input whose rowtopk / rownum_experts product exceeds INT32 does not silently overflow into an out-of-bounds access.
Legal zero-token inputs keep passing through unchanged.
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
English | 简体中文 | 日本語
欢迎来到 PaddlePaddle GitHub。
飞桨(PaddlePaddle)作为中国首个自主研发的深度学习平台,自 2016 年起正式面向专业社区开源。它是一个具备先进技术和丰富功能的产业级平台,涵盖深度学习核心框架、基础模型库、端到端开发套件、工具组件以及服务平台。 飞桨源于产业实践,并持续专注于产业化。它已被制造、农业、企业服务等众多领域广泛采用,服务超过 2333 万开发者、76 万家企业,生成 110 万个模型。凭借这些优势,飞桨帮助越来越多合作伙伴实现 AI 商业化。
安装
PaddlePaddle 最新版本: 3.3
我们的愿景是通过 PaddlePaddle 让每个人都能使用深度学习。 请参考我们的版本说明了解 PaddlePaddle 最新特性。
安装最新稳定版本或每日最新构建版本
安装方法详见官网 安装说明。
飞桨新一代框架 3.2
动静统一自动并行
只需在单卡基础上进行少量的张量切分标记,飞桨能自动寻找最⾼效的分布式并行策略,大幅度降低了产业开发和训练的成本,使开发者能够更专注于模型和算法的创新。
大模型训练推一体
同一套框架支持训练和推理,实现训练、推理代码复用和无缝衔接,为大模型的全流程提供了统一的开发体验和极致的训练效率,为产业提供了极致的开发体验。
科学计算高阶微分
提供高阶自动微分、复数运算、傅里叶变换、编译优化、分布式训练等能力支持,支持数学、力学、材料、气象、生物等领域科学探索,微分方程求解速度大幅提升。
神经网络编译器
采用框架一体化设计,支持⽣成式模型、科学计算模型等多种模型的高效训练与可变形推理,在计算灵活性与高性能之间提供了良好的平衡点,显著降低性能优化成本。
异构多芯适配
成熟且完整的多硬件统一适配方案,通过标准化接口屏蔽了不同芯片软件栈开发接口差异,实现可插拔架构。
文档
我们提供 英文 和 中文 文档
使用指南:或许你想从深度学习基础开始学习飞桨
应用实践:使用飞桨搭建你的模型,更高效的完成深度学习任务
API 文档:新的 API 支持代码更少更简洁的程序
贡献方式:参与飞桨社区开源贡献的指南
开源社区
版权和许可证
PaddlePaddle 由 Apache-2.0 license 提供。