アーキテクチャから見える「Cell」に流れるスパコンの血筋   

2003年6月1日




う〜ん、まいった。 後藤氏が、Cellの記事を撤回してしまったようだ。 APUに含まれるSIMDは1個。 階層構造ではないらしい。

というわけで、氏の記事が正しいことを前提に書いてある この記事も爆というわけである。 ミスを見抜けなかったたるさんも同様に爆ということだ。

というわけで、この記事は腹切り丸の部屋に移動。 記事そのものを消しても良かったのだが、 間違いは間違いという事で、失敗記の部屋に移動だ。 申し訳ない。




さて、分不相応なハイレベル系コラム・地球シミュレータネタが2回続いたので、 今回は一息入れたい。(たるさんのレベルで世界最速のスパコンを解説することは、 ちょっと背伸びしすぎたか?) 渾身の地球シミュレータ総合能力編は力を貯めて次回ということで、 今回は幕つなぎに時事ショートネタだ。

とは言っても、地球シミュレータで勉強した知識が生かせるネタである。 Cellと地球シミュレータとの意外な類似点について考えてみた。

☆雑誌の予測も内部並列動作メインだった。   
さて、テクニカルライタにもいろいろな方が居るが、 たるさん的にかなりお勧めなライタの一人に 後藤弘茂氏がいる。 たるさんは氏の記事を楽しみにしていて、おかげで PC Watch は一日一回必ず巡回するコースに組み込まれている。

そして、今回も期待に応えてくれた。

SCEIのPlayStation 3の心臓「Cell」の正体 〜1TeraFLOPSの処理性能 にSONYがPlayStation 3に採用する心臓部Cellの正体を予測した記事 が出ているのだ。 (また、DOS/V SPECIAL 7月号P134にも同氏の解説記事がある。)

たるさんが知る限りここまで詳細にCellのアーキテクチャを予想した記事はなく 、非常に興味深い。 また、予想とは言ってもプロのライタだから、 信頼度は当サイトの嘘八百ヨタ記事とは比較にならないだろう。

今までのCellの予測記事は、並列動作とはいっても PC用CPUに近い形式のプロセッサが数個程度入っているだけといった程度のもので、 階層構造の「か」の字も無い予想が多く、このCellチップががプレステ3を構成し、 それがネット上で結合されて(SETI@HOMEのような)スパコン同様の処理能力を発揮する というグリッド的スタイルがCellの並列性の源泉と予想する記事が多かった。 (もちろん、グリッド自体は間違いではないのだが、それがメインではないだろう。)

しかし、たるさんはこの解説に大きな違和感を感じており、 グリッドは決して万能ではなく、コンピュータの内部並列化こそ王道 という予測記事を書いたことがある。 たとえば 分散処理から集中処理へ・時代のトレンドを読む の後半部分を見ていただければわかると思う。

ところが、このWeb記事やDOS/V SPECIAL 7月号の記事は 内部並列動作がCellの基本概念であることを予想しており、 (もちろんグリッド的外部並列動作も考慮されているが、 メインは演算負荷に応じた内部増設である。) この点でたるさんの溜飲を下げるに値する嬉しい援軍だったのである。

というわけで、今日はこのWeb記事やDOS/V SPECIAL 7月号の記事を読んで、Cellの起源について思ったことを中心に考えてみよう。

☆PC用アーキテクチャとしては確かに「意表をつくアーキテクチャのオンパレード」   
上記のWeb記事を読んでいたら「マトリョーシカ」という言葉が出てきた。 教養の無いたるさんに「マトリョーシカ」は難しすぎたので、 ネットで検索してみると、 人形の中に人形が、その人形の中にさらに小さな人形が...という具合に 入れ子になった人形の事で、ロシアの有名な民芸品だそうだ。

Cellはチップの中に4つのPE(Processor Element)が組み込まれ、また更にその中に APU(Attached Processing Unit)という補助プロセッサユニットを8個搭載するという 入れ子構造になっていると予想されている。 このことからロシアの入れ子人形「マトリョーシカ」に例えられたわけだ。

Cellはミクロなプロセッサが階層毎に集合体としてまとめられ、 全体として協調並列動作することで高性能を発揮するように 設計されているらしい。

HTを搭載するPentium4が時系列処理の効率化で 実効速度を上げようとしているのに対し、 Cellは多数の小規模プロセッサを階層構造でまとめ上げ、 空間系列の並列処理で高性能を発揮させようとしていることに、 はっきりとした設計思想の違いを感じ取る事が出きる。

小規模なCPUのオンチップ並列化はPowerPC系チップで見ることが出来るが、 オンチップの並列度で見ても、 チップの並列構成に対する配慮を見ても、 パラレル・アーキテクチャをここまで推進したチップはコンシューマレベルでは 見たことがない。

