解決方案
深度學習讓稠密矩陣乘法成為熱點迴圈。顯而易見的答案是增加更多普通浮點單元,但那樣會把矽晶片與功耗花在許多模型並不需要的精度上。
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 工作流程,都採用同樣的模式——快速近似運算加上精度修復。
追溯依據
參考來源
- Numerical behavior of NVIDIA tensor cores PeerJ Computer Science · pmc.ncbi.nlm.nih.gov ·
- 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 ·