このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第589回

AIチップの性能評価基準を考えさせるFlex Logic AIプロセッサーの昨今

2020年11月16日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

精度重視のためサポートするのは
INT 8ないしBFloat16のみ

 さて価格や性能はおいておくとして、Flex Logicはどうやってこれを実現したか? であるが、基本的な流れは下の画像の通り。64サイクルが一つの区切りになっており、Load/MAC/Saveをパイプライン式に行なえるようになっている。

TPUを2次元構造に並べるベンダーもいくつかあるが、常に2次元を使い切れるとは限らないのが欠点。一方で1次元構造なら、効率は良いものの複雑なネットワークでは通信のレイテンシーが大きくなるという問題もある

 ちなみに同社の基本的な発想は精度重視だそうで、それもあって例えばFPGAなどで多用されるBinary(Int 1)やInt 4などのデータ型は使われず、サポートされるのはINT 8ないしBFloat16になっている。

 BFloat16では指数部8bit/仮数部7bit(+符号)なので、INT 8の演算エンジンがそのまま流用できるので、都合が良いということだろう。上の画像でINTだと64 MACsなのにBF16だと32 MACsというのは、2つのMACユニットで1つのBFloat16を処理しているのだと思われる。

InferX1は精度重視。Winogradは畳み込み演算を高速化するアルゴリズムのこと

 このTPUが16個と、他にFPGAロジック(図中のEFLX Logic)や2MBのL2 SRAM、それとXFLX Interconnetが組み合わさって1つのブロックを形成。InferX X1にはこれが4ブロック実装されるので、TPUは合計で64個、L2 SRAMは8MBとなる。

 おのおののTPUにはMACユニットが64個あるので、トータルで4K MACsということになり、それなりの演算密度ではあるのだが、InferX X1の最大の特徴はこのXFLX Interconnectにある。

L1 SRAMは、64×256個のWeightを格納するためのものなので、16KBに収まっている。これが4つで(ブロックあたり)64KBに過ぎない

 上の画像にも“Tensor Processors are Reconfigurable”とあるが、なにがReconfigurableか? というとTPUそのものではなく、TPU同士をどうつなぐかを動的に変更できるというものである。

例えばある層では、16個のTPUが並行して動作するが、別の層では3つのTPUを連結して動かすという場合に、XFLX Interconnect内のつなぎ方を動的に変更可能になる

 Reconfigurationは4μsで(つまり1秒間に最大25万回)変更が可能とされている。これで十分かというと、扱うデータ量やネットワークの層数に依存するが、例えば100fpsを実現したいと思うと、1枚あたり2500回のネットワーク変更が可能なので、普通に考えれば十分であろう。

 ちなみにこうした複数のTPUを連続して動かすケースでは、ある段のTPUの出力が(そのままメモリーなどを介さずに)次のTPUに渡せるので、メモリー帯域の節約にもなるしボトルネックの削減にもなるとしている。

TPUで扱えないような特殊な処理は、EFLX Logicを利用して実装可能である。これが“Activation impremented in soft logic”の意味である

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン