全2502文字
PR

 英Arm(アーム)は、2019年10月8~10日(米国サンノゼ)に年次プライベートイベント「Arm TechCon 2019」を開催した。AI技術関連で注目を集めたのが、同社の「bfloat16」への対応である(図1)。bfloat16は、米Google(グーグル)が独自に定義したディープラーニング向けの浮動小数点フォーマット。同社のディープラーニングアクセラレーター「TPU」で採用されている形式だ。以前は同社のみが利用していたが、米Intel(インテル)や米Facebook(フェイスブック)がサポートするなど、広がりを見せている。

図1 bfloat16対応へ
図1 bfloat16対応へ
Armは「Armv8-A」アーキテクチャーの次世代仕様にbfloat16データフォーマットを追加することを、2019年10月の「Arm TechCon 2019」で発表した。写真内の人物は同社 SVP & GM of InfrastructureのDrew Henry氏。(写真:日経 xTECH)
[画像のクリックで拡大表示]

 Armは、「Armv8-A」アーキテクチャー(命令セット)の次世代仕様にbfloat16フォーマットを追加する。まずは、サーバー向けブランド「Neoverse(ネオバース)」のCPUコア「Zeus」でbfloat16をサポートする。Zeusは7nm+(EUVありの7nm)プロセスでの製造を前提にしており、2020年の発売予定である。

 bfloat16では、浮動小数点の精度を示す「仮数部」に7ビットを、数値のダイナミックレンジを示す「指数部」に8ビットを割り当てる(図2)。仮数部が23ビット、指数部が8ビットのFP32(単精度浮動小数点)に比べて精度は下がるものの、指数部は8ビットで扱えるダイナミックレンジは同じにしてデータサイズを抑えたことが特徴である。ディープラーニングの演算負荷が減るほか、モデルも軽量になる。

図2 FP32並みのダイナミックレンジでデータサイズは小さい
図2 FP32並みのダイナミックレンジでデータサイズは小さい
bfloat16では、浮動小数点の精度を示す「仮数部」に7ビットを、数値の幅を示す「指数部」に8ビットを割り当てる。FP32(単精度浮動小数点)に比べて精度は下がるものの、指数部は8ビットで扱える数値の幅(ダイナミックレンジ)は同じにしてデータサイズを抑えている。スライドは、「Arm TechCon 2019」で披露したもの。写真の人物は、Arm Fellow and Senior Director of TechnologyのIan Bratt氏。(写真:日経 xTECH)
[画像のクリックで拡大表示]