Web記事に「意表をつくアーキテクチャのオンパレード」と 表現されているのも、 PC用CPUと比較した場合はまさに当を得た表現と言えるだろう。

☆スパコンとして見ると意外にリーズナブルなCellのアーキテクチャ   
ところが、Cellのアーキテクチャはまったくのオリジナル的発想 と言うわけではないようだ。

そこには、モデルとなるコンピュータアーキテクチャが存在するのである。 それは最新のスーパーコンピュータのアーキテクチャだ。 「Cell=マイクロ・スパコン」と考えると納得がいくのである。

「Cell=マイクロ・スパコン」と書いたが、それはCellの推定浮動小数点処理能力が 1TFLOPSと少し前のスパコン並だからという面も確かにある。しかし、 たるさんが一番注目しているのは演算能力ではない。 注目しているのは入れ子構造のアーキテクチャである。 Cellは処理能力だけではなく、アーキテクチャ的にスパコンをそのまま チップに焼き込んだような構成をしているからである。

Cellのアーキテクチャは確かにWeb記事に書いてある通り、 PC用アーキテクチャとはかけ離れている。 PC用CPUと比較した場合は「意表を突くアーキテクチャのオンパレードに近い。」との 表現は確かにうなずける。

しかし、たるさんはこのCellのアーキテクチャ予想図を見たとき、 まるで違和感を感じなかった。それはなぜか...

運が良いというか、わずか数週間前にたるさんは世界最速のスーパーコンピュータ 「地球シミュレータ」の現物を、しかも、 プロ中のプロの講義&解説付きで見てきたからだ。 地球シミュレータのアーキテクチャを見てきた目で見ると、 Cellのアーキテクチャはスーパーコンピュータのミニチュア版サブセット を見るような印象なのだ。 (もし地球シミュレータを見学していなかったら、 たぶんこの類似には気がつかなかったハズ。いや、ホントに強運だった!)

たとえば、地球シミュレータの階層構造とCellの階層構造を見比べてみよう。 地球シミュレータの階層構造は下記のような物だ。

階層数 階層要素 要素数
地球シミュレータ本体 1台
ノード 640個
プロセッサ ノード毎に8プロセッサ
総数5120プロセッサ
演算ユニット プロセッサ毎にベクトルユニット8個+スカラユニット1個
総ベクトルユニット数40960個
総スカラユニット数5120個
パイプライン ベクトルユニット毎に6本+スカラユニット毎に4本
総ベクトルパイプ数245760本
総スカラパイプ数20480本

ではCellの階層構造はどうなっているのであろうか?  上記のWeb記事を参考文献にして示してみよう。

階層数 階層要素 要素数
Cell本体 1チップ
PE(Processor Element) チップ毎に4プロセッサ
APU(Attached Processing Unit)
PU(Processing Unit)
PE毎にAPU8個+PU1個
総APU数32個+総PU数4個
パイプライン APU毎にSIMD-FPU4本+SIMD-IU4本
総SIMD-FPU数128本
総SIMD-IU数128本
(ただしAPU分だけでPU分の本数は加えていない)

引用元: http://pc.watch.impress.co.jp/docs/2003/0529/kaigai01.htm

地球シミュレータ用CPUは1プロセッサ1チップだ。Cellでは1プロセッサ4PEだ。 だから、この表はCell1個を地球シミュレータの1ノードと考えるとわかりやすい。 各要素数のスケールこそ違うが、 入れ子式階層構造の対応がピタリと一致することがおわかり頂けるだろう。

また、Cellはチップ内にオンチップネットワークインターフェイスを持っているが、 地球シミュレータもノード毎に独立動作可能なRCU(リモートアクセス制御機構)という ネットワーク結合網用の専用ハードウエアを装備している。 これも、Cell1個を地球シミュレータの1ノードと考えるとピタリと符合する。

さらに、まだ類似点はある。 CellはCell同士を結合して演算パワーを高められる。 その場合、最重要なのはスケーラビリティーの確保である。 このため今までのPC用CPUと異なり、Cellは スケーラビリティーの確保に非常に力を入れている。 (PC用CPUではそんな概念はゼロだ。わずかにAMDのOpteronで考慮されている程度。)

ところが、次回の地球シミュレータ記事でアップする予定だが、 スケーラビリティーの確保はパラレル方式のスパコンでも最重要課題 なのである。

違う点は、地球シミュレータがベクトルパイプラインをメインに 使用しているのに対し、CellではSIMDを使用していること。 そして、整数演算リソースと浮動小数点演算リソースの比が、地球シミュレータでは 大きく浮動小数点演算に偏っているのに対し、Cellではほぼ等量であること、 CellはローカルメモリをAPU毎に128K持っていることの3点である。 1) (もちろん、マシンスケールも全く違うが...地球シミュレータは世界最速スーパーコンピュータだからね。比較するのはCellがかわいそう。)

