Haswellに搭載されている各種のメモリ技術

Haswellのオンチップグラフィックスプロセサには、GT1、GT2、GT3の3つのバリエーションがあり、さらにGT3e、Crystal Wellと呼ぶテクノロジを使うモデルがある。Crystal Wellでは、Intel製の専用の128MBのeDRAMチップをL4キャッシュとして接続する。

Crystal Wellでは、128MBのeDRAMキャッシュチップを接続する

このキャッシュを使うことにより、ゲームなどのグラフィックス性能が20~75%向上するという。また、このキャッシュは汎用のL4キャッシュで、GPUだけでなく、CPUやメディアエンジンも利用できるとのことで、これらの処理でも性能向上が期待できる。

128MBのeDRAMキャッシュによる性能向上

そして、Haswellでは、トランザクショナルメモリをサポートするTSX命令が追加された。トランザクショナルメモリでは、ロックによる排他制御を行わないで、共用のメモリ資源を使ってしまう。しかし、トランザクショナルメモリ機構が、他のプロセサからのメモリアクセスが干渉しているかどうかを監視しており、干渉がなければ処理は成功、干渉があった場合は処理を取り消して再度やり直すというやり方で、共通資源のアクセスの干渉が起こらないようにしている。

このように、トランザクショナルメモリはトランザクション処理に威力を発揮する機構であると思い込んでいたのであるが、今回のIntelの発表で、科学技術計算(High Performance Computing:HPC)にも有効というスライドが発表され、少し驚いた。

6種のHPCワークロードでTSXの有無による性能を比較している。8スレッドの場合、平均で41%の性能向上が得られている

HPCの場合は、すべてのコア(あるいはスレッド)で計算を分担し、すべてのコアでの処理が終わったことを確認して、その結果を使って次の処理を始めるということが多い。この、全コアの終了を確認するという部分でロスが発生する。

前の処理があらかた終わった時点で、トランザクショナルメモリを使って、次の処理を開始してしまい、入力として使ったデータが書き変えられなければセーフ、書き変えられた場合は、前の処理が終わっていなかったのでやり直しということにすれば、全コアの全部の計算が終わるまで待つ必要はなく、より効率的に並列に計算を進めることができる。

この図に示された6種のHPCアプリケーションを、1チップの4コア、8スレッド全部を使って実行する場合、図の右端に示された6種のアプリの平均では、TSXを使うことにより性能が1.41倍に向上している。

ただし、あまり早くから後の計算を始めてしまうと、やり直しの回数が増えて逆に性能が低下することが有り得るし、入力の書き変えなどの干渉を検出できるのはL1データキャッシュに格納できるデータだけなので、入力データが多くL1データキャッシュに入りきらなくなるような問題ではうまくいかない。

TSXでHPCワークロードの処理が高速化できるというのは、「眼から鱗」であるが、実際にどの程度有効なのかは、良く分からない。また、TSXが有効なのはキャッシュコヒーレンシが維持される共通メモリのシステムで、分散メモリの大規模スパコンでは使えないので、有効性は限られるという問題もある。

IDFなどで発表されているので、このレポートでは割愛したが、コアやキャッシュの部分にも多くの改善が盛り込まれているし、グラフィックスコアやメディアエンジンもIvy Bridgeから大きく強化されている。Haswellは盛りだくさんの改善が詰まった興味深いプロセサである。