- 著者
-
大友 広幸
横田 理央
- 雑誌
- 研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
- 巻号頁・発行日
- vol.2021-HPC-180, no.7, pp.1-9, 2021-07-13
NVIDIA TensorCore は最大 300TFlop/s 以上の性能を持つ混合精度行列積演算回路である.TensorCore は深層学習からの高い行列積需要に対応するために開発されたが,線型方程式の反復解法やフーリエ変換など,深層学習以外の分野への応用も研究されている.密行列積計算も深層学習に限らず幅広い分野において重要な計算である.TensorCore は入力として半精度(FP16)行列をとるため,これを用いて単精度(FP32)密行列積計算を行う場合は,はじめに入力行列を半精度へ変換する必要がある.しかしこの操作によって単精度度行列積の計算精度が劣化する.そこで入力行列を半精度へ変換する際に失われる仮数部を別の FP16 変数で保持し,これを用いて単精度行列積の計算精度を補正する手法が考案された.この手法では単精度演算器を用いた行列積と比較して高速に計算可能ではあるが,誤差の蓄積が大きく計算精度が悪いという問題が確認されている.本研究ではこの誤差蓄積の原因となる 2 つの問題に着目し,それらの改善を行うことで,単精度演算器で計算した場合と同等の計算精度でより高速な単精度行列積手法を開発した.この手法をオープンソースの行列積ライブラリである NVIDIA CUTLASS に実装し,様々な入力行列での計算精度・計算性能の評価を行った.計算性能では 40TFlop/s 以上の性能を実現した.