NVIDIA A100 GPU中的TF32將AI訓練與HPC速度提升20倍

作者 Paresh Kharya

NVIDIA Ampere 架構內建 TF32 ,能夠加快單精度作業速度,保持精度且無需使用任何新代碼。

與所有計算一樣,你必須選擇最佳的數學格式才能做好 AI 。由於深度學習是一個新興領域,因此對於訓練和推論需要哪種格式的數學,大家仍存在激烈的爭論。

去年,我們講解了各流行格式之間的差異,例如 AI 和高效能運算中使用的單精度、雙精度、半精度、多精度和混合精度數學。如今,NVIDIA Ampere 架構引入了一種新的方法,用於提高廣泛用於 AI 的單精度模型的訓練性能。

TensorFloat-32 ( TF32 )是NVIDIA A100 GPU 中用於處理矩陣數學的新數學格式。矩陣數學也被稱為張量計算,是 AI 和部分 HPC 應用主要使用的計算。與 Volta GPU 上的單精度浮點數學( FP32 )相比,在 A100 GPU Tensor 核心上運行的 TF32 可提供高達 10 倍的加速。將 TF32 與 A100 上的結構稀疏性相結合後,相比於 Volta 可達到 20 倍性能提升。

認識新的數學

現在讓我們先來了解 TF32 的工作原理和適合 TF32 的地方。

數學格式就像尺一樣。格式指數的位數定了它的範圍,可以測量的對象大小。而它的精度(尺上的線條有多精細),則取決於其小數部分的尾數位,也就是根數或小數點後的浮點數。

一個好的格式必定是一個平衡的格式。它的位數既需要能夠滿足精度要求,同時也不能過多,否則就會減慢處理速度並造成內存膨脹。

下圖顯示的是 TF32 如何通過混合在張量計算中實現這種平衡。

TF32 在性能、範圍和精度上實現了平衡。

TF32 在性能、範圍和精度上實現了平衡。

TF32 採用了與半精度( FP16 )數學相同的 10 位尾數位精度,這樣的精度水平遠高於 AI 工作負載的精度要求,有足夠的餘量。同時, TF32 採用了與 FP32 相同的 8 位指數位,能夠支持與其相同的數字範圍。

這樣的組合使 TF32 成為了代替 FP32 ,進行單精度數學計算的絕佳替代品,尤其是用於大量的乘積累加計算,其是深度學習和許多 HPC 應用的核心。

借助於 NVIDIA 函示庫,用戶無需修改代碼,即可使其應用程式充分發揮 TF32 的各種優勢。 TF32 Tensor Core 根據 FP32 的輸入進行計算,並生成 FP32 格式的結果。目前,其他非矩陣計算仍然使用 FP32 。

為獲得最佳性能, A100 還具有經過增強的 16 位數學功能。它以兩倍於 TF32 的速度支持 FP16 和 Bfloat16 ( BF16 )。利用自動混合精度,用戶只需幾行代碼就可以將性能再提高 2 倍。

TF32展示豐碩成果

與 FP32 相比, TF32 訓練BERT的速度提高了 6 倍,而 BERT 是當今要求最高的對話式 AI模型之一。其他依賴矩陣數學的 AI 訓練和 HPC 應用上的應用級結果將因工作負載而異。

為驗證 TF32 的精度,我們使用它訓練了大量的 AI 網路,包括電腦視覺、自然語言處理和推薦系統等各種應用。結果顯示,它們都具有與 FP32 相同的收斂到某一精度的行為。

而這正是 NVIDIA 將 TF32 設置為 cuDNN 函示庫的預設數學格式的原因, cuDNN 函示庫可以加速神經網路上的關鍵數學計算。同時, NVIDIA 正在與開發 AI 框架的開源社區合作,致力於使 TF32 成為 A100 GPU 上的預設訓練模式。

今年 6 月份,開發人員將可以在NGC的 NVIDIA GPU 加速軟體列表中獲取支持 TF32 的Tensorflow 框架版本Pytorch 框架版本

TensorFlow 產品管理總監 Kemal El Moujahid 表示:“TensorFloat-32 為 AI 應用程式提供了隨手可用的訓練與推論的大幅性能提升,同時又保持了 FP ​​ 32 的精度。”

他還補充道:“我們計劃在 TensorFlow 中提供 TensorFloat-32 原生支持,以使資料科學家無需修改任何代碼,就可以利用 NVIDIA A100 Tensor Core GPU 獲得大幅度的性能提升,從中受益。”

PyTorch 團隊發言人表示:“機器學習研究人員、資料科學家和工程師希望加快解決方案的實現時間。當 TF32 與 PyTorch 實現原生整合時,可使用基於 NVIDIA Ampere 架構 GPU 快速實現加速,而且無需更改任何代碼,同時還能保持 FP32 的精度。”

TF32 加速HPC線性求解器

線性求解器是 HPC 應用程式的一種,使用重複矩陣數學計算的算法,其也將從 TF32 中受益。此類應用程式被廣泛用於地球科學、流體動力學、醫療、材料科學和核能以及石油和天然氣勘探等領域。

30 多年來,全球都在使用運用 FP32 達到 FP64 精度的線性求解器。去年,一項針對國際熱核實驗反應爐的核聚變反應研究表明,混合精度技術使用 NVIDIA FP16 Tensor Core 核心使此類求解器的速度增至 3.5 倍。在該研究中,這項技術還使Summit 超級電腦的 HPL-AI 基準性能增至 3 倍

為證明 TF32 為線性系統求解器所帶來的強大功能和穩健性,我們在 SuiteSparse 矩陣集合中使用 cuSOLVER (位於 A100 上的 CUDA 11.0 中)運行各種測試。在測試中,與包含 FP16 和 BF16 的其他 tensor-core 核心模式相比, TF32 能夠提供最快、最可靠的結果。

除線性求解器之外,其他高效能運算領域也使用 FP32 矩陣計算。 NVIDIA 計劃與業內合作,研究如何將 TF32 應用於目前依賴 FP32 的更多用例。

更多資源

如要全面了解 TF32 在 NVIDIA 最新 GPU 中的作用,請觀看 NVIDIA 創辦人暨執行長兼黃仁勳的主題演講中。如果想要了解更多訊息,請註冊參加混合精度CUDA 數學函式庫網路研討會,或閱讀深入了解 Ampere 架構的文章。

TF32 是 NVIDIA Ampere 架構中的一系列新功能之一,將 AI 和 HPC 性能推向了新的高度。有關更多詳細訊息,請參閱以下部落格:

  • 我們對稀疏性的支持,將 AI 推論提高了 50 %。
  • 雙精度 Tensor 內核,可將 HPC 模擬速度提高至 2.5 倍
  • 多執行個體 GPU (MIG),支持將 GPU 生產力提高多達 7 倍。
  • 或者,請參閱描述NVIDIA A100 GPU的網頁。