目录
summer-camp-2026
Y2745

quant_per_token_cast_e5m6] feat: 新增 E5M6 逐 Token 正向量化算子(Op/Kernel/Test/Bench)

参与者与课题信息 课题名称:quant_per_token_cast_e5m6 —— E5M6 逐 Token 正向量化算子迁移

课题完整简介:将 MetaX-MACA/TileKernels-Metax 的 per_token_cast_to_e5m6_kernel 上游实现迁移到 TileOPs-Metax,完成 E5M6(1 符号 + 5 指数 + 6 尾数,共 12 bit)逐 Token 正向 encode 的 Op/Kernel/测试/Benchmark 全套产出。核心优化方向为「E5M6 位打包的位级并行与向量化编码」,预期在 C500 上达到接近 HBM 带宽上限的吞吐,并与参考实现逐字节一致。

PR 简要描述 算子名称:quant_per_token_cast_e5m6

算子认领 Issue:#151624(纯线上个人,并行认领);同上游文件历史认领 Issue #52、#141 均已关闭且无实现 PR;相关 Manifest PR #174(spec-only)

复用的 Manifest PR / 提交 SHA:#174 [Manifest] quant_per_token_cast_e5m6 (spec-only)(作者 xinxiong),本 PR 将对应条目 status 更新为 implemented,不重复提交 PR A

任务类型:

新算子开发 已有算子二次优化 现有基线 PR、原贡献者及冻结提交 SHA:不适用

参与方式:纯线上个人

小组 / 个人:线上个人

成员 / 姓名:Y2745

改动类型:

feat:新增算子或功能 optimize:优化已有实现

  1. 本次 PR 优化方案 优化前的主要问题:目标分支 summer-camp-2026 无 quant 子包及对应 Op/Kernel;上游实现依赖 tile_kernels.quant.common 基础设施与 CUDA intrinsic __float2half_rz,直接迁移到 MACA 会产生舍入偏差。

采用的优化方案:

位级并行 E5M6 编码:每 8 值打包为 3 个 uint32(96 bit),支持码跨 uint32 边界,整数位操作完成符号/指数/尾数拆分与 round-to-nearest-even tie 处理。 精确 RZ 自实现:实测 MACA 3.7.1.5 的 __float2half_rz 行为为 RNE,改为纯位操作模拟 round-toward-zero,消除舍入偏差。 f32 精度 amax 归约:T.reduce_absmax 在 f32 精度下进行,避免 bf16 输入带来的精度损失。 关键代码或配置变更:

tileops/kernels/quant/quant_per_token_cast_e5m6.py(+204):QuantPerTokenCastE5M6Kernel tileops/ops/quant/quant_per_token_cast_e5m6.py(+61):QuantPerTokenCastE5M6Op tests/ops/test_quant_per_token_cast_e5m6.py(+106) benchmarks/ops/bench_quant_per_token_cast_e5m6.py(+61) workloads/quant_per_token_cast_e5m6.py(+18) tileops/manifest/quantization.yaml(+85):QuantPerTokenCastE5M6Op -> implemented tileops/perf/formulas.py(+12):per_token_cast_e5m6_roofline 与已有认领任务的区别及独立技术增量:与 PR #199 quant_cast_back_e5m6(E5M6 反向 decode)方向正交,本 PR 补齐正向 encode;Issue #52 / #141 历史认领均已关闭且无实现 PR,本 PR 为当前唯一活跃实现。独立增量为 E5M6 位打包的位级并行编码与 RZ 位操作实现。

  1. 精度验证 对比基准实现:上游 per_token_cast_to_e5m6 语义的独立 PyTorch 位操作参考实现

测试命令: ython -m pytest tests/ops/test_quant_per_token_cast_e5m6.py -v

code

测试 shape/dtype:

[4096, 7168] bf16, round_sf=True [8192, 5120] bf16, round_sf=False [16384, 4096] bf16, round_sf=True [128, 1536] bf16, round_sf=False [1, 640] fp32, round_sf=False [1024, 4096] fp32, round_sf=True 误差范围(atol/rtol):packed 输出要求 torch.equal 逐字节完全相等;SF 对比 atol=1e-8, rtol=1e-5

验证结果:6/6 通过,packed 输出与参考逐字节一致,SF 完全一致。

性能数据【必填】 测试环境:MetaX C500;Kernel Mode Driver 3.8.30;MACA 3.7.1.5;PyTorch 2.8.0+metax3.7.1.3;TileLang 0.1.10 性能复现命令:

code

