GTC 2015の記事一覧

【レポート】GTC 2015 - DDNのバーストバッファテクノロジ
【レポート】GTC 2015 - Deep Learning用のCUDAライブラリ「cuDNN」
【レポート】GTC 2015 - GPUはどの程度エラーするのか?
【レポート】GTC 2015 - Deep Learningを理解する(後編)
【レポート】GTC 2015 - Deep Learningを理解する(中編)
【レポート】GTC 2015 - Deep Learningを理解する(前編)
【レポート】GTC 2015 - NVIDIAの新製品発表とDeep Learning
【レポート】GTC 2015 - Baidu(百度)のDeep Learning
【レポート】GTC 2015 - GoogleのDeep Learning
【レポート】GTC 2015 - Deep Learning一色となった基調講演
【レポート】GTC 2015 - NVIDIA、7TFlopsの演算性能を実現したハイエンドGPU「Titan X」を発表

米国の次期フラグシップスパコン「Summit」はヘテロ構成

GTC 2015においてNVIDIAのTesla関係のCTOであるSteve Oberlin氏がCPUとGPUを組み合わせるヘテロなHPCと、それに対してNVLINKがどのような効果を持つかについて発表を行った。

次の2つのグラフは、並列化可能な部分が98%のケースと60%のケースで実行時間がどうなるかを表したもので、一番上はXeon CPU 1個とGPU 1個、2番目はXeon Phi 2個、3番目はXeon CPU 1個だけで処理した場合の計算時間を示している。なお、Xeon PhiのCPUとしての能力はXeonの1/4と想定している。この条件でAmdahlの法則に基づいて全体の処理時間を計算したもので、実測ではないと思われる。

棒グラフの緑の部分がCPUで処理する並列化できない逐次処理の部分、青の部分は並列化が可能な部分である。98%が並列化可能なケースではCPU+GPUと2Xeon Phiは内訳は違うが、合計では同程度の実行時間になっている。1CPUは98%の並列部分の逐次実行に時間がかかるので、全体の処理時間は非常に長くなっている。

一方、60%だけが並列化可能なケースでは、下のグラフのように、Xeon Phiは並列化できない部分を1/4の速度のコアで処理することになるので、緑の部分が非常に大きくなり、青の部分は非常に小さいが、全体の処理時間は長くなってしまう。

このように見て行くと並列度が高い場合はCPU+GPUと2Xeon Phiは同程度の処理時間であるが、並列化可能な部分が減ると、CPU+GPUの優位が目立ってくる。つまり、高性能CPUだけでは並列部分の処理が遅く、Xeon Phiのように小型で性能の低いコアを多数集積するアーキテクチャでは、逐次実行の部分の処理が遅くて性能が上がらない。逐次処理に特化した強力なCPUと並列処理に特化したGPUを使うヘテロな構成がベストという主張である。

ヘテロな構成は、プログラミングが複雑になる。CPUとGPUの間でデータの受け渡しが必要となり、これがオーバヘッドとなるという問題があるが、原理的にはそれぞれに特化した処理ユニットを持つ方が性能が高いというNVIDIAの主張は正しい。

左は98%が並列実行できるプログラムの1CPU+1GPUでの実行時間。右は、並列実行できる部分が60%のケース。3本の棒グラフは上から、1CPU+1GPU、2Xeon Phi、1CPUのケース。緑は逐次実行の時間,青は並列実行の時間

ここからは、NVIDIAの宣伝モードで、Tesla K80の宣伝であった。K80はGPU 2チップを搭載して、K40の2倍のCUDAコア数を持ち、2倍弱の2.9TFlopsのピーク性能を持つ。そしてそれぞれのGPUに12GBのGDDR5メモリを搭載するので24GBのメモリを登載する。仕様としては2倍性能、2倍メモリが売りであるが、技術的には、K40 2台を1枚のボードに載せたというもので、2倍の実装密度で、消費電力は250W→300Wとわずか20%の増加に抑えているというところがポイントである。

GK210を2チップ使っているので、2x FasterとDouble the Memoryは当然で、技術的には2倍の実装密度と250W→300Wと20%の電力増に抑えられているところがポイント

そうは言うものの、2倍の実装密度、2倍の性能は効果があり、次の図に示すように各種のアプリケーションで平均的には、CPUオンリーの実行と比較すると10倍の性能が得られている。

E5-2697 v2 CPUオンリーとK80追加で、アプリによってばらつきがあるが、1.5倍から13倍の性能向上が得られている

