概要
混合精度とは、同じ計算処理において、異なる精度(例えばFP32とFP16)の数値表現を組み合わせて利用する手法です。FP16のような低精度演算は、メモリ消費量と計算時間を削減できるため、特に深層学習などの大規模な計算において、パフォーマンス向上に貢献します。
従来の深層学習では、単精度浮動小数点数 (FP32) が標準的に用いられていました。しかし、FP16はFP32の半分のビット数しか使用しないため、メモリ帯域幅の削減、計算速度の向上、そしてGPUの消費電力の軽減に貢献します。混合精度訓練では、モデルの一部をFP32で、残りをFP16で実行することで、精度低下を抑えつつパフォーマンス向上を実現します。この際、FP16のオーバーフローやアンダーフローといった問題に対処するため、FP32で計算された中間値を「Master Weight」として保存し、必要に応じて精度変換を行います。自動混合精度 (AMP) などのフレームワークが、このプロセスを自動化します。