Peter Kogge教授のポジション

Kogge教授はDARPAのExascaleの委員会の委員長を務めて2008年に報告書をまとめたことで知られるテクノロジのエクスパートである。また、Graph500の委員を務めており、 Graph500で出てくるようなローカリティの少ないメモリアクセス性能が重要になるとの立場でポジションを述べた。

次の図は横軸にノードあたりのメモリアクセスレート(毎秒何回の独立のメモリアクセスができるか)をとり、縦軸にノードあたりのGTEPS性能をとったもので、性能がメモリアクセス回数に依存することがはっきりと分かる。

ピークアクセスレートとGraph500GTEPS値のプロット

Graph500で使っているBreadth First Search処理の核の部分では、それぞれの頂点のすべての辺に対して接続されている辺を読み、その接続先がすでに訪れている頂点でなければ、アトミックに頂点のレベルを変更し、訪問済みビットベクタのその頂点のビットをセットするという動作を行う。この操作のためのメモリアクセスの66%はローカリティの無いアクセスである。疎行列とベクトルの積の場合はローカリティの無いメモリアクセスが50%、Webページのランキングを行うPage Rank処理でも66%はローカリティのないメモリアクセスとなり、ランダムな飛び飛びのアクセスの性能が重要である。

Graph500のBFSと疎行列とベクトルの積、Page Rankの3つの処理のコア部分のメモリアクセスパターン。ローカリティが無い部分が半分以上

次にテクノロジの面では3Dのダイスタックが注目されている。内部的にはDDR4の10倍程度のアクセスレートが実現できそうである。現在のアクセスプロトコルは16バイトのヘッダがついており、一番短いアクセスの場合は、バンド幅の1/3がデータということになりヘッダ処理のオーバヘッドが大きい。

スタックを直列に接続することはメモリ容量の増大には貢献するが、アクセスごとのエネルギーが増える。バンド幅やアクセスレートは改善されない。

3Dスタックは、メモリのアクセスレートを10倍程度に引き上げる

まとめとして、3Dスタックはアクセスレートの点では大きな改善が得られるが、アクセスあたりのエネルギーでは良い点と悪い点がある。エネルギー消費の大きいのはSERDES(高速シリアル転送のための直並列変換回路)の部分であり、そのエネルギーの多くの部分はプロトコルの処理に使われている。スタックを直列に繋いでもアクセスレートは改善しない。

ロジックチップをメモリチップの下に付けるスタックは、メモリチャネルを増やすことが出来、かつ、使っていないSERDESのコストを除くことができる。

スタックはアクセスレートを大幅に改善するが、エネルギーに関しては良い点と悪い点がある。エネルギー消費の大きな部分がSERDESで使われ、また、データ伝送でなくプロトコル処理に使われる

NVIDIAのBill Dally氏のポジション

Bill Dally氏はNVIDIAのチーフサイエンティストとして、Exascaleのアーキテクチャを研究している。また、スタンフォード大学の教授でもある。そして、2004年にはCray賞を受賞し、その他にもEckert-Mauchly賞など多くの賞を受賞している。

今回のポジショントークは、Dally先生の個人的な意見でありNVIDIAの見解ではないという。そして、この話は本物のアプリケーションでExaFlopsの性能を20MW以内で実現することをゴールとして考えたものであるという。

HPC用のメモリの要件は、SDDRの2倍以下のビット単価、ビット当たりのアクセスエネルギーは2pJ以下。SDDR並みの密度、高いバンド幅(64GBで3TB/s以上、1GBチップで50GB/s以上)、32バイトのアクセス単位、200ns以下のアクセス時間であるという。なお、Dally先生のスライドには等号は付いていないが、イコールの場合を積極的に除外しているとは考えられないので、ここでは日本語としてより一般的な"以上、以下"を使っている。また、SDDRというのは聞かない言葉であるが、標準のDDRメモリという意味ではないかと思われる。

HPC用のメモリの要件。低コスト、低エネルギー、高バンド幅などは一般的であるが、32バイトアクセスを要求しているところが目新しい

メモリチップは96-80mm2で、中央のGPUは30mm×30mm。これを100mm×100mmの有機基板に搭載する。3Dのダイスタックより、こちらの方がコストが安いという。

信号の伝送はグランドを参照電位とするGSRを使うシンプルで低電力な伝送で、速度は25GB/sで、0.5pJ/bitの消費エネルギー。チップはすべてベアチップでダイスタックもしないし、コネクタも使わない。接続はネットワークと電源だけ。

スタックは使わず、ベアダイを有機基板に貼り付ける。コスト的にはTSVより安いという

1個のメモリチップは1GBの容量で、100GB/sのバンド幅。これは将来的には2GBと200GB/sへアップグレードする。1GBチップ内には64MBのサブユニットを8個(16個でないと計算が合わないが)あり、それぞれのサブユニットは25Gbit/s。

メモリチップは容量1GBで100GB/sのバンド幅

個々のサブユニットは一辺が2mm以下でグローバルな配線を短く保つ。64MBアレイは25Gbit/sの書き込み+コマンドと25Gbit/sの読み出しが可能で、40nsごとに1Kbitの読み出しが可能。4つの16MBバンクでRowアクティベートとプリチャージのレーテンシを隠す。

ページサイズは1kbitで、オーバフェッチは×4と連続アクセスでない場合でも無駄の少ない構造となっている。

サブユニットは1辺2mm以下とし、グローバルの配線を短くする。ワードラインも分割するなど消費電力を抑える設計

そして、25Gbit/sのシリアルインタフェースは0.5pJ/bit、カラムアクセスの場合の2mmの配線のスイッチが0.2pJ/bit、ローアクセスが0.5pJ/bitで1bitのアクセスに必要なエネルギーは1.2pJという割り振りである。

このDRAMのエネルギー予算

そして、Dally先生はモデレータではないのであるが、各パネリストのポジションを1行にサマライズした次のスライドを示してくれた。Wallach氏のサマリは最初と最後のマンガに出てきた話で、技術的なサマリにはなっていない。

Dally先生がリアルタイムで作った1行サマリ