python -m pytest benchmarks/ops/bench_quant_per_token_cast_e5m6.py -v 任务基线:上游源实现 tile_kernels/quant/per_token_cast_to_e5m6_kernel.py @ 0266ab740980de7dc03a828b8259cd73d100c2eb(MetaX-MACA/TileKernels-Metax dev 分支)

优化后 TileOps:

shape latency_ms bandwidth_tbs t4096-h7168-bf16-round 0.0967 1.0629 t8192-h5120-bf16 0.1363 1.0773 t16384-h4096-bf16-round 0.2141 1.0971 t128-h1536-bf16 0.0078 0.0879 t1-h640-fp32 0.0070 0.0005 t1024-h4096-fp32-round 0.0210 1.0986 Torch 参考基线:

shape latency_ms t4096-h7168-bf16-round 13.0505 t8192-h5120-bf16 18.5327 t16384-h4096-bf16-round 29.5751 t128-h1536-bf16 0.2946 t1-h640-fp32 0.2378 t1024-h4096-fp32-round 2.0408 本次优化加速比(任务基线 / 优化后 TileOps):待补测。当前 C500 环境未保留上游 kernel,无法按同一 Benchmark 口径复测上游源实现;复现命令见上,关联认领 Issue #151624。

相对 Torch 加速比(Torch / 优化后 TileOps):34x ~ 138x(大 shape 135x138x,小 shape 34x38x,fp32 97x)

瓶颈分析:大 shape 带宽 1.06~1.10 TB/s,接近 HBM 上限,瓶颈为访存而非 ALU;小 shape(t128-h1536、t1-h640)受 kernel launch 与固定开销主导,有效带宽低属预期。mcProfiler duty 明细待补充。

