演算精度とは、コンピュータが数値を表現するためのビット数とフォーマットのことです。AI分野では、FP32(32ビット浮動小数点数)、FP16(16ビット浮動小数点数)、INT8(8ビット整数)などの精度フォーマットが使い分けられ、演算速度・メモリ使用量・計算精度のトレードオフを最適化します。
主要な精度フォーマット
FP32(単精度)は最も高い精度を持ち、従来のディープラーニング学習の標準でした。FP16(半精度)はFP32の半分のメモリでほぼ同等の学習精度を達成でき、学習の高速化に広く使われています。INT8(8ビット整数)は推論時のモデル量子化で使用され、演算速度を大幅に向上させます。
精度と性能のトレードオフ
低精度演算はメモリ使用量が少なく、演算速度も速い反面、数値の表現範囲が狭くなり精度が低下するリスクがあります。例えばFP32からFP16に変更すると、理論上のスループットは2倍、メモリ使用量は半分になりますが、数値のアンダーフローやオーバーフローに注意が必要です。
AI向け専用精度フォーマット
AI処理に最適化された専用フォーマットも登場しています。BFloat16はFP16より広いダイナミックレンジを持ち、学習の安定性に優れます。TF32(TensorFloat-32)はNVIDIAが導入した19ビットフォーマットです。FP8やFP4はさらに低い精度で高速推論を可能にし、最新GPUでハードウェアサポートされています。