ACL 下 LM Head 改用 bf16→fp32 内核提速
值得精读,尤其适合负责 CPU 后端、oneDNN 集成或跨后端性能调优的工程师:本 PR 用 4 个文件、37 行改动换来 6% e2e 吞吐,并顺带修正了一个 primitive 缓存键的设计缺陷。重点看三处设计决策:一是“用问题描述(problem desc)而非更换算子”这一最小侵入式提速思路;二是为什么 `c_type` 必须进入 class 级缓存键(reviewer bigPYJ1151 的发现值得反复体会);三是把 fp32 输出缓冲与一次降采样 copy 放在 PyTorch 侧而非 ACL 内部。阅读时建议同时核对小 M 场景的时间比表与 `TODO(fadara01)` 热修标记,评估该阈值在你的流量形态与模型形状下是否成立;如果后续要把它产品化,建议把 64000 提为可配置项并清理 CodeRabbit 指出的测试参数拆分问题。
参与讨论