これまで何度も何度もみてきたことは、プロセッサ、というより 1 つの LSI
に詰め込める演算器の数は、 LSI につけられる I/O ピンの数よりはるかに速
く増えた、ということです。 15 年前には1チップのトランジスタの数は 100
万、パッケージのピン数は 2-300 程度でした。しかも、 I/O の動作クロック
はプロセッサ自体と基本的には同じでした。しかし、今は億を超えるトランジ
スタが載るのに、パッケージピン数はせいぜい 1000 です。しかも、I/O ピン
の動作クロックは内部ロジックよりも遅くなっています。このために、メモリ
が別にある限り、メモリアクセスに対して非常に沢山演算しないと多数のトラ
ンジスタを有効に使えないわけです。
考えてみるとメモリが別にあるからそういう問題が起こるわけで、プロセッサ
とメモリを同じチップにしてしまえばいいじゃん、というのが
Processor-in-memory の考え方です。これはこの 10 年ほどにいろんなところ
で結構な予算がついたプロジェクトがあったはずなのですが、今のところもの
になったものはありません。
理由は簡単で、速度がでるプロセッサと DRAM を同じダイにいれようとすると、
DRAM の集積度が汎用 DRAM よりもずっと下がり、しかもシリコンの面積当り
のコストも高いのでメモリのビット単価が 2桁程度上がってしまうからです。
典型的な例が IBM BlueGene/L のプロセッサで、4MB の L3 キャッシュがチッ
プの結構な面積を食っています。今、 1GBの DRAM モジュールは 1万円で
すから、BlueGene/L チップ内蔵 DRAM のビット単価はチップ価格が 1 万円だっ
たとしても 100 倍以上です。つまり、システム全体の価格に対してメモリコ
ストが極度に少ない、例えば 1 ペタフロップスに対してメモリは 100 GB で
いいとかいったシステムでなければ意味がないわけです。
BG/L チップのダイ写真。下半分が L3 キャッシュとその制御回路。
例えば流体計算の場合、 100 GB メモリではせいぜい の格子しか
切れないわけで、実用的な意味はありません。
逆に、基本的には DRAM のプロセスで、遅くてもいいから論理回路を、という
方向はまだ可能性がありますが、これの問題はそんな注文を請け負ってくれる
半導体メーカーがない、ということです。
今後可能性があるのは貫通配線を使って別に作った論理 LSI とメモリ LSIを
非常に沢山の配線でつなぐ技術でしょう。これは沢山のメーカー、大学その他
で活発に研究されており、向こう数年くらいで実用化が進むものと思います。
例えば 2-3万本の配線を出して 2GHz 程度で動作させれば、 5TB/s 程度のバ
ンド幅を実現できますから、 1Tflops 程度の古典的なベクトル計算機が実現
できることになります。 1 チップで 1 Tflops というのはトランジスタの数
としては容易で、特に実現困難な点はありません。これは Processor in
Memory ではなくて、別のチップがのっかるので Processor On Memory とでも
呼ぶことができるでしょう。
但し、この場合に問題になるのは、この、チップ1つで 1 Tflops のシステム
を並列に使うにはどういうネットワークでつなぐか、ということになります。
チップの外に線を出して、しかもある程度の長さがとれるようにしよう、と思
うと、例えば PCI-Express の次世代規格で想定されている 5GHz の線を多く
て 50本、という辺りがせいぜいで、この時には 30GB/s程度にしかなりません。
基板内であれば 2-3 GHz を 500本、というのはできなくはないと思われ、こ
の時には 200GB/s 程度までいけます。 1 Gflops の機械を GbE でつなぐくら
いの感じになるので、まあ、全然使えないわけではない、というくらいでしょ
う。
もっとも、この速度に対して 4 ポートや 8 ポートのルータチップを作って、
数千とか数万チップまでスケールできるネットワークを組む、というのは
あまり現実的ではありません。ネットワークはもう少し速度を落としたいとこ
ろです。
貫通電極は ザイキューブ 等日本が技
術開発をリードしている領域であり、次世代スーパーコンピューターの基礎と
なりえる技術と思います。現在は携帯機器等用の開発が主なようですが、 HPC
に限らず通常のデスクトップ計算機やサーバでも確実に性能向上につながる
ものであり、早めに手を出してものにしたところが勝ち、という気がします。