Update 项目申报书.md
面向沐曦曦云 C500 与 MXMACA 的路由负载感知 MoE 融合算子协同优化与自适应派发系统。
当前状态:0.1.0 已完成 C500 M0 真机里程碑。项目在固定的 FlagGems v5.0.2 提交上完成一个真实 Decode Shape 的 FP16/BF16 正确性与多随机种子复验;完整模型层、更多路由分布和上游合入仍待完成。
0.1.0
当前实现复用 FlagGems 的 Fused MoE Kernel,通过 C500 专用配置注入、搜索、验证与置信派发完成适配和调优;它不是一个已经被 FlagGems 官方收纳的全新 Kernel。FlagGems 上游 Issue/PR 尚未提交,只有未来 PR 被官方主仓合并后才能称为上游贡献。
通用 Fused MoE 配置通常只使用 token 数、专家数和矩阵 Shape 选择 Tile,但真实 MoE 推理还受到专家负载偏斜、空专家比例、对齐填充以及软件栈版本的影响。MXMoE-Adapt 将这些因素放进同一个闭环:
align_block_size
BLOCK_SIZE_M/N/K
mxmoe-adapt/ ├─ src/mxmoe_adapt/ # 路由特征、联合搜索、派发、漂移与证据审计 ├─ benchmarks/ # C500 Fused MoE 正确性和延迟基准 ├─ configs/ # 工作负载、环境及配置数据库示例 ├─ tests/ # 不依赖 GPU 的单元测试 ├─ docs/ # 申报书、技术方案、实测手册和项目管理 └─ results/ # 经脱敏的 C500 M0 证据;其他临时结果默认忽略
项目命令统一使用 python3。
python3
python3 -m venv .venv source .venv/bin/activate python3 -m pip install -e . python3 -m unittest discover -s tests -v
在 C500/MXMACA 环境先采集只读信息:
python3 -m mxmoe_adapt.environment --output results/c500-environment.json python3 -m mxmoe_adapt.search_space --output results/search-space.json
尚未开通实例时,先按 C500租赁与镜像选择 选择硬件和官方镜像。 需要提交镜像选项或开通后的命令回显时,填写 C500开通信息与环境日志表。
将已脱敏的 Top-K ID 列表转换为聚合路由特征:
python3 -m mxmoe_adapt.trace results/topk-ids.json \ --experts 64 --output results/route-features.json
运行 FlagGems 基线小 Shape 冒烟测试:
python3 benchmarks/benchmark_fused_moe.py \ --candidate mxmoe_adapt.adapters.flaggems:run \ --device cuda --dtype fp16 --tokens 4 --experts 8 \ --hidden-size 256 --intermediate-size 512 --top-k 2 \ --output results/flaggems-smoke-fp16.json
完成多组实测后生成不隐藏失败记录的递归汇总;同 callable 或同配置对照组不会计入性能几何平均:
python3 -m mxmoe_adapt.report results --output results/summary.json
没有 C500 时,不生成新的性能数据;使用已保存证据继续做离线复核:
python3 -m mxmoe_adapt.evidence \ results/c500-e928d862973e-20260722/c500-m0-milestone.json \ --repo-root .
该命令会沿着里程碑中的相对路径检查 6 次独立 FP16/BF16 运行,重新计算加速比与聚合指标,并核对 C500 环境指纹、正确性、配置和共享内存失败日志。详见离线证据审计。
当前通过结果及 16 个关键证据文件的 SHA-256 清单见 c500-m0-evidence-audit.json;CI 会重新生成并比较该文件,防止历史证据静默漂移。
c500-m0-evidence-audit.json
真实大 Shape 必须在确认显存需求后逐步放大,参见 C500 实测手册。
verified=true
2.8.0+metax3.5.3.9
tokens=4, E=8, H=4096, I=14336, top-k=2
M16/N128/K64/warps4/stages2
M16/N32/K64/warps4/stages2
1.0283x
0.0009765625
1.0295x
0.0078125
完整成功与失败记录见 results/c500-e928d862973e-20260722,汇总结论见 c500-m0-milestone.json。这些结果仅支持上述单一 Shape 的 M0 结论,不外推到完整模型或所有 MoE 工作负载。
results/c500-e928d862973e-20260722
c500-m0-milestone.json
首期聚焦单卡曦云 C500、FP16/BF16、MoE 专家计算主链路。多卡 Expert Parallel、All-to-All、FP8/W8A8 和训练场景只进入后续路线图。
项目采用 Apache-2.0 许可证,公开仓库为 chionglee14/mxmoe-adapt。后续可按青年开源专项基金要求同步镜像至 Gitee/GitLink。申报材料见 项目申报书。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MXMoE-Adapt
面向沐曦曦云 C500 与 MXMACA 的路由负载感知 MoE 融合算子协同优化与自适应派发系统。
当前实现复用 FlagGems 的 Fused MoE Kernel,通过 C500 专用配置注入、搜索、验证与置信派发完成适配和调优;它不是一个已经被 FlagGems 官方收纳的全新 Kernel。FlagGems 上游 Issue/PR 尚未提交,只有未来 PR 被官方主仓合并后才能称为上游贡献。
项目解决什么问题
通用 Fused MoE 配置通常只使用 token 数、专家数和矩阵 Shape 选择 Tile,但真实 MoE 推理还受到专家负载偏斜、空专家比例、对齐填充以及软件栈版本的影响。MXMoE-Adapt 将这些因素放进同一个闭环:
核心创新
align_block_size与BLOCK_SIZE_M/N/K、warps、stages 共同搜索。仓库结构
快速开始
项目命令统一使用
python3。在 C500/MXMACA 环境先采集只读信息:
尚未开通实例时,先按 C500租赁与镜像选择 选择硬件和官方镜像。 需要提交镜像选项或开通后的命令回显时,填写 C500开通信息与环境日志表。
将已脱敏的 Top-K ID 列表转换为聚合路由特征:
运行 FlagGems 基线小 Shape 冒烟测试:
完成多组实测后生成不隐藏失败记录的递归汇总;同 callable 或同配置对照组不会计入性能几何平均:
没有 C500 时,不生成新的性能数据;使用已保存证据继续做离线复核:
该命令会沿着里程碑中的相对路径检查 6 次独立 FP16/BF16 运行,重新计算加速比与聚合指标,并核对 C500 环境指纹、正确性、配置和共享内存失败日志。详见离线证据审计。
当前通过结果及 16 个关键证据文件的 SHA-256 清单见
c500-m0-evidence-audit.json;CI 会重新生成并比较该文件,防止历史证据静默漂移。真实大 Shape 必须在确认显存需求后逐步放大,参见 C500 实测手册。
正确性和性能口径
verified=true且环境指纹匹配的配置才能自动派发。C500 M0 实测结果
2.8.0+metax3.5.3.9、FlagGems v5.0.2。tokens=4, E=8, H=4096, I=14336, top-k=2。M16/N128/K64/warps4/stages2。M16/N32/K64/warps4/stages2。1.0283x,最大绝对误差0.0009765625。1.0295x,最大绝对误差0.0078125。完整成功与失败记录见
results/c500-e928d862973e-20260722,汇总结论见c500-m0-milestone.json。这些结果仅支持上述单一 Shape 的 M0 结论,不外推到完整模型或所有 MoE 工作负载。首期边界
首期聚焦单卡曦云 C500、FP16/BF16、MoE 专家计算主链路。多卡 Expert Parallel、All-to-All、FP8/W8A8 和训练场景只进入后续路线图。
开源与申报
项目采用 Apache-2.0 许可证,公开仓库为 chionglee14/mxmoe-adapt。后续可按青年开源专项基金要求同步镜像至 Gitee/GitLink。申报材料见 项目申报书。