GitHub Repo
PyTorch 合併 ROCm FP8 矩陣乘法修補,修正縮放索引與越界讀取問題
PyTorch 於 11 月 6 日合併 Inductor 的 CK 後端修補,處理逐列 FP8 縮放因子被錯誤索引的問題。作者提供 MI350X 回歸測試結果,但正式套件收錄情況與其他硬體的驗證仍待確認。

PyTorch 於 11 月 6 日將 PR #202816 合入主分支,修正 Inductor 在 ROCm Composable Kernel(CK)後端執行逐列 FP8 矩陣乘法時的縮放配置。這項變更已有提交紀錄,但不能直接推定目前安裝的穩定版套件已包含修復。合併紀錄
問題出在 _scaled_mm 的縮放張量:啟用值使用 [M, 1],權重使用 [1, N]。舊模板依記憶體步幅推導 CK 配置,然而連續的 [M, 1] 張量步幅可能是 (1, 1),使啟用值縮放被判成按欄讀取。結果除了數值錯誤,在輸出欄數 N 大於列數 M 時,還可能讀過縮放張量的配置範圍。修補改按用途指定 ("Col", "Row"),避免單一維度造成的歧義。修補提交
新增回歸測試涵蓋即時編譯與 AOTI、有無偏置,以及同一編譯模型的多種列數。作者回報,在 MI350X、ROCm 7.0 與 ck4inductor 環境中,四組新增測試修補後全部通過;未修補時,兩組 AOTI 測試出現 98.7% 元素不匹配。這是指定環境的正確性證據,尚不足以推導完整模型品質或效能改善。測試說明
技術背景是,FP8 可採整個張量共用縮放,或讓不同列使用各自的縮放因子;後者提供更細的數值控制,也要求核心正確對應每個縮放值。PyTorch 先前的 AMD FP8 技術文章已說明這些量化粒度,以及 CK 在相關運算中的角色。官方技術背景
對維運團隊而言,合理的下一步是核對部署提交、確認實際選用的核心,再以不同矩陣形狀比較編譯前後輸出。官方文件指出,torch.compile 的自動調校會評測並選擇矩陣乘法配置,因此僅憑啟用 FP8,無法判定工作負載必然走到受影響路徑。編譯器文件