返回首頁

GitHub Repo

PyTorch 社群回報 GB10 原始碼建置缺陷,FP8 矩陣運算可能使 CUDA 上下文失效

PyTorch 社群於 11 月 9 日回報,僅指定 12.1 架構建置時,GB10 的逐列縮放 FP8 矩陣運算可能觸發 GPU 錯誤。作者提出編譯條件修正並回報測試通過,但正式套件據報不受影響,修補發布狀態仍待確認。

Pytorch Deepdream (https://github.com/gordicaleksa/pytorch-deepdream) by gordicaleksa (https://github.com/gordicaleksa/pytorch-deepdream/commits?author=gordicaleksa) · MIT · Image source
zh-Hant

PyTorch 社群於 11 月 9 日回報一項影響 NVIDIA GB10/DGX Spark 原始碼建置的問題:設定 TORCH_CUDA_ARCH_LIST=12.1 後,首次執行逐列縮放的 FP8 torch._scaled_mm,可能觸發裝置端陷阱,使 CUDA 上下文失效,連帶造成同程序後續 CUDA 呼叫失敗。作者表示,正式發布的 wheel 因包含另一條架構建置路徑,不受此問題影響。問題回報

關鍵在於硬體能力與編譯目標的區別。NVIDIA 官方將 GB10 列為計算能力 12.1;CUDA 文件則說明,使用架構專屬指令必須選擇帶有 a 後綴的編譯目標,單純指定基礎計算能力並不會啟用完整指令集。這讓「支援該 GPU」與「特定核心已正確編譯」成為兩個需要分別驗證的條件。GPU 對照表、CUDA 架構目標說明

依作者分析,cmake/Codegen.cmake 原本僅在既有旗標包含 compute_120 時,才替相關檔案補上 sm_121a;只指定 12.1 因而漏掉這一步。修正構想是讓條件同時辨識 compute_120 與 compute_121。作者回報,同機修改後相關矩陣運算測試達到 543 項通過、零失敗。這是提交者提供的結果,尚不能視為跨環境驗證。建置分析與測試結果

對自行編譯低精度推論環境的工程師而言,這項回報提示:建置成功後仍應執行實際 FP8 核心測試,並保留編譯旗標供比對。現有證據限於特定 GB10、CUDA 13.0 與開發版環境,不能擴大解讀為所有 Blackwell 或 PyTorch 安裝皆受影響。後續應追蹤修正是否合併、納入哪個版本,以及單一架構建置是否加入回歸驗證。

來源

  1. PyTorch issue #204035:GB10 逐列縮放 FP8 建置與執行錯誤
  2. CUDA GPU Compute Capability
  3. CUDA Programming Guide:Compute Capabilities