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