輝達(NVIDIA,$NVDA)從 CUDA Toolkit 13.4 起,在 cuBLAS 加入 FP64 矩陣乘法模擬方法 Ozaki-II。資料列出的 B200 GPU 複數矩陣乘法模擬最高效能為 295 TFLOPS。這是特定運算路徑的峰值,不代表整套科學模擬都能以相同速度執行。
輝達在 CUDA Toolkit 13.4.2 發行說明中表示,當 Ozaki-II 的效能優於 Ozaki-I 時,系統會採用 Ozaki-II;此功能支援 Ampere 及後續架構的 GPU。FP64 是用於科學與工程運算的雙精度格式,cuBLAS 則是處理 GPU 矩陣運算的函式庫。
FP64 模擬功能最早於 CUDA Toolkit 13.0 Update 2 推出,當時提供以 Ozaki-I 為基礎的選用功能。Ozaki-II 在 13.4 加入,13.4.2 則是後續更新,版本標示為「13.4 Update 1」。
輝達列出的最高模擬效能中,B200 的實數矩陣乘法 DGEMM 為 175 TFLOPS,複數矩陣乘法 ZGEMM 為 295 TFLOPS。RTX PRO 6000 Blackwell Server Edition 的兩項數據則分別為最高 45 TFLOPS 和 70 TFLOPS。這四項數據都是矩陣乘法模擬的峰值。
複數矩陣乘法使用的 2M 演算法,通常能將實數矩陣乘法的次數從 4 次減為 2 次。輝達研究(NVIDIA Research)在 2M 演算法研究資料中說明,結合 Ozaki-II 後,處理複數矩陣乘法所需時間約為處理同尺寸實數矩陣乘法的兩倍。
cuBLAS 的模擬路徑會先將輸入矩陣轉換為定點格式,再運用 GPU 運算單元處理,並合併中間結果。輝達的 cuBLAS 文件說明了這套方法及其支援條件。
自動動態精度功能會計算輸入所需的尾數位元數。若超過設定上限,系統便會改用原生 FP64 運算,而非模擬運算。實際採用的運算路徑可能因輸入資料和精度條件而異。
CUDA Toolkit 13.4.2 也調整了工作記憶體不足時的處理方式:模擬所需記憶體不足時,系統會從裝置專用的記憶體池取得空間。這項修改旨在減少反覆為各個 handle 配置記憶體的負擔。
輝達表示,同一版本更新也讓 Rubin GPU 的 ZGEMM 最高效能提升最多 25%。這項數據只涉及複數矩陣乘法,不代表其他運算或整個程式的執行時間也有同幅度改善。
矩陣乘法模擬的最高吞吐量不等於整體應用程式效能。實際效果可能取決於矩陣乘法在工作中的占比、輸入條件及 GPU 型號。
輝達曾以較早的 Ozaki 模擬案例指出,RTX PRO 6000 Blackwell Server Edition 執行 Quantum ESPRESSO 的時間,比基本設定快 1.5 倍。這並非 CUDA 13.4 中 Ozaki-II 的直接測試結果。(輝達 cuBLAS 技術部落格)
另一份 cuBLAS Patch Release 13.8.2 適用於 CUDA Toolkit 13.4 Update 1,修正了部分採用 Ozaki-II 的複數 BLAS3 例程中罕見的錯誤。當向量幾乎平行,且各分量大小相近時,計算內積可能發生此錯誤。(cuBLAS 修補版發行說明)
另一方面,CUDA Toolkit 13.5.0 發行說明將同類型的 Ozaki-II 罕見錯誤列為已知問題。截至 14 日查詢,輝達 CUDA Toolkit 封存頁面列出的最新版本為 13.5.0。(CUDA Toolkit 13.5 發行說明)
CUDA 13.5 將 Ozaki-II 的適用範圍擴大至部分對稱與 Hermitian rank-k 運算。這項變更是擴充支援的運算種類,與 13.4 推出的複數矩陣乘法模擬分屬不同項目。
本刊先前報導的 B300 BF16x9 分子動力學測試屬於 FP32 模擬案例,精度格式與測量對象都不同於此次 FP64 矩陣乘法模擬。
Comment 0