GitHub Repo
PyTorch 社群回報 CUDA 插值捷徑缺陷,同尺寸輸出可能跳過重採樣
PyTorch 開發版的重現案例顯示,非整數縮放倍率若仍產生相同輸出尺寸,CUDA 雙三次插值可能直接回傳輸入值。社群已提出修補,但尚未合併,正式版本影響範圍仍待確認。

PyTorch 社群於 10 月 3 日回報一項影像重採樣的靜默數值錯誤:在 CUDA 直接執行模式下,F.interpolate 使用雙三次插值時,指定倍率即使不等於一,只要計算後的輸出尺寸與輸入相同,就可能略過插值。案例使用開發版 2.15.0a0、CUDA 12.6 與 RTX A6000;目前不能據此推定所有正式版本均受影響。問題回報
重現程式對四乘四張量設定 scale_factor=(1.2,1.2)、mode='bicubic' 及 align_corners=False,輸出仍是四乘四。回報者以 CPU 雙精度結果為參照,CUDA 直接執行的最大絕對誤差約為 1.673;CPU 單精度與 CUDA 的 torch.compile 路徑則約為百萬分之一以下。這組比較顯示,差異遠大於該案例中的一般浮點捨入誤差。重現與測量
技術關鍵在於,輸出形狀相同並不代表取樣座標相同。官方文件說明,align_corners=False 會依像素邊界對齊;recompute_scale_factor=True 則先求出輸出尺寸,再推導插值倍率,可能與直接使用原始倍率得到不同結果。因此,僅檢查張量尺寸不足以判斷能否省略運算。API 文件
同日提出的修補提案將原因指向「同尺寸即複製」的快速路徑,建議額外確認顯式倍率為一或未提供,才允許跳過插值。提案涵蓋多種 CPU、CUDA 與量化核心,但這是作者提出的修補範圍;原始重現直接支持的是 CUDA 雙三次插值案例。截至查核時,提案仍開啟,尚無已發布修復的證據。修補提案
對視覺模型工程師而言,此案例提示:若前處理或特徵圖縮放使用非整數倍率,小尺寸張量可能需要額外比對數值,而不能只驗證形狀。實務上可加入同尺寸、非單位倍率的回歸案例,並比較 CPU、CUDA 與編譯路徑。後續應追蹤修補審查、受影響版本及其他插值模式的驗證結果;目前尚未有證據量化它對實際模型準確率的影響。