Prhub

radixark/miles · 标签视图

标签列表

聚合结果

nvfp4 相关 PR

2026-09-14

#3217 Reduce NVFP4 weight synchronization overhead

原始 PR · 作者 zianglih · 合并时间 2026-09-14 15:25

性能优化 重要性 7.62 洞察度 7.00

消除 NVFP4 权重发布的主机同步与规则扫描开销

值得精读,尤其推荐给维护 NVFP4 RL、权重同步与 checkpoint 导出性能的工程师。重点关注四个设计决策:(1) 用 Python 标量 + `clamp_max` + `torch.where` 取代标量张量分配与 CUDA 标量真值判断,这是消除隐式同步的通用手法,前提是分子在 FP32 下精确可表示(1536 / 2688),换其它 `e4m3_max` 时需要重新确认;(2) `_literal_ignore_rules` 返回 `None` 作为“交给正则路径”的哨兵值,虽然保留了顺序 `re.match` 与异常行为,但把正确性押在调用约定上,建议后续补一个断言或在 `_is_ignored` 中显式处理;(3) 用 TorchDispatchMode 把性能契约写成断言,这是本 PR 最值得借鉴的测试范式;(4) 接受 `(1,)` 形状保持、并在 head 上删除策略回归测试,属于明确声明的取舍,建议后续补回 `tests/fast/utils/test_nvfp4_ignore_policy.py` 或等价用例,并在合并 head 上重跑一次完整发布路径的墙钟对比以闭合性能证据链。

2026-09-11

#2864 Add fused NVFP4 fake-QAT QDQ kernels

原始 PR · 作者 zianglih · 合并时间 2026-09-11 12:03

功能 重要性 9.18 洞察度 8.00

新增融合 NVFP4 fake-QAT QDQ 内核、Megatron 适配层与 W4A16 RL 端到端配方

值得精读,但建议按“契约 → 内核 → 测试”的顺序读:(1) 先读 `NVFP4QDQConfig.__post_init__` 与 `current_nvfp4_qdq_config()`,这是理解整个内核能力边界(哪些开关合法、哪些组合被拒绝)的最短路径;(2) 再看 `miles/utils/nvfp4_fake_qat.py` 的 env 门控 + 延迟 import 设计,它决定了这项功能是否会影响未启用它的用户;(3) 最后读 `tests/fast-gpu/test_nvfp4_quantizer.py` 的 `_te_qdq_reference` 与 bit-exact 断言,理解“逐比特一致”具体对齐了什么(含 +0/-0 的整数视图比较)。特别值得学习的设计决策有:用编译期特化代替运行时分支、保留 TE 变量名但在文档串/注释/测试三处澄清语义、以及用 `--no-gradient-accumulation-fusion` 保证 STE 梯度回落到原始专家参数。同时请带着两个疑问阅读:TE 版本升级后 bit-exact 契约如何维护,以及 Megatron 侧 hook 缺失时的静默失配如何被发现。

#2855 Restrict NVFP4 RL to routed experts

原始 PR · 作者 zianglih · 合并时间 2026-09-11 08:59

缺陷修复 重要性 6.99 洞察度 6.00

NVFP4 量化范围收紧至路由专家,共享专家保持高精度

值得精读,重点不在 diff 体量(+25/-51),而在于它把一条隐式契约变成默认行为:建议仔细阅读 `_is_routed_expert_weight_name` 的判定顺序(共享专家否决必须早于 `.experts.` 匹配)、`quantize_params_nvfp4` 的分发结构,以及三条路径的对齐关系,这是理解 miles NVFP4 RL 现状的关键。 需要额外关注的决策与后续动作:一是 `--ci-disable-kl-checker` 属于「绕过而非修复」,建议单独跟进 signed `train/ppo_kl < 1e-8` 门禁的判据缺陷(应改为绝对值或幅值阈值);二是 `tests/fast/test_nvfp4_scope.py` 被删除后没有替代守卫,建议补回一个纯 CPU 的名称判定单测,锁住单数/复数/嵌套共享专家三种命名;三是把 FlashInfer 0.6.18 固化到镜像/依赖,避免 E2E 长期依赖手工 wheel 覆盖;四是给用户一条明确的迁移提示——旧 NVFP4 checkpoint 需要重新转换导出。