GitHub Repo
PyTorch 修補 CUDA 索引寫入錯誤,特定連續張量布局可能造成越界
PyTorch 維護者於 11 月 7 日定位 CUDA 索引寫入核心的步幅錯誤,並將問題標記為已完成修補。問題由模型快取更新測試揭露,但正式套件收錄情況與完整影響範圍仍待確認。

PyTorch 一項原先看似注意力編譯異常的問題,於 11 月 7 日被定位到 CUDA 的 index_put_ 寫入核心。11 月 5 日的回報指出,Gemma 4 搭配靜態快取、torch.compile 與打包式分組查詢注意力(GQA)時,可能產生錯誤輸出;維護者隨後提供不依賴模型或編譯器的最小重現,將根因縮小至底層張量操作。官方問題紀錄
關鍵在於長度為一的維度可以帶有特殊步幅,張量仍符合連續布局。受影響的排序式寫入核心卻使用該維度的步幅跨越切片,導致資料寫到張量範圍之外,原本應更新的位置反而未變。維護者展示的重現中,預期四個元素為 [0,1,0,1],實際得到 [0,1,0,0],另一個值落在底層儲存區的錯誤位置。根因與重現
觸發條件也解釋了為何問題難以追查:模型測試啟用了確定性演算法,使快取更新走進相關核心。官方文件說明,torch.use_deterministic_algorithms(True) 會讓支援的操作切換至確定性實作,並同步調整 Inductor 行為;因此,工程團隊比對輸出時,必須把這項設定列入環境條件。確定性演算法文件
依維護者說明,特殊布局下的累加寫入,以及確定性模式中的多元素覆寫,都可能走到受影響路徑。越界寫入可能引發非法記憶體存取,也可能污染相鄰張量。問題紀錄已在 11 月 7 日關閉,並連結修補提交 1e69880,但這不代表使用者現有安裝已取得修正。修補狀態
對維護推論服務的團隊,下一步應追蹤套件與回補版本,並把最小重現及滑動視窗快取測試加入升級驗證。從本次案例可推得,測試除比較一般與編譯執行,也應涵蓋不同步幅及確定性設定;目前公開證據仍不足以列出所有受影響版本與模型。