1. 測定にあたって
ANSYS Mechanical で GPGPU の効果を測定しました。ワークロードは ANSYS Mechanical の標準問題を使用し、以下の 3 パターンを実施しまし た。 なお、本測定はサイバネットシステム株式会社と富士通株式会社が共同で実施しました。
① DMP(Distributed Memory Parallel) 測定
GPU を使用せずに CPU のみを使用した測定です。分散メモリ環境対応のプロセス並列版の Distributed ANSYS(DANSYS)で 1、2、4、8Core
並列を測定しました。測定システムは1 台のワークステーションを使用し、共用メモリ上のプロセス間で MPI 通信が使用されています。
② SMP(Shared Memory Parallel)測定
同じくGPU を使用せずに CPU のみを使用した測定です。共有メモリ環境対応のスレッド並列版の SMP ANSYS で 1、2、4、8Core 並列を測
定しました。
③ GPGPU 測定
1 台の Workstation に 1 台の NVIDIA Tesla C2070 を装着し、GPU を使用した測定です。共有メモリ環境対応のスレッド並列、かつ、GPU
対応版のSMP ANSYS で CPU の 1、2、4、8 Core から 1 台の GPU を共用して測定しました。この場合は ANSYS HPC Pack ライセンスが必要
です。
1.1 測定環境
測定日 2011 年 5 月 27 日~6 月 17 日
System Fujitsu CELSIUS R670-2 Workstation×1 台
CPU
Xeon 5677 (3.46GHz, 4 Core)×2 Socket
3 次キャッシュメモリ 12MB/CPU
メモリバス 1333MHz
メインメモリ DDR3 1333 Registered ECC DIMM×12 (48GB)
BIOS 版数 Version 6.00 R1.17.2618.C1
BIOS 設定 Hyper Thread OFF
Turbo Boost OFF
GPGPU NVIDIA Tesla C2070 Computing Processor(6GB MEM), ECC On
使用DISK 内蔵 HDD SATA Ⅱ 500GB 7.2Krpm ×2 SSD 128GB×2 OS Windows 7 Professional MPI HP-MPI 2.0 アプリケーション パッケージ ANSYS Mechanical 13.0SP2 [表 1 測定環境]
ベンチマークテスト性能情報
ANSYS Mechanical on GPGPU
HPC(High Performance Computing)分野で注目を集めている GPU コンピューティングボード(グラフィ ックスチップを利用した汎用的計算用ボード)による性能検証結果をご報告いたします。 2011/07/11 より発売するハイエンドワークステーション CELSIUS R670-2 には、本資料に掲載する GPU コンピューティングボードの搭載が可能となっています。 目次 1. 測定にあたって 1 1.1 測定環境 1 1.2 評価ワークロード 2 2. 測定結果 4 3. まとめ 5 4. 補足 6
1.2 評価ワークロード
10 本の ANSYS Mechanical の標準問題を使用しています。 有限要素モデル 概要 TEST1 モデル名:V13cg-1 Gas-Struct 解析手法と概要:過渡伝熱線形解析、荷重ステップ数 8 モデル規模:節点数 1,166,497、要素数 850,092、自由度数 1.1MDOF(1,166,497) メモリ:トータル2048MB、データベース 1200MB ソルバ:JCG(実数型、対称マトリクス) 要素タイプ:高次四面体ソリッド(SOLID87) TEST2 モデル名:V13cg-2 Engine Block 解析手法と概要:静的線形構造解析 モデル規模:節点数 2,090,143、要素数 1,329,274、自由度数 6.2MDOF(6,270,429) メモリ:トータル4800MB、データベース 3800MB ソルバ:PCG(実数型、対称マトリクス、メモリセーブ機能:Off) 要素タイプ:高次四面体ソリッド(SOLID187,CONTA174,TARGE170,SURF154) TEST3 モデル名: V13cg-3 Wing Model 解析手法と概要:静的線形構造解析 モデル規模:節点数 3,594,069、要素数 869,288、自由度数 10.7MDOF(10,782,207) メモリ:トータル3600MB、データベース 2048MB ソルバ: PCG(実数型、対称マトリクス、メモリセーブ機能:On) 要素タイプ:高次六面体ソリッド(SOLID186) TEST4 モデル名:V13ln-1 Wing Model 解析手法:固有値解析、モード数 10 モデル規模:節点数 354,578、要素数 81,925、自由度数 1MDOF(1,063,734) メモリ:トータル700MB、データベース 512MB ソルバ: PCG Lanczos(実数型、対称マトリクス、メモリセーブ機能:On) 要素タイプ:高次六面体ソリッド(SOLID186) TEST5 モデル名:V13ln-2 Wing Model 解析手法:固有値解析、モード数 100 モデル規模:節点数 175,313、要素数 39,875、自由度数 0.5MDOF(525,939) メモリ:トータル2200MB、データベース 512MB ソルバ: Block Lanczos(実数型、対称マトリクス) 要素タイプ:高次六面体ソリッド(SOLID186) TEST6 モデル名:V13sp-1 Universal Joint 解析手法:静的構造非線形解析、累積イタレーション数 17 モデル規模:節点数 144,218、要素数 99,609、自由度数 0.4MDOF(432,654) メモリ:トータル3500MB、データベース 512MB ソルバ:SPARSE(実数型、対称マトリクス) 要素タイプ:高次四面体ソリッド(SOLID187) TEST7モデル名:V13sp-2 Peltier Cooling Block 解析手法:定常伝熱‐電気連成場非線形解析
モデル規模:節点数 277,712、要素数 152,717、自由度数 0.5MDOF(555,424) メモリ:トータル7600MB、データベース 512MB
ソルバ: SPARSE(実数型、非対称マトリクス)
TEST8 モデル名:V13sp-3 Semi-Submersible 解析手法:過渡構造非線形解析、累積イタレーション数 11 モデル規模:節点数 396,795、要素数 136,867、自由度数 2.3MDOF(2,380,770) メモリ:トータル14000MB、データベース 768MB ソルバ:SPARSE(実数型、非対称マトリクス) 要素タイプ:高次四角形シェル、高次三角形シェル、高次ビーム(SHELL281,BEAM189) TEST9 モデル名:V13sp-4 Carrier 解析手法:周波数応答構造解析、周波数ポイント 4 モデル規模:節点数 332,362、要素数 222,005、自由度数 1MDOF(997,086) メモリ:トータル16000MB、データベース 768MB ソルバ:SPARSE(複素数型、対称マトリクス) 要素タイプ:高次四面体ソリッド(SOLID187,SURF154) TEST10 モデル名:V13sp-5Turbine 解析手法:静的構造非線形解析、累積イタレーション数 1 モデル規模:節点数 715,008、要素数 483,631、自由度数 2.1MDOF(2,145,024) メモリ:トータル34000MB、データベース 1024MB ソルバ: SPARSE(実数型、対称マトリクス) 要素タイプ:高次四面体ソリッド(SOLID187,TARGE170,CONTA174) [表 2 ANSYS Mechanical 標準問題の概要]
TEST5 の V13ln-2 は SMP および GPGPU 環境は標準問題ですが、V13ln-2 で使用されるブロックランチョス法が Distributed ANSYS に対応してい ない為、DMP 環境の標準問題に含まれません。従って DMP 環境は 9 本となります。また、GPGPU 環境に対応していないモデルは下記の 3 本と なるため、7 本が有効になります。 DMP 環境に伴うモデル制限 ・ TEST5(V13ln-2):ブロックランチョス法が DMP 環境に対応していない。 GPGPU 環境に伴うモデル制限 ・ TEST2(V13cg-2):解析モデルが GPGPU カードの搭載メモリに載らない。
・ TEST3(V13cg-3):PCG 用メモリセーブ機能(msave コマンド)が GPGPU に対応していない。
2. 測定結果
各ワークロードの解析結果について以下のようにグラフ化しました。1 Core の SMP 性能を 1.0 とした場合の 1、2、4、8Core の性能比をワークロ
ード毎に示しており、数値が大きいほど高い性能です。ワークロード毎に、左からSMP の 1、2、4、8 Core、DMP の 1、2、4、8 Core、GPGPU の 1、
2、4、8 Core の順に並べています。冒頭で述べたとおり、SMP および DMP は GPU を使用しておりません。
上記グラフから以下の特徴が見えます。
・ 最高性能を発揮する8 Core 並列で SMP 測定結果と GPGPU 測定結果を比較すると GPGPU の方が高速または同等です。GPGPU が SMP
よりも遅いケースはありません。
・ しかし、同様に8 Core 並列で GPGPU 測定結果と DMP 測定結果を比較すると、GPGPU は必ずしも DMP よりも高い性能を発揮しておりま
せん。DMP の性能が GPU よりも高いケースがあります。
これはGPGPU が万能では無いと言っています。GPGPU は SMP に比べるとおおむね速いと言えますが、DMP も含めて比較すると最も速い場合
もあり、遅い場合もあります。
まず、SMP 測定結果と GPGPU 測定結果を考えます。どちらもベースは共用メモリのスレッド並列です。この場合の性能は GPU を使う利得と GPU を使うオーバーヘッドのトレードオフになります。同性能になった場合は GPU を使う利得と GPU を使うオーバーヘッドが同程度であったこ
とになります。それ以上にGPU を使う利得が大きくなれば、GPGPU が SMP よりも速い事になります。一般には GPU で扱う仕事量が大きくなれ
ばなるほどGPU を使う利得は増加します。
次に、DMP 測定結果と GPGPU 測定結果の性能比較を考えます。これは GPGPU と言うよりも SMP(スレッド並列)と DMP(プロセス並列)の性能 差が原因です。プロセス並列はスレッド並列よりもハードウェア内、OS 内、アプリ内でお互いに邪魔する要因が少ないだけでなく、並列を意識 してアプリ開発するために並列スケーラビリティが良くなる傾向が一般的です。ANSYS Mechanical も SMP ANSYS と Distributed ANSYS(以下、 DANSYS)がありますが、DANSYS が並列スケーラビリティに優れているために、SMP ANSYS では性能が伸び悩んでいる場合でも DANSYS では 8 Core まで順調に性能が伸びるケースがあり、標準問題の TEST3、TEST4、TEST6、TEST7 がそれに相当します。この場合に GPGPU で性能を多少 高めても、DMP の性能を超えられない場合が生じてしまいます。
そのため、最も高い性能を得るためにはGPU を使うか、DMP を採用して GPU を使わないかの選択が必要となります。
ANSYS Mechanical において GPU を使用するか否かの選択基準を考えます。
次の図はGPGPU 性能/DMP 性能比を縦軸に、横軸に問題規模として自由度(DOF :Degrees of Freedom)をプロットしました。DOF を問題規模の
指標として採用しています。 0 1 2 3 4 5 6 7 8 9
TEST1 TEST2 TEST3 TEST4 TEST5 TEST6 TEST7 TEST8 TEST9 TEST10 性能比 SMP1C SMP2C SMP4C SMP8C DMP1C DMP2C DMP4C DMP8C GPU1C GPU2C GPU4C GPU8C
図 1 性能グラフ
SPARSE 法と CG 法の解法の違いで分類しました。性能のでるポイントは右上、即ち SPARSE 法で問題規模が大きく、自由度が 2M DOF 以上の ポイントにあると言えます。もちろんワークロードによって個体差があるので自由度は目安です。
CG 法は 1Point しかないので判断がつきません。このグラフから言えることは、少なくとも 1M DOF の大きさならば若干ですが GPU が有効な事 です。SPARSE と同様に 1M DOF を下回れば GPGPU の優位性が失われると容易に推定できます。ここで CG 法の特性を把握するために、1M DOF のモデルを作って Profiler 調査してみました。その結果、全体の Elapsed Time に対して 6.8%と小さい GPU 走行時間でした。これは CG 法
では充分にGPU 資源を使っていない事を示しており、CG 法の場合は規模が大きくなっても SPARSE 法ほどは性能が向上しないと判断します。
ここで問題なのは、CG 法で規模が大きくなると、DMP の性能も向上していくことです。CG 法のモデルリミットは 3M DOF ですが、それを超えた場
合はSMP よりも DMP の方が有利と言えます。
3. まとめ
同一ワークロードでGPU を使用した処理時間と GPU を使用しない処理時間の比較を行いました。 GPU を使用しない場合の ANSYS Mechanical
は共用メモリ環境(スレッド並列)で動作する SMP ANSYS と分散メモリ環境(プロセス並列)で動作する DANSYS の 2 種類があります。GPU を使 用する場合は共用メモリ環境(スレッド並列)で動作します。
公平性を期すために、GPU を使用しない SMP ANSYS および DANSYS の両者と、GPU を使用する場合の比較を実施しました。お客様は最も速い 処理時間をお望みであろうとの考えからです。
評価の結果、GPU を採用しても常に最も性能が高いわけではなく、最も性能が出る 8 Core 並列の比較では、GPU 無しの DANSYS が最も性能 が高い場合がある事が判明しました。
CPU 8 Core 並列で総てのケースが実行できる 6 本のうちで DANSYS および GPGPU のそれぞれが最も高い性能を発揮するのは以下のワーク ロードでした。 (単位:性能比) ワークロード SMP 性能 GPGPU 性能 DANSYS 性能 GPGPU が最高性能 TEST10(sp-5) 1.0 3.02 1.26 DANSYS が最高性能 TEST7(sp-2) 1.0 1.10 1.64 [表 3 DANSYS および GPGPU が最も高い性能を発揮するワークロード] 上表はGPU が充分に効果を発揮する場合がある事を裏付けていますが、常に効果があるとは言えないことも示しています。 0 0.5 1 1.5 2 2.5 3 0.1 1 10 100 TEST10(sp-5) TEST8(sp-3) TEST9(sp-4) TEST6(sp-1) TEST7(sp-2) TEST1(cg-1)
SPARSE
CG
Mega 自由度性能比
GPU 8
C
ore
/
DMP 8 Core
GPU
有効領域
以下にANSYS Mechanical における GPU の評価をまとめます。
GPU は性能向上に有効ですが、CPU との比較で常に優位とは限らず、CPU/GPU の使い分けが重要です。
CPU 8 Core 並列+GPU の場合に標準問題の TEST10 で、GPU を使用しない SMP ANSYS に比べて最大 3 倍、GPU を使用しない DANSYS
に比べて最大2.4 倍の性能向上が見られました。
GPU を使用しない CPU 8 Core 並列の DANSYS の方が、CPU 8Core 並列+GPU の SMP ANSYS よりも 1.6 倍高性能な場合がありました。
これにより、総ての場合でGPU が有効とは限らないと言えます。
最も高速な処理をお望みの場合には、8 Core 使用を推奨しますが、GPU の利用/非利用の使い分けが重要です。おおよその選択 基準は、SPARSE 法で自由度が 2M DOF 以上の場合に GPU 使用を推奨いたします。それ以外は DANSYS の使用を推奨します。CG
法では自由度が1M DOF 以上の場合に GPU 使用を推奨いたしますが、GPU の効果は SPARSE 法ほど大きくないとお考え下さい。
ただし、GPU 利用にはモデルリミットがあり、C2070 の場合は SPARSE 法で 6M DOF、CG 法では 3M DOF までで、それ以上は対応し ておりません。CG 法、SPARSE 法でモデルリミットを超えた場合は DANSYS の使用を推奨します。
4. 補足
・SPARSE 法ソルバに関するメモリモードについて
システムに搭載したメモリ構成によってANSYS Mechanical 用 SPARSE 法ソルバはインコアモードと最適化アウトオブコアモードを切り替わる仕
様となっております。前者のモードは計算用のデータをすべてメモリに展開するため、高速に演算することが可能です。後者のモードは展開す るデータをメモリ以外に外部ストレージ(例:HDD や SSD)も利用するため、前者と比較すると低速になりますが、搭載メモリが限定されている場 合であっても安定した解析が実行出来る点が特徴となります。 今回のベンチマークでは、モデル規模の違いによってモードが変わっている点を確認しました。モデル規模の小さいTEST6 と TEST7 はインコア モードで解析を実行しましたが、モデル規模の大きいTEST8~TEST10 は最適化アウトオブコアモードによる解析実行となっています。本ベンチ マークはこれらのモードの違いまで考慮して考察しておりませんので予めご注意ください。ただ、メモリを十分搭載したマシンをご用意いただい たとしてもANSYS 社が用意したデータだけでは、インコアモードで解くことができません。予め ANSYS 社製品取扱店にお問い合わせ下さい。 [表 4 各ロードケースにおける SPARSE 法ソルバのメモリモード]
Benchmark Model MDOF Solver Mode
TEST6 0.4 インコア
TEST7 0.5 インコア
TEST8 2.3 最適化アウトオブコア
TEST9 1.0 最適化アウトオブコア
TEST10 2.1 最適化アウトオブコア
・ANSYS Mechanical 用 ACCOPTION コマンドについて
ANSYS Mechanical で用意している GPGPU 用制御コマンドが ACCOPTION です。このコマンドを利用することで GPU アクセラレータへ送られる方
程式ソルバ内の最小データサイズ(マトリクスサイズであり、単位はMB)の制御が調整可能です。SPARSE 法ソルバのみ適用可能であり、JCG
ソルバやPCG ソルバ (PCG ランチョスを含む) には適用されません。このデータサイズは、使用している特定の GPU デバイスおよび指定した
CPU コア数 (-np コマンドラインオプション) を基にして SPARSE 法ソルバを用いて、自動的に計算されます。推奨値は通常 0.5MB~20MB で す。本コマンドの有効性を確認するため、最小データサイズを下記のように割り振り、計算時間を計測しました。
[表 5 Tesla C2050 における ACCOPTION コマンドの割り当て]
Benchmark Model ACCOPTION Command に割り当てる最小データサイズ [MB]
TEST6 Default 0.5 5 10 15 20 50 TEST7 Default 0.5 5 10 15 20 50 TEST8 Default 0.5 5 10 15 20 50 TEST9 Default 0.5 5 10 15 20 50 TEST10 Default 0.5 5 10 15 20 50 [表 6 Tesla C2070 における ACCOPTION コマンドの割り当て]
Benchmark Model ACCOPTION Command に割り当てる最小データサイズ [MB]
TEST6 Default 0.5 5 10 15 20 50 100 TEST7 Default 0.5 5 10 15 20 50 100 TEST8 Default 0.5 5 10 15 20 50 100 TEST9 Default 0.5 5 10 15 20 50 100 TEST10 Default 0.5 5 10 15 20 50 100 結果を次ページに示します。
Tesla C2050 における TEST6 Tesla C2070 における TEST6
Tesla C2050 における TEST7 Tesla C2070 における TEST7
Tesla C2050 における TEST8 Tesla C2070 における TEST8
Tesla C2050 における TEST9 Tesla C2070 における TEST9
Tesla C2050 における TEST10 Tesla C2070 における TEST10
def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 1X81X4 1X21X1 0 100 200 300 400 500 600 700 800 900 1000 Elapse Time [s] ACCOPT Command Number of Cores 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 1X8 1X4 1X21X1 0 100 200 300 400 500 600 700 800 Elapse Time [s] ACCOPT Command Number of Cores V13SP-2 1X8 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 acco pt ,,100 1X8 1X2 0 100 200 300 400 500 600 700 800 900 1000 Elapse Time [s] ACCOPT Command Number of Cores V13SP-2 1X8 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 acco pt ,,100 1X8 1X2 0 100 200 300 400 500 600 700 800 900 1000 Elapse Time [s] ACCOPT Command Number of Cores 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 1X8 1X41X2 1X1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 Elapse Time [s] ACCOPT Command Number of Cores V13SP-3 1X8 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 acco pt ,,100 1X8 1X2 0 500 1000 1500 2000 2500 3000 3500 4000 4500 Elapse Time [s] ACCOPT Command Number of Cores V13SP-3 1X8 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 1X8 1X41X2 1X1 0 500 1000 1500 2000 2500 Elapse Time [s] ACCOPT Command Number of Cores V13SP-4 1X8 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 acco pt ,,100 1X8 1X2 0 500 1000 1500 2000 2500 Elapse Time [s] ACCOPT Command Number of Cores V13SP-4 1X8 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 1X81X4 1X21X1 800 850 900 950 1000 1050 Elapse Time [s] ACCOPT Command Number of Cores V13SP-5 1X8 1X4 1X2 1X1 def aul t acco pt ,,0. 5 acco pt ,,5 acco pt ,,10 acco pt ,,15 acco pt ,,20 acco pt ,,50 acco pt ,,100 1X8 1X2 0 200 400 600 800 1000 1200 Elapse Time [s] ACCOPT Command Number of Cores V13SP-5 1X8 1X4 1X2 1X1
図3 の横軸は最小データサイズであり、左側から Default、0.5、5、10、15、20、50、100 になります(100 は Tesla C2070 のみ)。縦軸は計算時 間(単位は[s])です。また、奥行きはコア数であり、奥から手前に向かって 1 コア、2 コア、4 コア、8 コアとなります。
この図から言えることは、インコアモードで動作しているTEST6、TEST7 に関しては、調査した GPGPU カードに拠らず、ACCOPTION コマンドのデフ
ォルト設定がもっとも高速に計算しております。ただし、最適化アウトオブコアモードで動作しているTEST8、TEST9、TEST10 の場合、少し状況が 異なります。Tesla C2050 の場合、本コマンドのデフォルト設定が有効に機能していることが伺えます。つまり、何も設定せずとも計算時間は短 くなっている点が分かります。しかし、Tesla C2070 の場合、本コマンドのデフォルト設定によって、計算時間が増加しております。デフォルト設 定の場合、およそ50MB 程度のときと同じ計算時間になっております。従って、最適化アウトオブコアモードで GPU アクセラレータを使用する場 合、ACCOPTION コマンドで調整しなければ高速化は望めないということになります。まとめますと、以下の組み合わせで GPU アクセラレータを SPARSE 法ソルバで解析実行する場合、ACCOPTION コマンドの最小データサイズを調整する必要があります。 [表 7 ACCOPTION コマンドを調整すべき組み合わせの内容] ANSYS Release13.0SP2 NVIDIA Tesla C2070 SPARSE 法ソルバ(最適化アウトオブコアモード) 【留意事項】 本資料を無断で他に転載しないようにお願いします。 【商標について】 Intel、Xeon は米国インテル社の登録商標または商標です。
Red Hat、RPM および Red Hat をベースとしたすべての商標とロゴは、Red Hat, Inc.の米国およびその他の国における登録商標または商
標です。
ANSYS Mechanical および他のすべての ANSYS, Inc. の製品名およびサービス名は、ANSYS, Inc. 、または、米国および他の国にある
ANSYS, Inc. の子会社の登録商標です。
InfiniBand は InfiniBand℠ Trade Association の商標または Service Mark です。
Ethernet は、米国ゼロックス社の登録商標です。
その他の記載されている会社名、製品名等は各社の登録商標または商標です。
その他、本書で記載されている会社名、システム名、製品名等には必ずしも商標表示(®・™)を付記しておりません。
【本資料に関する問い合わせ先】