オルタナティブ・ブログ > Planet GEEK >

社会的にアレな人に最適化されたブログ

素晴らしき人生かな?

»

 本田さんのエントリを見て「へー。Playstation 3ってスゲー」って今さらながらに思ったのだが、よくよく考えると、Playstation 3関連についてこれまでまともにニュースを見ていなかった自分に心底あきれ、 まずはCellプロセッサが何か知ろう! と思い立ったのは、こちらのCMを100回くらい見続けてもはや夜も明けようかという午前5時を回ったところだった。

 で、2度あきれたのは、このCell関連の記事、仕様をオープンソースに、などの記事はあるが、詳細なアーキテクチャに触れた記事というのが恥ずかしながらITmediaにはほとんど存在しなかった。では、と@ITを探すと、幾分テクニカルな内容に触れた記事を見つけた。が、具体的な部分には触れていないのでイメージがわきにくい。


 仕方ないのであちこちのニュースサイトを調べると、Cellは汎用的なプロセッサコア1個と、プロセッサコア8個で構成されるという。前者がPPE(Power Processor Element)で後者がSPE(Synergistic Processor Element)だ。PPEはSPEの制御とかを主に担当し、SPEは32ビット浮動小数点実数からなるベクトル演算に特化したプロセッサとのこと。で、Playstation 3では大人の事情?で8個のSPEのうち1個は予備として休ませているようだ。トータルでの単精度浮動小数点演算能力は218GFLOPSらしいけど、実質的なデータ処理を担当するSPEのそれはこちらの記事を見る限り、179.2GFLOPSとある。まぁいずれにしてもPentium 4 3.8GHzの単精度浮動小数点演算で約15GFLOPSだから、確かにすごいパフォーマンスが出そうだな。

 ちなみに、倍精度浮動小数点演算では4GHz時の場合で26GFLOPSにまで落ち込むらしい。まぁスパコンが利用されるシーンのように倍精度を使わなければならない場面がゲームの世界で本当に必要とされるのかは謎なので、とりあえずそんなに重要なポイントではない気がするけど。


 話がそれたが、このSPEのSIMD(Single Instruction/Multiple Data)ユニットは積和算を1サイクルで2演算できるとな。さらに、それが4並列で演算できると。結果、1サイクルで8演算できるということね。ふむ。

 このSPEにはそれぞれ256Kバイトのメモリ空間(Local Store:LS)がある。これ以外にデータをストアできそうな場所が見あたらないので、これはSPEにとってはメインメモリ的に振る舞うはずだ。つまり、SPE自体はキャッシュを持っていないことになる。となると、SIMDユニットとLSのバンド幅が気になるのだが、こちらの記事にある図では16B/サイクルとある。Bは多分バイトだろうから、128ビット/サイクルとなるのだろう。とすると、8演算できるので16ビット/サイクルか。


 次はメモリ周り。メインメモリは米RambusのXDR DRAMで、その帯域は25.6Gバイト/sec。これも素晴らしい。 Playstation 3ではSPEのクロックが3.2GHzだから、8バイト/サイクルとなる。ただし、これは7個のSPEとPPEでの共用のはず。となるとSPE1個あたりでは1バイト/サイクル、つまり、8ビット/サイクル程度になるはず。


 ん? ……書くのが少し恐ろしいのですが、これって1演算あたり1ビット/サイクル程度ってこと? つまり、LSから転送する場合と比べて1/16程度の速度になってしまうってこと? これって、データがLSの中に収まればいいパフォーマンスが期待できるけど、そうでなければ179.2GFLOPSなんて化け物みたいなパフォーマンスはありえないってことなのかな??


 と、ここまで書いてようやくさっきの記事の言わんとすることが見えた気がしたので、あぁすまなんだ@ITよと日比谷の方向にこうべを垂れた。


 自分が書いていることの検証も終わっていないが、とりあえず寝る。起きたらまた考えよう。にしてもCellは難しい。もっと! もっと自分に資料と真実をくれ!

●げ、これって周知だったのか。そりゃそうだよなー、門外漢の自分が気づくことを専門家が知らないわけないし。最高に恥ずかしい。


バイナリーなネールアート

こんな女性がいたら付き合いたいと思う。


スターウォーズエピソードIII

みた。まぁネタバレになるからあんま書かないが、ジェダイが弱いっちいのはまぁいいとして、シスをアメリカと読み替えながら見てみるといろいろと楽しめるな。

さてエピソードIIみるかー。


覚え書き

Linuxのクラッシュダンプ機能についてまとめたい。LKCD、netdump、diskdump、Mini Kernel Dumpってところか。

Mini Kernel Dumpについてはいいドキュメントを見つけたので、ここを皮切りに特集にするかな。

Comment(10)