Skip to main content
QUICK REVIEW

[論文レビュー] A Study of BFLOAT16 for Deep Learning Training

Dhiraj Kalamkar, Dheevatsa Mudigere|arXiv (Cornell University)|May 29, 2019
Tensor decomposition and applications参考文献 34被引用数 67
ひとこと要約

本論文は BFLOAT16 を、ディープラーニング訓練の堅牢な半精度フォーマットとして経験的に検証し、多様なタスクで FP32 の結果と一致させ、ハイパーパラメータの変更なしに達成している。

ABSTRACT

This paper presents the first comprehensive empirical study demonstrating the efficacy of the Brain Floating Point (BFLOAT16) half-precision format for Deep Learning training across image classification, speech recognition, language modeling, generative networks and industrial recommendation systems. BFLOAT16 is attractive for Deep Learning training for two reasons: the range of values it can represent is the same as that of IEEE 754 floating-point format (FP32) and conversion to/from FP32 is simple. Maintaining the same range as FP32 is important to ensure that no hyper-parameter tuning is required for convergence; e.g., IEEE 754 compliant half-precision floating point (FP16) requires hyper-parameter tuning. In this paper, we discuss the flow of tensors and various key operations in mixed precision training, and delve into details of operations, such as the rounding modes for converting FP32 tensors to BFLOAT16. We have implemented a method to emulate BFLOAT16 operations in Tensorflow, Caffe2, IntelCaffe, and Neon for our experiments. Our results show that deep learning training using BFLOAT16 tensors achieves the same state-of-the-art (SOTA) results across domains as FP32 tensors in the same number of iterations and with no changes to hyper-parameters.

研究の動機と目的

  • BFLOAT16 の深層学習訓練における有効性を複数領域で評価する
  • 混合精度訓練における BFLOAT16 のテンソルの流れと核心演算を分析する
  • 人気のフレームワークで BFLOAT16 のエミュレーションを実演し、FP32 のベースラインと比較する
  • BFLOAT16 を使用した場合の損失スケーリングとハイパーパラメータ調整の必要性を評価する
  • BFLOAT16 訓練におけるハードウェア・ソフトウェア層への実用的影響を探る

提案手法

  • FP32 演算子の下位 16 ビットをゼロにして丸め規則を Round-to-Nearest Even (RNE) に適用して BFLOAT16 をエミュレートする
  • Forward、Backward、非 GEMM 演算のために FP32 テンソルを BFLOAT16 形式へ変更する Quantlib を開発する
  • 精度を保つために BFLOAT16 入力を持つ FP32 アキュムレータを使用し、FP32 重み更新を維持する
  • AlexNet、ResNet-50、DC-GAN、SR-GAN、DeepSpeech2、GNMT、および2つの産業ワークロードで評価する
  • BFLOAT16 を FP16 および INT16 と比較し、精度と必要なハイパーパラメータ調整を評価する
  • 実験のために Tensorflow, Caffe2, IntelCaffe, Neon で BFLOAT16 エミュレーションを実装する
  • FP32 へのほぼ同一の訓練軌跡を、ハイパーパラメータ変更なしで実証する

実験結果

リサーチクエスチョン

  • RQ1BFLOAT16 訓練は vision、speech、language、GAN、推奨システムにおいて FP32 と同等の精度を達成できるか?
  • RQ2BFLOAT16 は FP16 混合精度に特徴的な損失スケーリングやハイパーパラメータ調整の必要性を排除するか?
  • RQ3多様なワークロードにおける BFLOAT16 の性能と精度は FP16 および INT16 とどう比較されるか?
  • RQ4標準的なフレームワークでの GEMM および非 GEMM 演算を含む訓練フローにおける BFLOAT16 の影響は?
  • RQ5大規模な訓練パイプラインへ BFLOAT16 を採用する際の実用的なハードウェア・ソフトウェア上の含意は何か?

主な発見

  • BFLOAT16 は複数の領域で同じ反復数で FP32 と同じ最先端の成果を達成する。
  • BFLOAT16 エミュレーションで訓練した AlexNet と ResNet-50 は FP32 ベースラインと同様の top-1/top-5 精度を達成する。
  • BFLOAT16 の GNMT BLEU スコアは、評価された翻訳タスクにおいて FP32 ベースラインと同等、あるいはそれを上回る。
  • BFLOAT16 で訓練した GANs(DC-GAN、SR-GAN)は FP32 と比較して開始時点のスコアや SSIM 指標が同等である。
  • 推奨システムの産業ワークロードでは、適切な丸めを用いると BFLOAT16 の損失はごく小さく、直接の切り捨ては小さな劣化を引き起こす可能性がある。
  • BFLOAT16 訓練は FP16 および INT16 のアプローチで要求されるハイパーパラメータ調整や複雑なソフトウェア管理を回避する。
  • AVX512BF16 による高度なエミュレーションは、FP32 アキュムレーションを用いた ResNet-50 で最先端の結果をもたらすことを示している。
  • ハードウェア経路の実験では、BFLOAT16 を用いた訓練は最小限のソフトウェア変更で実現可能で、今後の Xeon CPU の能力と整合する。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。