GPU クラスタにおける 並列三次元 FFT の実現と評価
-
Upload
niloufer-fayaz -
Category
Documents
-
view
29 -
download
4
description
Transcript of GPU クラスタにおける 並列三次元 FFT の実現と評価
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
GPU クラスタにおける並列三次元FFT の実現と評価
高橋大介筑波大学システム情報系
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
発表内容
• 背景• 目的• 三次元 FFT アルゴリズム• GPU クラスタにおける並列三次元 FFT• 性能評価• まとめ
2
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
背景• 近年, GPU ( Graphics Processing Unit )の高い
演算性能とメモリバンド幅に着目し,これを様々なHPC アプリケーションに適用する試みが行われている.
• また, GPU を搭載した計算ノードを多数接続したGPU クラスタも普及が進んでおり, 2013 年 11 月の TOP500 リストでは NVIDIA Tesla K20X GPU を搭載した Titan が第 2 位にランクされている.
• これまでに GPU クラスタにおける並列三次元 FFTの実現は行われている [Chen et al. 2010, Nukada et al. 2012] が,一次元分割のみサポートされており,二次元分割はサポートされていない.
3
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
目的• GPU クラスタにおける並列三次元 FFT の実現を行
う.• CPU 版と同じインターフェースで GPU 版を使用
することができるようにする.• 筑波大学計算科学研究センターに設置された GPU
クラスタである HA-PACS ベースクラスタにおいて性能評価を行う.
4
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
方針• CPU 版と GPU 版を同一インターフェースとするた
め,入力データおよび出力データはホストメモリに格納する.– FFT ライブラリが呼び出された際に,ホストメモリからデ
バイスメモリに転送し, FFT ライブラリの終了時にデバイスメモリからホストメモリに転送する.
• FFT ライブラリを置き換えるだけで性能可搬性を実現する.
• 計算可能な問題サイズは GPU のデバイスメモリの容量が限度になる.– ホストメモリのデータを分割してデバイスメモリに転送し
ながら FFT 計算を行うことも可能であるが,今回の実装ではそこまで行わないこととする.
5
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
6
三次元 FFT
• 三次元離散フーリエ変換( DFT )の定義
𝑦 (𝑘1 ,𝑘2 ,𝑘3 )=∑𝑗 1=0
𝑛1−1
∑𝑗2=0
𝑛2−1
∑𝑗 3=0
𝑛3− 1
𝑥 ¿¿¿¿
𝜔𝑛𝑟=𝑒−2 𝜋 𝑖 /𝑛𝑟∧𝑖=√−1
,
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
7
三次元 FFT アルゴリズム• Step 1: 組の点 multicolumn FFT• Step 2: 行列の転置• Step 3: 組の点 multicolumn FFT• Step 4: 行列の転置• Step 5: 組の点 multicolumn FFT• Step 6: 行列の転置
並列三次元 FFT アルゴリズム全対全通信
𝑛1𝑃0 𝑃1 𝑃2 𝑃3
𝑛1
8
𝑛3
全対全通信
転置
𝑛2𝑃0 𝑃1 𝑃2 𝑃3𝑛2
𝑛3
𝑃0 𝑃1 𝑃2 𝑃3
転置2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
8
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
GPU クラスタにおける並列三次元 FFT ( 1/2 )• GPU クラスタにおいて並列三次元 FFT を行う際には,
全対全通信が 2 回行われる.• 計算時間の大部分が全対全通信によって占められるこ
とになる.• CPU と GPU 間を接続するインターフェースである
PCI Express バスの理論ピークバンド幅は PCI Express Gen 2 x 16 レーンの場合には一方向あたり 8GB/sec .
• CPU と GPU 間のデータ転送量をできるだけ削減することが重要になる.– CPU と GPU 間のデータ転送は FFT の開始前と終了後にそれ
ぞれ 1 回のみ行う.– 行列の転置は GPU 内で行う.
9
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
GPU クラスタにおける並列三次元 FFT ( 2/2 )• GPU 上のメモリを MPI により転送する場合,以下の手
順で行う必要がある.1. GPU 上のデバイスメモリから CPU 上のホストメモリへ
データをコピーする.2. MPI の通信関数を用いて転送する.3. CPU 上のホストメモリから GPU 上のデバイスメモリにコ
ピーする.• この場合, CPU と GPU のデータ転送を行っている間
は MPI の通信が行われないという問題がある.• そこで, CPU と GPU 間のデータ転送とノード間の
MPI 通信をパイプライン化してオーバーラップさせることができる MPI ライブラリである MVAPICH2 を用いた.
10
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
MPI + CUDA での通信• 通常の MPI を用いた GPU 間の通信 At Sender:
cudaMemcpy(sbuf, s_device, …);
MPI_Send(sbuf, size, …);
At Receiver:
MPI_Recv(rbuf, size, …);
cudaMemcpy(r_device, rbuf, …);
• MVAPICH2-GPU を用いた GPU 間の通信 At Sender:
MPI_Send(s_device, size, …);
At Receiver:
MPI_Recv(r_device, size, …);
11
・デバイスメモリのアドレスを 直接 MPI 関数に渡すことが可能.・ CUDA と MPI の転送のオーバー ラップを MPI ライブラリ内で行う.
・ cudaMemcpy を行っている間 は MPI の通信が行われない.・メモリをブロックで分割し, CUDA と MPI の転送をオーバ ーラップさせることも可能. →プログラムが複雑になる.
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
性能評価• 性能評価にあたっては,以下の FFT ライブラリについて性能比較を
行った.– FFTE 6.0 ( http://www.ffte.jp/, GPU を使用)– FFTE 6.0 ( http://www.ffte.jp/, CPU を使用)– FFTW 3.3.3 ( http://www.fftw.org/, CPU を使用)
• 順方向 FFT を 1 ~ 256MPI プロセス( 1 ノードあたり 4MPI プロセス)で連続 10 回実行し,その平均の経過時間を測定した.
• HA-PACS ベースクラスタ( 268 ノード, 4288 コア, 1072GPU )のうち, 1 ~ 64 ノードを使用した.– 各ノードに Intel Xeon E5-2670 ( Sandy Bridge-EP 2.6GHz )が 2 ソケッ
ト, NVIDIA Tesla M2090 が 4 基– ノード間は InfiniBand QDR ( 2 レール)で接続– MPI ライブラリ: MVAPICH2 2.0b– PGI CUDA Fortran Compiler 14.2 + CUDA 5.5 + CUFFT– コンパイラオプション:“ pgf90 -fast -Mcuda=cc2x,cuda5.5” ( FFTE
6.0 , GPU ),“ pgf90 –fast -mp” ( FFTE 6.0 , CPU ),” pgcc -fast” ( FFTW 3.3.3 )
12
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
HA-PACS ベースクラスタのノード構成
13
1GPU あたり1MPI プロセスを立ち上げる
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
FFT並列三次元 の性能HA-PACS N=256× 256× 512× MPI( , プロセス数)
1
10
100
1000
1 2 4 8 16 32 64 128
256
Number of MPI processes
GFlo
ps
FFTE 6.0(GPU)
FFTE 6.0(CPU)
FFTW3.3.3(CPU)
14
2014/3/11
FFTE 6.0 GPU FFT( 版)の並列三次元 の実行時間の内訳HA-PACS N=256× 256× 512× MPI( , プロセス数)
0
0.5
1
1.5
2
2.5
3
Number of MPI processes
Tim
e (s
ec)
通信時間
PCIe転送時間演算時間
15
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
2014/3/11
FFTE 6.0 CPU FFT( 版)の並列三次元 の実行時間の内訳HA-PACS N=256× 256× 512× MPI( , プロセス数)
0
0.5
1
1.5
2
2.5
3
Number of MPI processes
Tim
e (s
ec)
通信時間
演算時間
16
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
全対全通信の性能HA-PACS 64 , 256MPI )( ノード プロセス
0
100
200
300400
500
600
700
800
Message Size (bytes)
Ban
dwid
th (M
B/s
ec) GPU-GPU
(withMVAPICH2-GPU)GPU-GPU(withoutMVAPICH2-GPU)CPU-CPU
2014/3/11 17
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
2014/3/11
「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク
ス」平成 25年度第 2回研究会
まとめ• GPU クラスタにおいて並列三次元 FFT を実現し評価した
結果について述べた.• GPU を用いた場合には CPU に比べて演算時間が短縮され
る一方で,全実行時間における通信時間の割合が増大する.– HA-PACS ベースクラスタの 64 ノード, 256MPI プロセスを用
いた場合,点 FFT において実行時間の約 70% が全対全通信で占められている.
• MPI ライブラリである MVAPICH2 の新機能( MVAPICH2-GPU )を用いることで, PCIe 転送とノード間通信をオーバーラップさせた際のプログラミングが容易になるとともに通信性能も向上した.
• GPU クラスタ向けの並列 FFT ライブラリを FFTE 6.0 として http://www.ffte.jp/にて公開中.
18