深度學習讓稠密矩陣乘法成為熱點迴圈。顯而易見的答案是增加更多普通浮點單元,但那樣會把矽晶片與功耗花在許多模型並不需要的精度上。

2017 年,NVIDIA 隨 Volta 加入 Tensor Cores:4 乘 4 矩陣乘法累加單元,接受 FP16 輸入,同時以 FP32 累加。後來的數值研究說明了這項設計為何重要:它不只是較低的精度,而是一種專用的混合精度運算。

研究人員接著使用迭代精化,把這個技巧推展到神經網路之外。一篇皇家學會論文報告,在 Volta GPU 上達到 4 倍到 5 倍加速,能源效率約提升 5 倍,同時在線性求解上維持 FP64 等級的穩定性。

便宜地計算,謹慎地累加

矩陣乘法足夠稠密,值得用硬接線單元而不只靠一般 CUDA 核心。

FP16 輸入降低頻寬與乘法器成本,而 FP32 累加可避免總和立即崩壞。

迭代精化把快速的近似求解轉為精確的最終答案。

把這條路徑放進 CUDA 函式庫,讓一般軟體得以繼承這項硬體技巧。

當完整精度太昂貴時,就把工作拆分。在誤差可修復的地方使用低精度,並把高精度保留給把關答案的步驟。

Tensor Cores 成為 NVIDIA 在 Volta、Turing 與 Ampere 各代之間的核心差異化優勢。這個構想也走出 AI:混合精度求解器、科學運算核心以及後來的 TF32 工作流程,都採用同樣的模式——快速近似運算加上精度修復。

追溯依據

參考來源

  1. Numerical behavior of NVIDIA tensor cores PeerJ Computer Science · pmc.ncbi.nlm.nih.gov ·
  2. Mixed-precision iterative refinement using tensor cores on GPUs to accelerate solution of linear systems Proceedings of the Royal Society A · pmc.ncbi.nlm.nih.gov ·