深層学習により、密な行列積が主要なホットループとなった。明快な答えは通常の浮動小数点ユニットを増やすことだったが、それは多くのモデルが不要としていた精度にシリコンと電力を費やすことになった。

2017年のVoltaで、NVIDIAはTensor Coreを追加した。これはFP16の入力を取りながらFP32で累積する4×4の行列積和演算ユニットである。その後の数値研究は、この設計がなぜ重要だったかを示した。それは単に低精度というだけでなく、専用の混合精度演算だったのだ。

研究者たちはその後、反復改良を用いてこの手法をニューラルネットの範囲を超えて押し進めた。Royal Societyの論文は、Volta GPU上で4倍から5倍の高速化と約5倍のエネルギー効率向上を報告しつつ、線形求解においてFP64レベルの安定性を維持した。

安価に計算し、注意深く累積する

行列積は、汎用CUDAコアだけでなく専用のハードワイヤードユニットを正当化できるほど密である。

FP16の入力は帯域幅と乗算器のコストを削減し、一方でFP32の累積は合計が直ちに崩壊するのを防ぐ。

反復改良は、近似による高速求解を正確な最終解に変える。

この経路をCUDAライブラリに組み込むことで、通常のソフトウェアがハードウェアの仕組みを継承できるようになった。

完全な精度が高コストすぎる場合には、作業を分割する。誤差を修復できる箇所では低精度を使い、答えを監督するステップには高精度を確保する。

Tensor Coreは、Volta、Turing、Ampereを通じてNVIDIAの中核的な差別化要因となった。このアイデアは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 ·