グラフ理論の処理に特化したGSPの仕組み
ということで話をGSPに戻す。GSPは巡回セールスマン問題のような複雑な処理をすることは考えていないが、計算機の世界ではこうしたグラフ的に表現される処理が多数ある。
これを効率的に実行できるようにしよう、というのがGSPである。このGSPをDSPやGPUなどと対比させた例が下の画像である。
この例で言えばNode A~Node Dが計算処理ということになる。さて、DSPやGPU、つまり左側であるがここではまずある程度のデータの塊(画像処理なら64×64ピクセルなど、そういうある程度の単位)をNode Aで処理し、その結果が1と2のバッファに蓄えられる。
それが終わったら、次にNode BとNode Cが動く。Bは1から結果を読みこんで、処理結果を3と4に、Node Cは2から結果を読みこんで、処理結果を5に蓄える。
最後にNode Dが3~5から結果を読み込んで処理し、6に吐き出す形だ。ここでネックになるのは、Aが処理を終わるまでBとCの処理が始められないし、BとCが終わらないとDが始められないことだ。
もちろん、例えば「1と2のバッファのここからここまでデータを入れ終わった」と、Node AからNode B/Cにこまめに通知すれば、Node Aが完全に0のデータを読み切って処理を終わる前にNode B/Cの処理を開始することは不可能ではないが、今度はそうした通信のオーバーヘッドが極端に大きくなりすぎる。
Node Aが64×64ピクセルの画像を4×4ピクセル単位で処理すると仮定すると、256回処理すると完了であり、仮に1回の計算が1サイクルで終了するとしても、Node Aが256サイクル稼働後に1と2に結果を吐き出し、これを受けてNode BとCが並行してやはり256サイクルかけて処理し、3~5を出力。最後にNode Dが256サイクルかけて6を出力するので、合計768サイクル必要になる計算になる。
GSPではこれをもっとスマートにできる。GSPのS、つまりStreamであるが、Stream(流れ)というように、内部のプロセッサーコア(つまりNode A~D)はもっと細切れで処理が可能になっている。
端的に言うと、Node Aが最初の1回の計算をしたら、その結果は直ちに1と2のバッファに書き込まれる。これが書き込まれたら、次のサイクルにはNode BとCが動き始め、その1サイクル後には結果が3~5に書き出される。
最後にNode Dが動いて1サイクル後に結果が6に保存されるわけで、Node Aが動き始めてから3サイクル目には最初の結果が出力されることになる。所要時間はトータルで259サイクル(3+256サイクル)で済むわけで、左の方式よりも3倍高速というわけだ。
この連載の記事
-
第775回
PC
安定した転送速度を確保できたSCSI 消え去ったI/F史 -
第774回
PC
日本の半導体メーカーが開発協力に名乗りを上げた次世代Esperanto ET-SoC AIプロセッサーの昨今 -
第773回
PC
Sound Blasterが普及に大きく貢献したGame Port 消え去ったI/F史 -
第772回
PC
スーパーコンピューターの系譜 本格稼働で大きく性能を伸ばしたAuroraだが世界一には届かなかった -
第771回
PC
277もの特許を使用して標準化した高速シリアルバスIEEE 1394 消え去ったI/F史 -
第770回
PC
キーボードとマウスをつなぐDINおよびPS/2コネクター 消え去ったI/F史 -
第769回
PC
HDDのコントローラーとI/Fを一体化して爆発的に普及したIDE 消え去ったI/F史 -
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ - この連載の一覧へ