Tensorコア
高い並列計算能力をもったグラフィックス専用の処理ユニットであるGPUは、その並列計算特性が着目され現在ではHPCなど様々な分野で並列計算機として利用されている(GPGPU)。用途が広がるにつれ、深層学習をはじめとする一部の計算では高い数値計算精度よりも高い演算速度が求められることがわかってきた。NVIDIA GeForceシリーズをはじめとした様々なGPUを手掛けるNVIDIAがこれに応えるために開発した、行列積和アクセラレータがTensorコアである。
Tensorコアは行列の混合精度融合積和演算(FMA)に特化した機能を有する。すなわち1命令で低精度行列積 + 高精度アキュムレータ加算を実行する。例えばFP32の行列 A , B , C {\displaystyle A,B,C} を積和演算する際、行列積 B C {\displaystyle BC} をFP16でおこないこれをFP32の A {\displaystyle A} へとアキュムレートする。
専用回路(Tensorコア)でこれを実行するため、1命令で大量の演算を処理できる。行列積は低精度であるため計算負荷が小さく、和は高精度かつFMAであるため追加の誤差を生じさせない。例えば NVIDIA A100 GPU では単純なFP32が 19.5 TLOPSであるのに対し、FP16の低精度積でTensorCoreを使った場合は 312 TFLOPS すなわち16倍の演算を実行できる。このようにTensorコアは混合精度行列FMAのアクセラレータとして機能する。