3次元アクセスが可能なプロセッサー
肝心のプロセッサーのアーキテクチャーであるが、確かにSIMDともVILWとも言えなくもないが、そうした分類の外にある独特な構成である。
まずALUが縦に、それもディジーチェーン式につながっているのが特徴である。赤い枠で囲われた単位がクラスターと呼ばれ、そのクラスターには最大64個のALUが搭載できる(ここはユーザーが自由にカスタムできる)し、そのALUにはBroadcast Busの形でスケジューラーから接続されているわけで、その意味ではSIMDである。
つまりスケジューラーがある命令を発行すると、それがBroadcast Bus経由ですべてのALUに伝達され、一斉に処理を行なうことになるからだ。64個のALUなら64-wide SIMDと言えなくもないのだが、大きく異なるのはデータはディジーチェーン式になっていることだ。
つまりALU1の結果がALU2に入り、その結果がALU3に入り……と続くわけで、一連の処理が一通り終わるまでN(N=ALUの数)サイクルかかることになる。しかもディジーチェーンなので、最初の1つのデータ処理が終わるときには、続くN-1個のデータが処理中ということになる。この仕組みは、汎用のSIMDというよりは限りなくDSPなどに近い。
また後で出てくるが、上の画像にあるようにシステム全体では複数のクラスターがある(その数も自由に変更できる)。この複数のクラスターは、それぞれ別の命令を実行できる。この観点で言えばVLIWに近い。あえて言うならVLIW DSPとでもいうべきなのだろうか?
この構成でもう1つ特徴的なのは、“No long interconnects or interconnect fabric”である。つまり複数のクラスターで連携させて処理する仕組みは取らないことだ。あくまで1つの処理は1つのクラスター内で完結させるという原則を貫いている。だからこそ少ないローカルメモリーでも足りる、ということなのだろうが。
ところで先に3D data structure addresingという話をしたが、なにを意味しているのか? というのが下の画像だ。
ここで横軸(例えば2×2×1024で言えば1024の部分)は、それぞれの層のネットワークの数である。最初はRGBなので×3だが、ネットワークの数としては1つである。それが次の層では40個に、その次が80個に、以下300/800/1024個に増えていくわけだ
一般論としてニューラルネットワークでは最初のうちこそデータ量が多くなるが、そこから急速に畳み込みでデータが集約されていく結果として、ネットワークの層あたりのデータは減るが、その代わり畳み込みの処理がだんだん深くなっていく。
上の画像の例で言えば、最初の層は128×128×3だが、最後の層は2×2×1024という格好になる。従来のやり方は、これを1次元アドレスに展開して処理するのだが、すると必ずしもデータが連続アクセスできないという問題がある。
これを解決するために、メモリーの2次元アクセス機能を搭載するものもあるが、最初の層では2次元アクセスが有効だが、最後の層ではあまり意味がないのは理解できるかと思う。そこでこれを3次元アクセスできるようにしたというアイディアは素晴らしい。
ただその実装を見ると、“Runtime Instruction Fork”なる聞いたこともない概念が登場しており、本当に3Dのアドレッシングが可能なのではなく、1Dないし2Dのアドレッシングモードを持つ命令を複数個自動生成して実行することで、見かけ上メモリーの3Dアクセスを行なうというあまり例のない実装になっている。
もっともこれ“fork”という言葉の使い方の意味が不明確なのであって、例えば
C=A+B
という命令を
Load A
Load B
Add A+B
Store C
という具合に単純に分解してるだけ、という可能性もある。現状特許出願中ということもあってか、もう少し時間が経たないとこのあたりの詳細は公開されそうにない。ただこれがどの程度効果的なのかは今ひとつはっきりしないが、伝統的なVLIW/SIMDではこうしたデータの扱いが得意ではなく、効率が悪化するのはその通りだ。
ところでクラスターはどう使うのか? だが、Rovieroの説明では、ネットワークの層単位でクラスターに割り振る場合と、1つのネットワーク層を複数のクラスターで分割処理する場合の両方がサポートされる。このコントロールは全部コンパイラで行なえるようになっているという。
クラスターは、ネットワークの層単位で割り振る場合と、1つのネットワーク層を複数のクラスターで分割処理する場合の両方をサポートする。問題はこれをコンパイラがうまく割り振りできるかどうか、ではないかと思う
こういう構造なので、長いインターコネクトは存在せず、クラスター同士をつなぐノードリングが唯一「相対的に長いかな」という程度。ただこちらもリングバス構成なので、(実際の配置配線の際のレイアウト次第ではあるが)あまり長い配線にはならないだろう。その意味では、FPGAなどに実装する際にも効率の良い配置配線が可能になりそうだ。

この連載の記事
-
第852回
PC
Google最新TPU「Ironwood」は前世代比4.7倍の性能向上かつ160Wの低消費電力で圧倒的省エネを実現 -
第851回
PC
Instinct MI400/MI500登場でAI/HPC向けGPUはどう変わる? CoWoS-L採用の詳細も判明 AMD GPUロードマップ -
第850回
デジタル
Zen 6+Zen 6c、そしてZen 7へ! EPYCは256コアへ向かう AMD CPUロードマップ -
第849回
PC
d-MatrixのAIプロセッサーCorsairはNVIDIA GB200に匹敵する性能を600Wの消費電力で実現 -
第848回
PC
消えたTofinoの残響 Intel IPU E2200がつなぐイーサネットの未来 -
第847回
PC
国産プロセッサーのPEZY-SC4sが消費電力わずか212Wで高効率99.2%を記録! 次世代省電力チップの決定版に王手 -
第846回
PC
Eコア288基の次世代Xeon「Clearwater Forest」に見る効率設計の極意 インテル CPUロードマップ -
第845回
PC
最大256MB共有キャッシュ対応で大規模処理も快適! Cuzcoが実現する高性能・拡張自在なRISC-Vプロセッサーの秘密 -
第844回
PC
耐量子暗号対応でセキュリティ強化! IBMのPower11が叶えた高信頼性と高速AI推論 -
第843回
PC
NVIDIAとインテルの協業発表によりGB10のCPUをx86に置き換えた新世代AIチップが登場する? -
第842回
PC
双方向8Tbps伝送の次世代光インターコネクト! AyarLabsのTeraPHYがもたらす革新的光通信の詳細 - この連載の一覧へ