提交自检清单 全部测试用例运行通过,精度达标 [x GPU 测试用例已按仓库要求使用 smoke / full 等分层标记 已删除临时调试打印、冗余测试代码 性能指标可本地复现,数据真实有效 二次优化已注明现有基线、原贡献人和本轮独立技术增量(新算子不适用) 已按参与方式完成提交前自查(纯线上 Issue #22) 多人并行认领时,已关联同算子已有 Issue / PR,并说明本轮独立技术增量及与已有任务的区别

23小时前974次提交
TileOPs-Metax Logo

TileOPs-Metax

面向大语言模型、由规范驱动的 GPU 算子库

简体中文 | English

项目状态:TileOPs-Metax 正在积极开发中,API 可能发生变化。

开源英才夏令营与线上实践

本仓库同时面向首届开源英才夏令营线下学员和纯线上参与者开放。两类参与者均按TileLang 算子性能分析与优化指南完成任务;开营前的线上课程与作业另行安排。

参与形式 定位 组织方式 完成标志
开营前线上课程与作业 入营前的基础学习和准备 按原课程及作业安排完成 完成课程和作业,不等同于完成线下任务或线上实践
夏令营线下任务 首届夏令营现场项目实践 小组协作、助教指导和成果答辩 达到线下任务要求并参加答辩
国产 GPU 高性能算子线上实践 线下课程与项目任务开放后的个人开源实践 通过启悟学习社区报名,个人认领算子并按指南提交 PR 完成一个算子课题且相关 PR 合入后,申请线上结业证书

开营前线上课程与作业仍由原课程平台单独维护;下方三门课程为纯线上实践配套课程,二者相互独立。

国产 GPU 高性能算子线上实践

线上参与者按TileLang 算子性能分析与优化指南完成任务,不受线下营期限制,也不参加线下分组和答辩;线上优秀项目按活动规则另行评选和奖励。线上选题优先使用候选算子清单;如清单内题目不足,也可申请开发 MetaX-MACA/TileKernels-Metax dev 分支中清单外、尚未在本仓库实现的算子,或基于本仓库已合入的现有实现开展二次性能优化。自主课题须先在认领 Issue 中说明任务价值、技术范围和基线,经管理员确认后方可开始。

活动报名与算力支持

为让更多高校师生和开发者参与国产 GPU 开源生态建设,相关课程已上线启悟学习社区等渠道,线下项目任务也已调整为线上通用版本。

  • 活动报名:国产 GPU 高性能算子线上实践
  • 报名与算力领取:报名活动即可领取一张实践算力券,用于后续课程和算子课题实践。
  • 结业与奖励:完成一个算子课题且相关 PR 合入后,可申请开源英才夏令营线上结业证书;后续入选线上优秀项目,还可获得额外算力券奖励。

课程与配套小作业

每个 Issue 同时提供课程学习入口、作业要求和提交模板。完成课程后,请按要求在对应 Issue 下留言提交作业。

北航同学请先查看:北航同学课程与实践时间安排。

课程 作业入口 北航作业入口
课程 1:Agent 时代的 GPU 编程与可靠算子优化 Issue #26 Issue #94
课程 2:GPU 算子开发与性能优化实战 Issue #27 Issue #95
课程 3:大模型核心算子性能分析与优化实战:从 GEMM 到 DeepSeek MLA Issue #25 Issue #96

课程大作业(按TileLang 算子性能分析与优化指南完成任务)

参与流程如下:

  1. 通过活动页面进入启悟学习社区开始课程学习,按要求提交信息及证明材料完成报名,并领取实践算力券;
  2. 完成活动要求的课程及配套作业;
  3. 参照线上算子认领登记 Issue #21选择任务类型、创建认领 Issue,并等待管理员确认;
  4. 新算子若尚无有效 Manifest,或接口、工作负载、Roofline 定义需要调整,须先提交并合入 spec-only Manifest PR;已有有效 spec-only Manifest 时直接复用,并在认领 Issue 和 feat 实现 PR 中记录其来源。已有算子二次优化复用现有 Manifest,仅在规范变化时先提交并合入 Manifest 更新 PR,随后提交 optimize 实现 PR;
  5. 在实现 PR 转为可 Review 状态前完成线上 PR 提交前检查 Issue #22自查;所有 PR 均须关联认领 Issue;
  6. 完成一个算子课题且所需的 Manifest PR(如有)和实现 PR 均合入后,按照线上结业证书申请 Issue #23的说明发送申请邮件;入选线上优秀项目的参与者还可获得额外算力券奖励。

夏令营线下任务(8/3-8/7)

夏令营学员应使用 summer-camp-2026 分支,并遵循TileLang 算子性能分析与优化指南。

学员以小组为单位,从候选算子清单中选择一个主算子。候选算子主要来自 MetaX-MACA/TileKernels-Metax 的 dev 分支,并已初步评估 MetaX C500 适配或性能优化空间。任务重点是按 TileOPs 规范完成算子泛化、MetaX C500 适配、测试和性能优化,而不是简单复制源实现:

  1. 认领算子并提交 Manifest;
  2. 完成 Op、TileLang Kernel、正确性及边界测试;
  3. 在真实 MetaX C500 上完成正确性验证、Benchmark、Profiler 和 Roofline 分析;
  4. 提交可 Review 的实现 PR,并参加成果答辩。

完整时间安排、提交要求和验收标准见TileLang 算子性能分析与优化指南。

认领范围以候选算子清单为准,源仓库中的算子不会全部开放。每组应优先选择一个中等或较高难度的主算子;主算子完成并经助教确认后,可追加最多两个算子。每个算子须单独认领、分别提交 PR,不得提前占用尚未开始的算子。

按要求完成任务并参加成果答辩的学员,可获得本届开源英才夏令营结营证书。

优秀项目评选(只针对线下任务)

答辩结束后,评委将结合小组答辩、PR、代码与测试质量、MetaX C500 验证证据、性能分析及开源复用价值,综合考虑算子难度、实际完成情况、优化效果和工程贡献,评出以下三个奖项:

  • 最佳性能优化(1 组):性能分析准确,优化方案合理,在代表性工作负载上取得稳定且可信的性能提升。
  • 最佳工程实践(1 组):算子交付完整,代码结构清晰,测试覆盖充分,PR 和复现材料规范。
  • 最佳开源贡献(1 组):算子分析和 C500 优化过程完整、可复现,沉淀了可复用的文档、数据或方法,能够支持后续算子开发、硬件适配和社区协作。

原则上每组最多获得一个主奖。评奖不以绝对加速比作为唯一依据,评委将结合算子基础难度、工作量、完成质量和证据可信度综合判断。

项目简介

TileOPs-Metax 是一个基于 TileLang、面向大语言模型训练和推理的 GPU 算子库。项目采用规范驱动的开发模式,帮助开发者和 AI Agent 构建、评估和优化高性能算子。

主要特性

  • 规范驱动:使用机器可读的 Manifest 定义算子签名和工作负载。
  • 性能评估:结合 Benchmark 与 Roofline 分析评估 Kernel 性能。
  • 分层设计:用户接口与硬件优化策略相互独立。

详细文档

关于

TileOPs 是一个基于 TileLang、面向大模型训练与推理的高性能 GPU 算子库。项目采用 Op 与 Kernel 分层架构,并通过算子 Manifest 描述工作负载和 Roofline 公式,支持对算子进行自动验证和硬件性能上限分析。 TileKernels-Metax 相当于是一个不错的算子清单,已包含 MoE Routing、Quantization、Transpose、Eng

21.8 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号