18
2013/7/8 ココココココココココココココココココ コココココココココ コココココココ 25 コココ 1 ココココ GPU ココココココココココ ココ FFT ココココココ ココココ コココココココココココ

GPU クラスタにおける並列一次元 FFT の実現と評価

Embed Size (px)

DESCRIPTION

GPU クラスタにおける並列一次元 FFT の実現と評価. 高橋大介 筑波大学システム情報系. 発表内容. 背景 目的 Six-Step FFT アルゴリズム GPU クラスタにおける並列一次元 FFT 性能評価 まとめ. 背景. 近年, GPU ( Graphics Processing Unit )の高い演算性能とメモリバンド幅に着目し,これを様々な HPC アプリケーションに適用する試みが行われている. - PowerPoint PPT Presentation

Citation preview

Page 1: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

GPU クラスタにおける並列一次元FFT の実現と評価

高橋大介筑波大学システム情報系

Page 2: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

発表内容

• 背景• 目的• Six-Step FFT アルゴリズム• GPU クラスタにおける並列一次元 FFT• 性能評価• まとめ

2

Page 3: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

背景• 近年, GPU ( Graphics Processing Unit )の高い

演算性能とメモリバンド幅に着目し,これを様々なHPC アプリケーションに適用する試みが行われている.

• また, GPU を搭載した計算ノードを多数接続したGPU クラスタも普及が進んでおり, 2013 年 6 月のTOP500 リストでは NVIDIA Tesla K20X GPU を搭載した Titan が第 2 位にランクされている.

• これまでに GPU クラスタにおける並列三次元 FFTの実現は行われている [Chen et al. 2010, Nukada et al. 2012] が,並列一次元 FFT については我々の知る限りまだ実現されていないのが現状.

3

Page 4: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

目的• GPU クラスタにおける並列一次元 FFT の実現を行

う.• 筑波大学計算科学研究センターに設置された GPU

クラスタである HA-PACS ベースクラスタにおいて性能評価を行う.

4

Page 5: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

5

離散フーリエ変換( DFT )

• 離散フーリエ変換( DFT )の定義

𝑦 (𝑘 )=∑𝑗=0

𝑛−1

𝑥 ( 𝑗)𝜔𝑛𝑗𝑘 ,0≤𝑘≤𝑛−1,

where𝜔𝑛=𝑒−2 𝜋 𝑖/𝑛∧𝑖=√−1

Page 6: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

6

二次元表現• と分解できる場合, DFT の定義式におけるは以

下のように表すことができる.

• 上記の表現を用いると, DFT の定義式を以下のように書き換えることができる.

• 点 FFT を点 FFT と点 FFT に分解している.

𝑦 (𝑘2 ,𝑘1 )=∑𝑗1=0

𝑛1−1

∑𝑗 2=0

𝑛2−1

𝑥 ( 𝑗1 , 𝑗2 )𝜔𝑛2

𝑗 2𝑘2𝜔𝑛1𝑛2

𝑗 1𝑘2𝜔𝑛1

𝑗 1𝑘1

Page 7: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

7

Six-Step FFT アルゴリズム• 二次元表現から,以下のような six-step FFT

アルゴリズムが導かれる [Bailey90, VanLoan92]:– Step 1: 行列の転置– Step 2: 組の点 multicolumn FFT– Step 3: ひねり係数()の乗算– Step 4: 行列の転置– Step 5: 組の点 multicolumn FFT– Step 6: 行列の転置

Page 8: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

8

Six-Step FFT に基づいた並列一次元FFT アルゴリズム全対全通信

全対全通信

全対全通信𝑛1

𝑛2

𝑛2

𝑛1

𝑛1

𝑛2𝑛1

𝑛2

𝑃0𝑃1𝑃2𝑃3

𝑃0 𝑃1 𝑃2 𝑃3

Page 9: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

GPU クラスタにおける並列一次元 FFT ( 1/2 )• GPU クラスタにおいて並列一次元 FFT を行う際には,

全対全通信が 3 回行われる.• 計算時間の大部分が全対全通信によって占められること

になる.• CPU と GPU 間を接続するインターフェースである PCI

Express バスの理論ピークバンド幅は PCI Express Gen 2 x 16 レーンの場合には一方向あたり 8GB/sec .

• CPU と GPU 間のデータ転送量をできるだけ削減することが重要になる.– 行列の転置は GPU 内で行う.– ひねり係数()はテーブルを作成せずに GPU 内で三角関数を

直接計算する.

9

Page 10: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

GPU クラスタにおける並列一次元 FFT ( 2/2 )• GPU 上のメモリを MPI により転送する場合,以下の手

順で行う必要がある.1. GPU 上のデバイスメモリから CPU 上のホストメモリへ

