220億個のトランジスタ、IBM機械学習プロセッサNorthPole、エネルギー効率が25倍向上
IBM が再び挑戦しています。
AI システムが急速に発展するにつれて、必要なエネルギーも増加しています。 新しいシステムのトレーニングには大規模なデータ セットとプロセッサ時間が必要なため、非常にエネルギーを消費します。 場合によっては、よく訓練されたシステムを実行することで、スマートフォンがその仕事を簡単に実行できることがあります。 ただし、実行回数が多すぎると消費電力も増加します。

幸いなことに、後者のエネルギー消費を削減する方法はたくさんあります。 IBM とインテルは、実際のニューロンの動作を模倣するように設計されたプロセッサーを実験してきました。 IBM は、RAM への繰り返しアクセスを避けるために、相変化メモリ内でニューラル ネットワーク計算を実行するテストも行いました。
さて、IBM は別のアプローチをとりました。 同社の新しい NorthPole プロセッサは、上記のアプローチからのアイデアのいくつかを統合し、非常に合理化された計算実行方法と組み合わせて、推論ベースのニューラル ネットワークを効率的に実行できるエネルギー効率の高いチップを作成します。 このチップは、画像分類や音声転写などの分野で GPU よりも 35 倍効率的です。
公式ブログ: https://research.ibm.com/blog/northpole-ibm-ai-chip
北極の違い
NorthPole は従来の AI プロセッサとは異なります
まず、NorthPole はニューラル ネットワークをトレーニングする必要性に対処するものではなく、純粋に実行のために設計されています。
2 番目に、これは汎用 AI プロセッサではなく、推論中心のニューラル ネットワーク用に特別に設計されています。 したがって、これを推論に使用したり、画像やオーディオ クリップの内容を調べたりしたい場合は、それが正しいです。 しかし、大規模な言語モデルを実行する必要がある場合、このチップはあまり役に立たないようです。
最後に、NorthPole はニューロモーフィック コンピューティング チップからいくつかのアイデアを借用していますが、その処理ユニットは実際のニューロンによって使用されるスパイク通信をエミュレートするのではなく計算を実行するため、ニューロモーフィック ハードウェアではありません。
NorthPole は、以前の TrueNorth と同様に、計算セルの大規模な配列 (16×16) で構成されており、各計算セルにはローカル メモリとコード実行機能が含まれています。 したがって、ニューラル ネットワーク内のさまざまな接続のすべての重みを、必要な場所に正確に保存できます。
また、少なくとも 4 つの異なるネットワークを備えた広範なオンチップ ネットワーキングも備えています。 これらのネットワークの一部は、完了した計算に関する情報を、それを必要とする次のコンピューティング ユニットに伝達します。 他のネットワークは、コンピューティング ユニットのアレイ全体を再構成するために使用され、前の層の計算中にニューラル ネットワークの 1 つの層を実行するために必要なニューラルの重みとコードを提供します。 最後に、隣接するコンピューティング ユニット間の通信が最適化されます。 これは、画像内のオブジェクトのエッジを見つける場合などに便利です。 画像の入力時に隣接するピクセルが隣接するコンピューティング ユニットに割り当てられる場合、それらのコンピューティング ユニットが連携して、隣接するピクセルにまたがる特徴をより簡単に識別できます。
さらに、NorthPole のコンピューティング リソースは異常です。 各ユニットは、2 ビットから 8 ビットの範囲の低精度の計算を実行するように最適化されています。 これらの実行ユニットを確実に使用するために、変数値に基づいて条件分岐を実行することはできません。 つまり、ユーザー コードに if ステートメントを含めることはできません。 この単純な実行により、コンピューティング ユニットごとに大規模な並列実行が可能になります。 2 ビット精度で、各ユニットは 8,000 を超える計算を並行して実行できます。
サポートソフトウェア
これらのユニークな設計のため、NorthPole チームは、各層が正常に動作するために必要な最小レベルの精度を計算する独自のトレーニング ソフトウェアを開発する必要がありました。 チップ上でニューラル ネットワークを実行することも、比較的珍しいプロセスです。
ニューラル ネットワークの重みと接続がオンチップ バッファーに配置されると、実行には外部コントローラーが実行したいデータをアップロードし、実行の開始を指示するだけで済みます。 他のすべては CPU なしで実行されるため、システム レベルの電力消費が制限されます。
NorthPole テスト チップは 12nm プロセスで製造されていますが、これは最先端の技術からははるかに遅れています。 それでも、彼らは 220 億個のトランジスタに 256 個のコンピューティング ユニットを搭載し、それぞれに 768 KB のメモリを搭載することに成功しました。 このシステムを、同様のプロセスで構築された Nvidia の V100 Tensor Core GPU と比較すると、NorthPole は同じ消費電力で 25 倍の計算能力を備えています。
同じ条件下で、NorthPole は最先端の GPU を約 5 倍上回るパフォーマンスを発揮します。 このシステムのテストでは、広く使用されているさまざまなニューラル ネットワーク タスクも効率的に実行できることが示されています。