Larrabeeは笑っちゃうくらいCrayっぽい

Seymore Crayおじさんは今頃天国で「そんなのワシが40年前に通った道じゃ!」とかいうてるんじゃないでしょうか。
SSEとは根本的に異なるLarrabeeのベクタプロセッサ(PC Watch)
ブロック図といい内容といい、どこをどう見ても単なるCray型のベクトルスーパコンピュータにしか見えません。時計を30年以上巻き戻したかのようです。おそらくLarrabeeのアーキテクトはGPUが単なるベクトルプロセッサと化したのを見て、徹底的にベクトルスパコンの知見を取り入れようとしたのでしょう。
ただ、何もかもが当時と同じ訳ではありません。例えばCrayの時代では、演算器の速度を稼ぐために深くレイテンシの長いパイプラインが使われていました。そのため、コンパイラでのコード生成はそのレイテンシを隠すことに気を遣う必要がありました(基本的にベクトル長を稼ぐことと、パイプライン・チェイニングを意識することでやります)。Larrabeeの場合はふんだんにトランジスタが使えるので演算速度は素直に並列度で稼ぎます。コンパイラは演算器の並列幅、いわゆる「ストリップマイニング長」の方をより重視したコード生成になるでしょう。いずれにせよ、ここまで旧来のCray型スパコンに近いと、当時から今までずっと研究されてきたコンパイラの技法は全部きれいに突っ込むことができるはずです。CUDAのようなものを使わなくても普通のCでそれなりにベクトルプロセッサ向けのコードを吐けるようなコンパイラはきっとインテルが提供するだろうと見ています。もちろんカリカリにチューンしたければOpenCLを使えと言うことになるのでしょうが。
当時と今とで一番違う点は、メモリです。Crayのメモリは凝っていました。いわゆるバンクインターリーブとパイプラインを使って、連続したアドレスに対するアクセスはもちろん、いわゆる「ストライドアクセス」=等間隔に間をあけたアドレスに対する連続アクセスでもそこそこ性能が出るようになっています。後に出たCray型スパコンのうち、一番メモリ周りが凝っていたのは日立のSシリーズだと思います・・・あれはどんなアクセスをしても高い性能が出るようにメモリが構成されていました。今現存する唯一のCray型スパコンであるSX-9でも、メモリ周りは特注のようです。ですがコモディティ部品の固まりであるPCでは、メモリに凝ることはできません。あいかわらずSDRAMですから、連続アクセスでしか性能が出せません。しかも、たとえデータ配置とアルゴリズムの工夫でメモリアクセスが連続アドレスに揃えられたとしても、Larrabeeはおそらくオフチップのデータ転送性能の絶対値が、演算性能に対して大幅に不足してくると思います。もちろんキャッシュを使ってブロック化すればいいんですが、それとて多くのアルゴリズムでは限界がすぐ来るでしょう。結局、データ供給が足を引っ張って、なかなか思うように性能が出ないことに、プログラマコンパイラ屋もしばらくは悩まされるんじゃないでしょうか。
・・・と思っている、というか心配しているんですが実際どうなんでしょうかね。インテルがまだ隠し球を持っているんじゃないかと、密かに期待しているんですが・・・・全くのあてずっぽですけど、RDRAMの再来を狙うとかね・・・(本気であてずっぽなので、もし当たったら誰かほめて下さい)