データをコピーする.2. MPI の通信関数を用いて転送する.3. CPU 上のホストメモリから GPU 上のデバイスメモリにコ

ピーする.• この場合, CPU と GPU のデータ転送を行っている間

は MPI の通信が行われないという問題がある.• そこで, CPU と GPU 間のデータ転送とノード間の

MPI 通信をパイプライン化してオーバーラップさせることができる MPI ライブラリである MVAPICH2 を用いた.

10

Page 11: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

GPU クラスタにおける並列一次元 FFT ( 2/2 )• GPU 上のメモリを MPI により転送する場合,以下の手

順で行う必要がある.1. GPU 上のデバイスメモリから CPU 上のホストメモリへ

データをコピーする.2. MPI の通信関数を用いて転送する.3. CPU 上のホストメモリから GPU 上のデバイスメモリにコ

ピーする.• この場合, CPU と GPU のデータ転送を行っている間

は MPI の通信が行われないという問題がある.• そこで, CPU と GPU 間のデータ転送とノード間の

MPI 通信をパイプライン化してオーバーラップさせることができる MPI ライブラリである MVAPICH2 を用いた.

11

Page 12: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

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, …);

12

・デバイスメモリのアドレスを 直接 MPI 関数に渡すことが可能.・ CUDA と MPI の転送のオーバー ラップを MPI ライブラリ内で行う.

・ cudaMemcpy を行っている間 は MPI の通信が行われない.・メモリをブロックで分割し,  CUDA と MPI の転送をオーバ ーラップさせることも可能. →プログラムが複雑になる.

Page 13: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

性能評価• 性能評価にあたっては,以下の FFT ライブラリについて性能比較を

行った.– FFTE 6.0β ( GPU を使用)– FFTE 5.0 ( http://www.ffte.jp/, CPU を使用)– FFTW 3.3.3 ( http://www.fftw.org/, CPU を使用)

• 順方向 FFT を 1 ~ 512MPI プロセス( 1 ノードあたり 4MPI プロセス)で連続 10 回実行し,その平均の経過時間を測定した.

• HA-PACS ベースクラスタ( 268 ノード, 4288 コア, 1072GPU )のうち, 1 ~ 128 ノードを使用した.– 各ノードに Intel Xeon E5-2670 ( Sandy Bridge-EP 2.6GHz )が 2 ソケッ

ト, NVIDIA Tesla M2090 が 4 基– ノード間は InfiniBand QDR ( 2 レール)で接続– MPI ライブラリ: MVAPICH2 1.9– PGI CUDA Fortran Compiler 13.6 + CUDA 5.0 + CUFFT– コンパイラオプション:“ pgf90 -fast -Mcuda=cc20,cuda5.0” ( FFTE 6.0β ),

“ pgf90 –fast -mp” ( FFTE 5.0 ),” pgcc -fast” ( FFTW 3.3.3 )

13

Page 14: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

HA-PACS ベースクラスタ

14

Page 15: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

HA-PACS ベースクラスタのノード構成

15

1GPU あたり1MPI プロセスを立ち上げる

Page 16: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

FFT並列一次元 の性能HA-PACS N=2̂ 25× MPI( ベースクラスタ, プロセス数)

1

10

100

1000

1 2 4 8 16 32 64 128

256

512

Number of MPI processes

GFlo

ps

FFTE 6.0(GPU)

FFTE 5.0(CPU)

FFTW3.3.3(CPU)

16

Page 17: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

FFTE 6.0β GPU( 版)の実行時間の内訳HA-PACS N=2̂ 25× MPI( ベースクラスタ, プロセス数)

00.5

11.5

22.5

33.5

4

1 2 4 8 16 32 64 128

256

512

Number of MPI processes

Tim

e (s

ec)

演算時間

通信時間

17

Page 18: GPU クラスタにおける並列一次元 FFT の実現と評価

2013/7/8

「コンピューティクスによる物質デザイン:複合相関と非平衡ダイナミク

ス」平成 25年度第 1回研究会

まとめ• GPU クラスタにおいて並列一次元 FFT を実現し評価し

た結果について述べた.• GPU を用いた場合には CPU に比べて演算時間が短縮さ

れる一方で,全実行時間における通信時間の割合が増大する.– HA-PACS ベースクラスタの 128 ノード, 512MPI プロセスを

用いた場合, 2^34 点 FFT において実行時間の約 87% が全対全通信で占められている.

• MPI ライブラリである MVAPICH2 の新機能を用いることで, PCIe 転送とノード間通信をオーバーラップさせた際のプログラミングが容易になった.

• GPU クラスタ向けの並列 FFT ライブラリを今年度中に公開予定.

18