このページの本文へ

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

精度が重要な「学習」と速度が求められる「推論」 AIプロセッサーの昨今

2020年05月25日 12時00分更新

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

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

INT4やINT1をサポートする
プロセッサーが普及していく

 一方整数演算についても、当初はINT32などを使っていたのがすぐINT8に切り替わったが、より積極的にINT4/INT2/INT1なども研究されるようになった。これの先鞭をつけたのはFPGAである。

 CPUやGPUの場合、8bit演算が最小単位になっているため、これ未満の単位でも動作としては8bit演算になる。したがって4bitにしてもまったく性能向上に寄与しないのだが、FPGAの場合は4bit演算器や2bit演算器を作りこむことが可能で、その場合は本当に回路規模が小さくなる=同時に処理できるデータ量が多くなるので、性能が向上するというメリットが大きくなる。

 これを極端に進めたのがBinary、つまりデータ型が1bitのネットワークである。もちろん1bitなのはデータのみで、フィルターの係数はINT8などになるのだが、こちらは圧倒的に計算量が減らせる。

 なぜなら、畳み込み演算などで乗算を全部論理積(And)に置き換えできるからだ。前回、Ampereのアーキテクチャー説明の中でSparsity(疎行列への対応)を説明したが、理屈はアレと同じである。

 下図の左側は、連載562回で説明した畳み込みの計算であるが、Binaryの場合は入力画像(A1~A9)が0か1しかないので、事実上掛け算の必要が一切なく、単にB1~B9に論理積を行なってから足し算をするだけで良い。

畳み込みとバイナリーの違い

 この論理積のロジックは乗算のロジックよりもずっと簡単に実装できるので、単にデータの格納に必要なメモリーが減るだけでなく、演算ロジックそのものも大幅に簡素化できるから、同時により多数のデータを並列で処理しやすくなり、そのまま性能向上につながる。

 8bit未満(4bit/2bit/1bit)に関してはこれまでFPGAの独壇場だったが、NVIDIAがAmpereでINT4/INT1をサポートしたというのは、こうしたトレンドに対応するためと考えられる。

 CPU側に関しては今のところこれをサポートする動きはないが、長期的にはSIMD拡張の中でINT4やINT1をサポートする可能性はあるだろう。

 またAI向けプロセッサーの中には、このINT4/INT1をオプションでサポートする製品も出てき始めており、今後は広範に普及していくかもしれない。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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