NVIDIA Tesla K20/K20X GPU アクセラレータ アプリケーション パフォーマンス テクニカル ブリーフ
K20 GPU2 個に対するスピードアップ NVIDIA は Fermi アーキテクチャ GPU の発表により パフォーマンス エネルギー効率の両面で飛躍的な性能向上を実現し ハイパフォーマンスコンピューティング (HPC) の世界に変革をもたらしました また 実際に GPU の性能を効率的に引き出すための並列プログラミング モデル CUDA を提供し C C++ Fortran といった業界標準のプログラミング言語を基に拡張命令を追加し 容易な並列プログラミング環境を実現してきました そして今 HPC 業界をさらに進化させるアクセラレータとして Tesla K20/K20X GPU が新たに登場しました 革新的な Kepler アーキテクチャを採用し コンピューティングのエネルギー効率の基準値を書き換えるとともに SMX Hyper-Q ダイナミック並列処理などの画期的なテクノロジを搭載し アプリケーションのパフォーマンスを 1のスケールまで高めることができます SMX: 消費電力あたりのパフォーマンスが 3 倍 新登場の SMX は革新的なアーキテクチャに基づき 高効率で高いパフォーマンスが発揮できるように根本から再設計されました SMX を採用した Tesla K20/K20X アクセラレータは 業界最高クラスの演算性能を備え Tesla K20X の場合には 浮動小数点演算性能の理論値が単精度で 3.95 テラフロップス 倍精度で 1.31 テラフロップスに及びます 計算効率の面でも 行列乗算の例では 93% と過去に類を見ないレベルを達成しています テラフロップ倍精度パフォーマンステラフロップ 1.5 (DGEMM) 3.0 単精度パフォーマンス (SGEMM) 1.0 2.0 0.5 1.22 1.0 2.9 0.17 0.43 Xeon E5-2687W Tesla M2090 (Fermi) Tesla K20X 0.35 Xeon E5-2687W 0.89 Tesla M2090 (Fermi) Tesla K20X Hyper-Q: 従来の MPI コードを簡単にスピードアップ 従来の MPI コードは基本的に CPU コア用として書かれていて 殆どの場合 GPU をフルに利用できるだけの作業量が生成されません 各 MPI プロセスに より多くの作業負荷を割り振るようにコードを書き換えれば GPU をフル活用することも可能ですが それは開発者にとって大きな負担になります Hyper-Q の機能により 小規模から中規模の作業負荷を持つ MPI プロセスを最大で 32 個 ひとつの GPU 上で同時処理させることが可能で 効率化のための開発者の負担が大幅に削減されます ここでは GPU では取り扱いにくいとされていた CP2K というコードを実例として Hyper-Q の力をご紹介しましょう CP2K は 広く利用されている MPI ベースの量子化学コードです Hyper-Q を使用すると ひとつの共有 GPU で 16 本の MPI ランクを実行した場合 そのパフォーマンスは Hyper-Q なしの場合に比べて倍以上になりました 2 15 倍 1 5 倍 CP2K- 量子化学 K20(Hyper-Q オン ) K20(Hyper-Q オフ ) 0 5 10 15 20 GPU 数 2.5 倍
相対的なソートパフォーマンス ダイナミック並列処理 : 並列プログラミングをシンプルに ダイナミック並列処理では GPU が CUDA カーネルの実行時に その実行中のカーネル内部から GPU 自身の新たなタスクを生成するという方法で CPU に頼らず 自律的に GPU を動作させることができます シンプルなコンセプトですが とてもパワフルな手法で 従来難しいと言われていた分割統治法などのようなアルゴリズムで GPU プログラミングを容易にし 大きな効果を発揮します よく知られたソートのアルゴリズムである クイックソート にダイナミック並列処理を適用し その能力を見てみましょう 結果として コードの行数を半減させた上に パフォーマンスを倍増することができます 3 倍 2 倍 1 倍 クイックソート 動的並列処理なし動的並列処理あり 0 5 10 問題サイズ ( 百万要素 ) 2 倍 科学技術計算を最大で 1に高速化 現在 GPU アクセラレーションの高性能を享受しているアプリケーションは数百種類もあり 科学や工学の広い分野がカバーされていますが その数はされに増え続けています 過去 1 年間だけでも CUDA で高速化されたアプリケーションの数は 60% も増加しました Sandy Bridge CPU 搭載のサーバに Tesla K20 GPU アクセラレータを追加すると CUDA 対応アプリケーションのスピードは一般的に 1程度加速されます さまざまな科学分野の代表的なアプリケーションについて 単一ノード上のパフォーマンスをベンチマークした結果を以下に示します Sandy Bridge CPU に対する Tesla K20X のパフォーマンス 数値計算 MATLAB (FFT)* 物理学 Chroma 地球科学 SPECFEM3D 分子動力学 AMBER 倍 5. 1 倍 15. 2 倍 CPU システム : デュアルソケット E5-2687w GPU システム : デュアルソケット E5-2687w+Tesla K20X GPU 2 個 * MATLAB の結果発表 i7-2600k CPU 1 個と Tesla K20 GPU 1 個を比較
CPUx2 に対する相対性能 前述のアプリケーションのうち 3 種類についてもう少し詳しく見てみましょう Chroma: 高エネルギー 核物理学 Chroma は 物質とエネルギーの基本的な性質について理解をより深めるため 物理学の標準理論と異なる理論を検証する際によく用いられます 次のグラフは 2 ソケット CPU に Tesla K20X GPU アクセラレータを 1 個あるいは 2 個追加した場合に パフォーマンスがどの程度上昇するのかをまとめたものです 2 格子規模 24 3 x128 BiCSTAB ソルバ 18. 16 倍 14.6 倍 12 倍 9. 8 倍 7.5 倍 1. CPUx2 M2090x1 M2090x2 K20Xx1 K20Xx2 CPU システム :2 ソケット E5-2687w GPU システム :2 ソケット E5-2687w+Tesla K20X GPU 2 個 (64GB/ ノード ) SPECFEM3D: 地球科学 SPECFEM3D は 地震活動の原因となる現象について深く理解し 潜在的な様々な危険性について調査や評価を行い その構造的な対策を構築するために用いられます このコードは GPU に対応する前の 2008 年に ゴードン ベル賞を授与されています つまり もともと高度にチューニングされていたコードを GPU でさらに高速化したわけです
CPUx2 に対する相対性能 CPUx2 に対する相対性能 16 倍 256x128 3D 空間離散化 12 倍 12.8 倍 8 倍 9.3 倍 8.8 倍 5. 1. CPUx2 M2090x1 M2090x2 K20Xx1 K20Xx2 CPU システム :2 ソケット E5-2687w GPU システム :2 ソケット E5-2687w+Tesla K20X GPU 2 個 (64GB/ ノード ) AMBER: 分子動力学 分子動力学 (MD) は フェムト秒からミリ秒という時間スケールで 生物学的あるいは化学的な系の原子レベルでの振る舞いを研究することを可能にします MD シミュレーションに対応したソフトウェアパッケージは数多くありますが そのなかでも特によく利用されているのが AMBER です AMBER を Tesla K20X GPU アクセラレータで動作させると Tesla M2090 GPU に対して最大で 80% 程度も処理が高速になります 1 SPFP-JAC_production_NVE 8 倍 7.1 倍 8.2 倍 6 倍 4.6 倍 3. 2 倍 1. CPUx2 M2090x1 M2090x2 K20Xx1 K20Xx2 CPU システム :2 ソケット E5-2687w GPU システム :2 ソケット E5-2687w+Tesla K20X GPU 2 個 (64GB/ ノード )
シングル CPU のみのノードに対する相対速度 大規模クラスタでの GPU の利用とアプリケーションの高速化 世界各地にある大規模クラスタ システムでも GPU を導入しトータルの処理能力を向上させようという動きが広がっています Top500 リストにランキングされたシステムのうち GPU による高速化に対応したシステムは 2011 年 6 月から 2012 年 6 月で 400% も増加しました GPU による高速化に対応しているか否かにかかわらず ノード数の増加に対してスケーリングするコードを設計することは難しい作業になります GPU による高速化に対応したアプリケーションは ひとつのノードに多くの並列作業を割り当てて並列度を高め MPI を使って GPU の作業負荷を配分することができるため 多くの場合に スケーリングしやすくなります WL-LSMS: 材料科学 WL-LSMS は 原子レベルやナノスケールで物質の磁気的な振る舞いをシミュレーションするアプリケーションで 高効率な電動モーター 発電機 磁気記憶装置に必要となる軽量で強力な磁気部品の設計に使用されます 2009 年にゴードン ベル賞を授与されたことからもわかるように WL-LSMS は もともと高度にチューニングされていたコードであり GPU によりさらに高速化されたわけです 4 鉄 (Fe)32 原子からなるアンサンブル 3 Cray XK7 -Tesla K20X Cray XK7- CPU 2 6 倍 1 0 20 40 60 80 100 120 140 160 180 200 ソケット数 QMCPACK: 材料科学 QMCPACK は 物性物理学 材料科学 化学の分野で 従来よりも物理的精度の高い手法で新たな知見を得ようと考える研究者によく使われるアプリケーションです 取り扱う電子の数が 200 あるいはそれ以上に及ぶ大きな系についてシミュレーションを行う場合 ひとつのシミュレーションを行うために要する時間は 従来は 12 時間以上必要でしたが GPU の利用により 3 時間程度に短縮できるようになりました
計算効率 1500000 Cray XK7 -Tesla K20X Cray XK7- CPU 3x3x1 のグラファイト 1000000 500000 0 0 500 1000 1500 2000 2500 計算ノード数 NAMD: 分子動力学 NAMD は Charm++ 並列プログラミング モデルで書かれた分子動力学のシミュレーションパッケージで 無償で利用することができます 名前の由来は Not (just) Another Molecular Dynamics( 単なる分子動力学プログラムではない ) です NAMD は並列処理の効率が高く 大規模な系 ( 数百万原子 ) のシミュレーションによく用いられます NAMD もまた GPU を搭載したノードの数に対して トータルのパフォーマンスがスケーリングしやすいという特長があります ns/ 日 Cray XK7 -Tesla K20X Cray XK7- CPU 100x STMV 128 256 512 768 計算ノード数 Tesla K20/K20X GPU アクセラレータに関するより詳しい情報は www.nvidia.co.jp/tesla をご覧ください