ということでNVIDIAのアプローチは、レーテンシ最適化(単一スレッドを速く実行できる)CPUとスループット最適化(単一スレッドの実行は遅いが、多数のスレッドを並列に処理できるため、同じ時間ではより多くのスレッドを実行できる)のGPUシステムを接続する形となっている。そして、両者の接続は、現在はPCI Expressであるが、次世代では、より密な接続ができるNVLINKを使う。

レーテンシ最適化したCPUとスループット最適化したGPUを密に接続するのがNVIDIAのアプローチ

このアプローチで問題になるのが、両者のメモリが別個になっており、プログラミングが複雑という点である。この状態はCUDA5.5で次の図の右側のように改善された。物理的にメモリが別個ということは変わっていないのであるが、メモリに付けられた番地は統一されており、番地だけをみれば、どちらのメモリであるかが分かるようになった。これを「Unified Memory」と呼んでいる。

Unified Memoryはポインタを渡せば、どこをアクセスすべきかが分かり、実際のメモリアクセスをライブラリで隠すようにすれば一様にアクセスすることができるが、やはりメモリは分かれている。

CUDA5.5からは、CPUとGPUメモリに共通に番地が振られるUnified Memoryとなった

そこで登場するのがNVLINKである。まず、NVLINKは、現在使われているPCIe経由の転送に比べて5倍高速で、80GB/sのバンド幅をもっている。そして、伝送に必要なビットあたりの消費電力もPCIeの1/3と高いエネルギー効率となっている。

このスライドには書かれていないが(Voltaでサポートと言われる第2版のNVLINKからは)CPUとGPUメモリ間のキャッシュコヒーレンシを維持する機能を持つ。これにより、CPUとGPUのメモリがCPUからでもGPUからでも区別なくアクセスできるようになる。

NVLINKはPCIeの5倍のバンド幅を持ち、消費電力は1/3。これでCPUとGPUのメモリを繋ぐ

ただし、これにはCPU側がNVLINKをサポートする必要がある。しかし、現在ではIBMのPOWER9がサポートを表明しているだけで、IntelやAMDのCPUでは、この機能は利用できない。その場合は、次の図のようにNVIDIAのGPUの間はNVLINKで繋ぎ、CPUとはPCIeで繋ぐことになる。しかし、次の図に示すように、PCIe接続と比較すると、かなりの性能向上効果が得られるという。

NVLINKを持たないCPUの場合は、GPU間だけのNVLINK接続となるが、PCIeでの接続と比較すると1.25倍から1.5倍の性能向上が得られる。GPU間の通信が多い3DFFTでは2.25倍の性能向上が得られている

GPU間の接続は、次の図のように2個、3個、4個の接続ができる。これらの構成ではCPUとの接続はPCIeであり、どこのCPUでも使える。

CPUとの接続にPCIeを使う場合は、どこのCPUでも使える。GPU同士は、右の図のように2個、3個、4個の接続が可能である

米国は、「CORAL(Collaboration of Oak Ridge、Argonne、and Livermore)プロジェクト」で次期スパコンの調達を進めているが、Oak Ridge国立研究所とArgonne国立研究所はPOWER9とNVIDIAの次々世代のVolta GPUをNVLINKで接続した計算ノードを使うスパコンを選択した。ノードのピーク演算性能は40TFlopsを超えるという。この計算ノードは512GB以上のメモリを搭載し、800GB以上のNVRAMを搭載する。

Oak RidgeのSummitスパコンでは、この計算ノードを約3400ノード使う。従って、Summitスパコンのピーク演算性能は130PFlopsを超えるという計算になる。

米国の次期フラグシップスパコンとなるSummitでは、IBMのPOWER9 CPUとNVIDIAのVolta GPUをNVLINKで接続する計算ノードを使う

POWER9とVoltaを組み合わせるヘテロノードとすることで、次の図に示すように、CPUオンリーの場合と比べると2倍から12倍強の性能が得られるという。

性能見積もりでは、CPUオンリーと比べるとQBox以外の科学技術アプリでは、 12倍前後、スループットベンチマークでは3倍から12倍の性能

まとめとして、「ヘテロ構成の計算ノードは強力で効率が高い。NVLINKは高速で十分な性能改善効果を持っている。また、OpenPOWERは、それほど高価ではなく貴方でも買える。CORALは素晴らしい」と述べた。

ヘテロ構成の計算ノードは強力で効率が高い。NVLINKは高速で十分な性能改善効果を持っている。また、OpenPOWERは、それほど高価ではなくCORALは素晴らしい、と記述されたサマリー