CellのパイプラインがSIMDであることには理由がある。 たるさんは地球シミュレータを見学してきたばかりなので、 ベクトル方式の地球シミュレータを例に挙げたが 現時点でのスパコン界の主流はスカラパラレル方式である。 (余談だが、スカラパラレル方式がスパコンのアーキテクチャとしては 最善ではないことは、地球シミュレータが証明したが...)

そしてCellの開発にはスカラパラレル方式の信奉者であるIBMが1枚噛んでいる。 たとえば、IBMはTOP500の前チャンピオンASCI Whiteというスカラパラレル機を 開発しているし、ASCI Blue-Pacificといった別のスカラパラレル機も製作している。

つまり、スカラパラレル機の経験値が高いIBMが、Cellにスカラパラレル的要素を 付け加えてくるのは当然と言えば当然なわけだ。 (たるさんが実機を見たスパコンが地球シミュレータであったためベクトル方式の スパコンと比較したが、比較対称がスカラパラレル方式のスパコンならば Cellはもっとスパコンに似て見えるだろう。)

☆Cellの血筋:アーキテクチャ的にもマイクロ・スパコン   
と言うわけで、上記のWeb記事等を参考にCell開発者の発想の原点、 つまりCellの起源について「たる流に」推定することが出来た。 (余談だが、こんな記事をWebでタダで読めるとは本当にありがたい時代に なったものだ。もちろんDOS/V SPECIAL 7月号は金を出して買った訳だが...)

Cellの血筋とは、本家SCEIと東芝のプレステ2の血筋より IBMのスカラパラレル方式スパコンの血筋が強く作用して発生したものだろう。 いくら技術が合理性から進化するとはいっても開発者は人間であり、 そこには各企業の企業文化が生き続けているからだ。 そう考えれば、パートナー企業が決まった段階で Cellのアーキテクチャは生まれるべくして生まれたとも考える事ができる。

CellはPC用アーキテクチャとは無縁なアーキテクトの手による作品と思われる。 (例えばスパコンASCI Whiteでも要素となるプロセッサには Power3プロセッサを使用している。だからといって、 木を見て森を見ない立場のPC用CPU設計者であれば Cellの概念には到達するのは難しいだろう。)

それよりは、スカラパラレル方式スーパーコンピュータのグランドデザイン に造詣の深い技術者の流れから派生した作品ではないだろうか?2)

Cell、それは処理能力が1TFLOPS3)だからスーパーコンピュータの マイクロプロセッサ版と呼べるというだけに限らない。 アーキテクチャが最新スーパーコンピュータを模して作られているからこそ、 スパコンのサブセット版つまり「マイクロ・スパコン」と呼べるのである。

ひょっとしたら近い将来、多数のCellを並列接続したスパコンが地球シミュレータと 最速の座を競うなんて時代が来るのかもしれない。



1)
演算リソースの比が整数演算と浮動小数点演算で等量なのは Cellの用途を考えれば納得できる。 地球シミュレータで演算リソースが大幅に浮動小数点演算寄りなのは、 それが科学技術計算用だからだ。

また、地球シミュレータのメモリアクセスのように 全プロセッサ同時並行動作可能などという超強力バンド幅 (なんとノード内の総バンド幅は256GB/s!)を持つ 共有メモリは、コスト上の制約でCellのようなゲーム用プロセッサでは 組めないと予想される。 このため、ローカルメモリを持っているのは苦肉のバンド幅対策なんだろう。 ローカルメモリならば、それほどコストをかけずに 大きなバンド幅を得ることが出来るからだ。

科学技術計算で同じ事をやったらメモリ容量が不足して 話にならないだろうが、Cellでの用途は科学技術計算と異なり演算データ量が それほど多くないから128Kあれば何とかなると考えているのだろう。

ちなみに、外部メモリもバンド幅重視の設計思想はスパコンと同じで、 Rambusの次世代メモリ方式Yellowstoneでバンド幅を稼いでいる。

2)
というわけでスパコン界の流れをワッチすればCellの行方は自ずと 知ることが出来るのでは無かろうか?

もっとも、地球シミュレータの成功から予想するに、CellのSIMD-FPUは 本数を減らしてでもベクトルユニットで置き換えた方がさらに 成功するのではなかろうか?とたるさんは考えている。 (Cellのメイン用途がゲームとなれば尚更だ。) もっとも、パートナーの主義主張を考えると難しいだろうが...

3)
もっとも、同じ1TFLOPSとは言っても演算精度が全然違うから、 スパコンでの1TFLOPSとは同等には比較できない。 本物のスパコンはやはりスーパーなのだ。