CCS HPCサマーセミナー 並列数値計算アルゴリズム

Similar documents
CCS HPCサマーセミナー 並列数値計算アルゴリズム

hpc141_shirahata.pdf

Microsoft Word - HOKUSAI_system_overview_ja.docx

スライド 1

NVIDIA Tesla K20/K20X GPU アクセラレータ アプリケーション パフォーマンス テクニカル ブリーフ

Microsoft PowerPoint - CCS学際共同boku-08b.ppt

GPU n Graphics Processing Unit CG CAD

資料3 今後のHPC技術に関する研究開発の方向性について(日立製作所提供資料)

HPC143

CPU Levels in the memory hierarchy Level 1 Level 2... Increasing distance from the CPU in access time Level n Size of the memory at each level 1: 2.2

4 倍精度基本線形代数ルーチン群 QPBLAS の紹介 [index] 1. Introduction 2. Double-double algorithm 3. QPBLAS 4. QPBLAS-GPU 5. Summary 佐々成正 1, 山田進 1, 町田昌彦 1, 今村俊幸 2, 奥田洋司

名称 : 日本 GPU コンピューティングパートナーシップ (G-DEP) 所在 : 東京都文京区本郷 7 丁目 3 番 1 号東京大学アントレプレナープラザ, 他工場 URL アライアンスパートナー コアテクノロジーパートナー NVIDIA JAPAN ソリュ

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc

システムソリューションのご紹介

untitled

PowerPoint プレゼンテーション

untitled

Microsoft PowerPoint - GPUシンポジウム _d公開版.ppt [互換モード]

Microsoft Word ●MPI性能検証_志田_ _更新__ doc

<4D F736F F F696E74202D2091E63489F15F436F6D C982E682E992B48D8291AC92B489B F090CD2888F38DFC E B8CDD8

最新の並列計算事情とCAE

tabaicho3mukunoki.pptx

スライド 1

VXPRO R1400® ご提案資料

チューニング講習会 初級編

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

スライド 1

GPGPUクラスタの性能評価

熊本大学学術リポジトリ Kumamoto University Repositor Title GPGPU による高速演算について Author(s) 榎本, 昌一 Citation Issue date Type URL Presentation

1 GPU GPGPU GPU CPU 2 GPU 2007 NVIDIA GPGPU CUDA[3] GPGPU CUDA GPGPU CUDA GPGPU GPU GPU GPU Graphics Processing Unit LSI LSI CPU ( ) DRAM GPU LSI GPU

Fujitsu Standard Tool

修士論文

並列計算導入.pptx

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

1. GPU コンピューティング GPU コンピューティング GPUによる 汎用コンピューティング GPU = Graphics Processing Unit CUDA Compute Unified Device Architecture NVIDIA の GPU コンピューティング環境 Lin

研究背景 大規模な演算を行うためには 分散メモリ型システムの利用が必須 Message Passing Interface MPI 並列プログラムの大半はMPIを利用 様々な実装 OpenMPI, MPICH, MVAPICH, MPI.NET プログラミングコストが高いため 生産性が悪い 新しい並

ペタスケール計算環境に向けたFFTライブラリ

Images per Second Images per Second VOLTA: ディープラーニングにおける大きな飛躍 ResNet-50 トレーニング 2.4x faster ResNet-50 推論 TensorRT - 7ms レイテンシ 3.7x faster P100 V100 P10

九州大学がスーパーコンピュータ「高性能アプリケーションサーバシステム」の本格稼働を開始

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

05-opt-system.ppt

Microsoft PowerPoint - sales2.ppt

NUMAの構成

<4D F736F F F696E74202D20834B F C8FEE95F A7793C195CA8D758B E348C8E3893FA816A202D E >

GPUコンピューティング講習会パート1

PowerPoint プレゼンテーション

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

Microsoft PowerPoint - ARC-SWoPP2011OkaSlides.pptx

工学院大学建築系学科近藤研究室2000年度卒業論文梗概

Microsoft PowerPoint - ARCEMB08HayashiSlides.ppt [互換モード]

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

並列・高速化を実現するための 高速化サービスの概要と事例紹介

GPUを用いたN体計算

[4] ACP (Advanced Communication Primitives) [1] ACP ACP [2] ACP Tofu UDP [3] HPC InfiniBand InfiniBand ACP 2 ACP, 3 InfiniBand ACP 4 5 ACP 2. ACP ACP

IPSJ SIG Technical Report Vol.2012-ARC-202 No.13 Vol.2012-HPC-137 No /12/13 Tightly Coupled Accelerators 1,a) 1,b) 1,c) 1,d) GPU HA-PACS

2007年度 計算機システム演習 第3回

Microsoft PowerPoint - 演習1:並列化と評価.pptx

PowerPoint Presentation

ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014

Microsoft PowerPoint - ★13_日立_清水.ppt

untitled

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx

openmp1_Yaguchi_version_170530

supercomputer2010.ppt

<4D F736F F F696E74202D F A282BD94BD959C89F A4C E682528D652E707074>

08 年 月一般財団法人高度情報科学技術研究機構 本資料を教育目的等で利用いただいて構いません 利用に際しては以下の点に留意いただくとともに 下記のヘルプデスクにお問い合わせ下さい 本資料は 構成 文章 画像などの全てにおいて著作権法上の保護を受けています 本資料の一部あるいは全部について いかなる

about MPI

HPC (pay-as-you-go) HPC Web 2

スライド 1

RICCについて

PowerPoint プレゼンテーション

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

27_02.indd

HP High Performance Computing(HPC)

スライド 1

08 年 月一般財団法人高度情報科学技術研究機構 本資料を教育目的等で利用いただいて構いません 利用に際しては以下の点に留意いただくとともに 下記のヘルプデスクにお問い合わせ下さい 本資料は 構成 文章 画像などの全てにおいて著作権法上の保護を受けています 本資料の一部あるいは全部について いかなる

基盤研究(B) 「マルチコア複合環境を指向した適応型自動チューニング技術」

Microsoft PowerPoint - SWoPP2010_Shirahata

PowerPoint プレゼンテーション

Microsoft PowerPoint PCクラスタワークショップin京都.ppt

main.dvi

CLEFIA_ISEC発表

PowerPoint プレゼンテーション

TSUBAME2.0におけるGPUの 活用方法

<4D F736F F D20332E322E332E819C97AC91CC89F090CD82A982E78CA982E9466F E393082CC8D5C91A291CC90AB945C955D89BF5F8D8296D85F F8D F5F E646F63>

GPU GPU CPU CPU CPU GPU GPU N N CPU ( ) 1 GPU CPU GPU 2D 3D CPU GPU GPU GPGPU GPGPU 2 nvidia GPU CUDA 3 GPU 3.1 GPU Core 1

PowerPoint プレゼンテーション

スライド 1

PowerPoint プレゼンテーション

Coding theorems for correlated sources with cooperative information

Hadoop LZO圧縮機能の検証

Windows Server 2016 Hyper-V ストレージQoS機能の強化

PowerPoint プレゼンテーション

FX10利用準備

Microsoft Word - Dolphin Expressによる10Gbpソケット通信.docx

XACCの概要

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

Microsoft PowerPoint _OpenCAE並列計算分科会.pptx

Transcription:

大規模系での高速フーリエ変換 2 高橋大介 daisuke@cs.tsukuba.ac.jp 筑波大学システム情報系計算科学研究センター 2014/5/29 CMSI 計算科学技術特論 B 1

講義内容 並列三次元 FFT における自動チューニング 二次元分割を用いた並列三次元 FFT アルゴリズム GPU クラスタにおける並列三次元 FFT 2014/5/29 CMSI 計算科学技術特論 B 2

並列三次元 FFT における 自動チューニング 2014/5/29 CMSI 計算科学技術特論 B 3

背景 並列 FFT のチューニングを行う際には, さまざまな性能パラメータが存在する. しかし, 最適な性能パラメータはプロセッサのアーキテクチャ, ノード間を結合するネットワーク, そして問題サイズなどに依存する. これらのパラメータをその都度自動でチューニングすることは困難になりつつある. そこで, 近年自動チューニング技術が注目されてきている. FFTW,SPIRAL,UHFFT 2014/5/29 CMSI 計算科学技術特論 B 4

三次元 FFT 三次元離散フーリエ変換 (DFT) の定義 2014/5/29 CMSI 計算科学技術特論 B 5

三次元 FFT アルゴリズム 2014/5/29 CMSI 計算科学技術特論 B 6

並列ブロック三次元 FFT アルゴリズム n 2 n 3 Partial Transpose n B n 1 P P P P 0 1 2 3 n 3 n 2 n B Partial Transpose n 2 All-to-all comm. n 2 n 3 P P P P 0 1 2 3 n 2 n 1 Partial Transpose n 2 n 3 n 3 P P 0 1 2 P P 3 n 1 2014/5/29 7

自動チューニング手法 並列ブロック三次元 FFT をチューニングする際には, 全体に関わる性能パラメータとして主に以下の 2 つが存在する. 全対全通信方式 ブロックサイズ ここで,multicolumn FFT で用いる逐次 FFT ルーチンは自動チューニング等により十分に最適化されているものとする. 2014/5/29 CMSI 計算科学技術特論 B 8

全対全通信方式 全対全通信が並列 FFTの実行時間に占める割合は非常に大きい. 場合によっては実行時間の大部分を占めることもある. これまでに,MPIの集合通信を自動チューニングする研究が行われている [Faraj and Yuan 05]. InfiniBandで接続されたマルチコアクラスタにおいて, 全対全通信をノード内とノード間の2 段階に分けて行うことで, 性能を向上させる手法も知られている [Kumar et al. 08]. この手法を P個のMPIプロセスが P P x Py のように分解できる一般的な場合に拡張した 2 段階全対全通信アルゴリズム を構築することができる. 2014/5/29 CMSI 計算科学技術特論 B 9

2 段階全対全通信アルゴリズム (1/2) 各 MPIプロセスにおいて, 配列の添字の順序を 2 2 ( N / P, P x, P y ) から ( N / P, P y, P x ) に入れ替えるようにコピーする. 次に, P x 個のMPIプロセス間における全対全通信を組行う. P y 各 MPIプロセスにおいて, 配列の添字の順序を 2 2 ( N / P, P y, P x ) から ( N / P, P x, P y ) に入れ替えるようにコピーする. 次に, P y 個のMPIプロセス間における全対全通信を組行う. P x 2014/5/29 CMSI 計算科学技術特論 B 10

2 段階全対全通信アルゴリズム (2/2) この2 段階全対全通信アルゴリズムでは, ノード間の全対全通信が2 回行われるため, P 個のMPIプロセス間で単純に全対全通信を行う場合に比べて, トータルの通信量は2 倍となる. ところが, 全対全通信のスタートアップ時間はMPIプロセス数 P に比例するため, N が比較的小さく, かつ MPIプロセス数 P が大きい場合にはMPI_Alltoallに比べて有利になる場合がある. P x P y すべてのとの組み合わせについて探索を行うことによって, 最適な P x と P y の組み合わせを調べることができる. 2014/5/29 CMSI 計算科学技術特論 B 11

ブロックサイズ 並列ブロック三次元 FFT アルゴリズムにおいて, 最適なブロックサイズは問題サイズおよびキャッシュサイズ等に依存する. ブロックサイズNBについても探索を行うことによって, 最適なブロックサイズを調べることができる. 1 n n 今回の実装では, データサイズ 2 3 およびMPIプロセス数 P が2のべき乗であると仮定しているため, ブロックサイズNBも2のべき乗に限定して2, 4,8,16,32,64のように変化させている. n n 2014/5/29 CMSI 計算科学技術特論 B 12

MFlops 1000 800 600 400 200 T2K 筑波システム (1コア) においてブロックサイズを変化させた場合の性能 0 64x64x64 64x64x128 64x128x128 128x128x128 128x128x256 128x256x256 N1xN2xN3 256x256x256 NB=2 NB=4 NB=8 NB=16 NB=32 NB=64 2014/5/29 CMSI 計算科学技術特論 B 13

性能評価 性能評価にあたっては, 以下の性能比較を行った. 並列ブロック三次元 FFT を用いた FFT ライブラリである FFTE (version 4.1) FFTE に自動チューニングを適用したもの 多くのプロセッサで最も高速なライブラリとして知られている FFTW(version 3.3alpha1) 測定に際しては, 順方向 FFT を連続 10 回実行し, その平均の経過時間を測定した. T2K 筑波システム (648 ノード,10,368 コア ) のうち 16 ノード,256 コアを用いた. flat MPI(1 コア当たり 1MPI プロセス ) MPI ライブラリ :MVAPICH 1.4.1 2014/5/29 CMSI 計算科学技術特論 B 14

GFlops 100 T2K 筑波システムにおける並列三次元 FFTの性能 (n1 n2 n3 = 2^24 コア数 ) FFTE 4.1 10 1 FFTE 4.1 (with AT) FFTW 3.3alpha1 0.1 1 2 4 8 16 32 64 Number of cores 128 256 2014/5/29 CMSI 計算科学技術特論 B 15

考察 (1/2) FFTE 4.1 に自動チューニングを適用することにより性能が向上していることが分かる. これは,FFTE 4.1 において固定されていた全対全通信方式およびブロックサイズが, 自動チューニングにより最適化されたことが理由と考えられる. また,4~256 コアにおいて, 自動チューニングを適用した FFTE 4.1 が FFTW 3.3alpha1 よりも高速であることが分かる. 2014/5/29 CMSI 計算科学技術特論 B 16

16 64 256 1K 4K 16K 64K 256K Bandwidth (MB/sec) T2K 筑波システム (64 ノード,1024 コア,flat MPI) における全対全通信の性能 100 80 60 40 20 0 MPI_Allto all 2-step allto-all with AT Message Size (bytes) 2014/5/29 CMSI 計算科学技術特論 B 17

2 段階全対全通信の自動チューニング結果 Message Size (bytes) Px Py 16 8 128 64 8 128 256 16 64 1024 32 32 4096 8 128 16384 64 16 65536 4 256 262144 1 1024 2014/5/29 CMSI 計算科学技術特論 B 18

考察 (2/2) メッセージサイズが 64KB 以下の範囲で,2 段階全対全通信アルゴリズムが選択されており,MPI_Alltoall よりも高速になっている. P x 1, 2, 4, 8,16 の場合には,1 段目においてノード内に閉じた通信が P x 個のMPIプロセス間で行われることになる. P x 64, P メッセージサイズが16KBの場合には, y が選択されており, ノード間で2 段階通信が行われている. 4 2014/5/29 CMSI 計算科学技術特論 B 19

二次元分割を用いた並列三次元 FFT アルゴリズム 2014/5/29 CMSI 計算科学技術特論 B 20

背景 2013 年 11 月の Top500 リストにおいて,4 システムが 10PFlops の大台を突破している. Tianhe-2(Intel Xeon E5-2692 12C 2.2GHz,Intel Xeon Phi 31S1P):33.862 PFlops(3,120,000 Cores) Titan(Cray XK7,Opteron 6274 16C 2.2GHz,NVIDIA K20x): 17.590 PFlops (560,640 Cores) Sequoia(BlueGene/Q,Power BQC 16C 1.6GHz): 17.173 PFlops (1,572,864 Cores) K computer(sparc64 VIIIfx 2.0GHz):10.510 PFlops (705,024 Cores) 今後出現すると予想される, エクサフロップス級マシンは, ほぼ確実に 1000 万コアを超える規模のものになる. 2014/5/29 CMSI 計算科学技術特論 B 21

方針 並列三次元 FFT における典型的な配列の分散方法 三次元 (x,y,z 方向 ) のうちの一次元のみ ( 例えば z 方向 ) のみを分割して配列を格納. MPI プロセスが 1 万個の場合,z 方向のデータ数が 1 万点以上でなければならず, 三次元 FFT の問題サイズに制約. x,y,z 方向に三次元分割する方法が提案されている [Eleftheriou et al. 05, Fang et al. 07]. 各方向の FFT を行う都度, 全対全通信が必要. 二次元分割を行うことで全対全通信の回数を減らしつつ, 比較的少ないデータ数でも高いスケーラビリティを得る. 2014/5/29 CMSI 計算科学技術特論 B 22

z 方向に一次元ブロック分割した 場合の並列三次元 FFT 1. x 方向 FFT 2. y 方向 FFT 3. z 方向 FFT z z z x y x y x y 各プロセッサで slab 形状に分割 2014/5/29 CMSI 計算科学技術特論 B 23

三次元 FFT の超並列化 並列アプリケーションプログラムのいくつかにおいては, 三次元 FFT が律速になっている. x,y,z のうち z 方向のみに一次元分割した場合, 超並列化は不可能. 1,024 1,024 1,024 点 FFT を 2,048 プロセスで分割できない (1,024 プロセスまでは分割可能 ) y,z の二次元分割で対応する. 1,024 1,024 1,024 点 FFT が 1,048,576 (=1,024 1,024) プロセスまで分割可能になる. 2014/5/29 CMSI 計算科学技術特論 B 24

y,z 方向に二次元ブロック分割 した場合の並列三次元 FFT 1. x 方向 FFT 2. y 方向 FFT 3. z 方向 FFT z z z y y x x x 各プロセッサで直方体形状に分割 y 2014/5/29 CMSI 計算科学技術特論 B 25

二次元分割による並列三次元 FFT の実装 二次元分割した場合, 個のプロセッサにおいて, P Q 個のプロセッサ間で全対全通信を組 個のプロセッサ間で全対全通信を組 行う必要がある. P MPI_Comm_Split() を用いてMPI_COMM_WORLDを y 方向 ( P プロセッサ ) とz 方向 ( Qプロセッサ ) でコミュニケータを分割する. 各コミュニケータ内で MPI_Alltoall() を行う. 入力データが y,z 方向に, 出力データは x,y 方向に二次元ブロック分割されている. Q 全対全通信は y 方向で 1 回,z 方向で 1 回の合計 2 回で済む. 2014/5/29 CMSI 計算科学技術特論 B 26 Q P

一次元分割の場合の通信時間 全データ数を N, プロセッサ数を, プロセッサ間通信性能を W(Byte/s), 通信レイテンシを L (sec) とする. N /( PQ) 2 各プロセッサは個の倍精度複素数データを自分以外の PQ 1 個のプロセッサに送ることになる. 一次元分割の場合の通信時間は T 1dim P 16N ( PQ 1) L 2 ( PQ) W 16N PQ L PQ W 2014/5/29 CMSI 計算科学技術特論 B 27 Q (sec)

二次元分割の場合の通信時間 y 方向の P 個のプロセッサ間で全対全通信を Q 組行う. y 方向の各プロセッサは N /( P 2 Q ) 個の倍精度複素数データを,y 方向の P 1 個のプロセッサに送る. z 方向の Q個のプロセッサ間で全対全通信を P 組行う. 2 z 方向の各プロセッサは N /( PQ ) 個の倍精度複素数データを,z 方向の Q 1 個のプロセッサに送る. 二次元分割の場合の通信時間は 16N 16N T2dim ( P 1) L ( Q 1) L 2 2 P Q W PQ W 32N ( P Q) L (sec) PQ W 2014/5/29 CMSI 計算科学技術特論 B 28

一次元分割と二次元分割の場合の 通信時間の比較 (1/2) 一次元分割の通信時間 T 1dim PQ L 二次元分割の通信時間 T 2 dim ( P Q ) 16N PQ W 32N PQ W 二つの式を比較すると, 全プロセッサ数 P Q が大きく, かつレイテンシ L が大きい場合には, 二次元分割の方が通信時間が短くなることが分かる. 2014/5/29 CMSI 計算科学技術特論 B 29 L

一次元分割と二次元分割の場合の通信時間の比較 (2/2) 二次元分割の通信時間が一次元分割の通信時間よりも少なくなる条件を求める. ( P Q ) L を解くと, N 32N PQ W PQ L ( LW PQ)( PQ P Q ) 16 W 10 16N PQ W Q 例えば, 10 5 9 L (sec), (Byte/s), 10 を上の式に代入すると, N 10 の範囲では二次元分割の通信時間が一次元分割に比べて少なくなる. 2014/5/29 CMSI 計算科学技術特論 B 30 P 64

性能評価 性能評価にあたっては, 二次元分割を行った並列三次元 FFTと, 一次元分割を行った並列三次元 FFTの性能比較を行った. 3 3 3 3 Strong Scalingとして N 32, 64, 1 2 8, 2 5 6 点の順方向 FFTを1~4,096MPIプロセスで連続 10 回実行し, その平均の経過時間を測定した. 評価環境 T2K 筑波システムの256ノード (4,096コア) を使用 flat MPI(1core 当たり1MPIプロセス ) MPIライブラリ :MVAPICH 1.2.0 Intel Fortran Compiler 10.1 コンパイルオプション : ifort O3 xo (SSE3ベクトル命令) 2014/5/29 CMSI 計算科学技術特論 B 31

GFLOPS 1000 二次元分割を行った volumetric 並列三次元 FFT の性能 N=32^3 100 N=64^3 10 N=128^3 1 N=256^3 0.1 1 4 16 64 256 1024 4096 Number of cores 2014/5/29 CMSI 計算科学技術特論 B 32

考察 (1/2) 3 N 32 点 FFTでは良好なスケーラビリティが得られていない. これは問題サイズが小さい ( データサイズ :1MB) ことから, 全対全通信が全実行時間のほとんどを占めているからであると考えられる. 3 それに対して, N 256 点 FFT( データサイズ :512MB) では4,096コアまで性能が向上していることが分かる. 4,096 コアにおける性能は約 401.3 GFlops ( 理論ピーク性能の約 1.1%) 全対全通信を除いたカーネル部分の性能は約 10.07 TFlops ( 理論ピーク性能の約 26.7%) 2014/5/29 CMSI 計算科学技術特論 B 33

GFLOPS 1000 100 10 256^3 点 FFT における一次元分割と二次元分割の性能比較 一次元分割二次元分割 1 0.1 1 4 16 64 256 1024 4096 Number of cores 2014/5/29 CMSI 計算科学技術特論 B 34

Time (sec) 0.06 並列三次元 FFT の実行時間の内訳 (256cores, 256^3 点 FFT) 0.05 0.04 0.03 0.02 0.01 演算時間通信時間 0 一次元分割二次元分割 2014/5/29 CMSI 計算科学技術特論 B 35

考察 (2/2) 64 コア以下の場合には, 通信量の少ない一次元分割が二次元分割よりも性能が高くなっている. 128 コア以上では通信時間を少なくできる二次元分割が一次元分割よりも性能が高くなっていることが分かる. 二次元分割を行った場合でも,4,096 コアにおいては 96% 以上が通信時間に費やされている. 全対全通信において各プロセッサが一度に送る通信量がわずか 1KB となるため, 通信時間においてレイテンシが支配的になるためであると考えられる. 全対全通信に MPI_Alltoall 関数を使わずに, より低レベルな通信関数を用いて, レイテンシを削減する工夫が必要. 2014/5/29 CMSI 計算科学技術特論 B 36

GPU クラスタにおける 並列三次元 FFT 2014/5/29 CMSI 計算科学技術特論 B 37

背景 近年,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] が, 一次元分割のみサポートされており, 二次元分割はサポートされていない. 2014/5/29 CMSI 計算科学技術特論 B 38

方針 CPU 版と GPU 版を同一インターフェースとするため, 入力データおよび出力データはホストメモリに格納する. FFT ライブラリが呼び出された際に, ホストメモリからデバイスメモリに転送し,FFT ライブラリの終了時にデバイスメモリからホストメモリに転送する. 計算可能な問題サイズは GPU のデバイスメモリの容量が限度になる. ホストメモリのデータを分割してデバイスメモリに転送しながら FFT 計算を行うことも可能であるが, 今回の実装ではそこまで行わないこととする. 2014/5/29 CMSI 計算科学技術特論 B 39

並列三次元 FFT アルゴリズム 全対全通信 転置 40 全対全通信 転置

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 内で行う. 2014/5/29 CMSI 計算科学技術特論 B 41

GPU クラスタにおける並列三次元 FFT(2/2) GPU 上のメモリを MPI により転送する場合, 以下の手順で行う必要がある. 1. GPU 上のデバイスメモリから CPU 上のホストメモリへデータをコピーする. 2. MPI の通信関数を用いて転送する. 3. CPU 上のホストメモリから GPU 上のデバイスメモリにコピーする. この場合,CPU と GPU のデータ転送を行っている間は MPI の通信が行われないという問題がある. そこで,CPU と GPU 間のデータ転送とノード間の MPI 通信をパイプライン化してオーバーラップさせることができる MPI ライブラリである MVAPICH2 を用いた. 2014/5/29 CMSI 計算科学技術特論 B 42

MPI + CUDA での通信 通常の MPI を用いた GPU 間の通信 At Sender: cudamemcpy(sbuf, s_device, ); MPI_Send(sbuf, size, ); At Receiver: MPI_Recv(rbuf, size, ); cudamemcpy(r_device, rbuf, ); cudamemcpy を行っている間は MPI の通信が行われない. メモリをブロックで分割し, CUDA と MPI の転送をオーバーラップさせることも可能. プログラムが複雑になる. MVAPICH2-GPUを用いたGPU 間の通信 At Sender: MPI_Send(s_device, size, ); At Receiver: MPI_Recv(r_device, size, ); デバイスメモリのアドレスを直接 MPI 関数に渡すことが可能. CUDA と MPI の転送のオーバーラップを MPI ライブラリ内で行う. 2014/5/29 CMSI 計算科学技術特論 B 43

性能評価 性能評価にあたっては, 以下の 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) 2014/5/29 CMSI 計算科学技術特論 B 44

HA-PACS ベースクラスタのノード構成 1GPU あたり 1MPI プロセスを立ち上げる 2014/5/29 CMSI 計算科学技術特論 B 45

1 2 4 8 16 32 64 128 256 GFlops 1000 100 並列三次元 FFT の性能 (HA-PACS,N=256 256 512 MPI プロセス数 ) 10 1 FFTE 6.0 (GPU) FFTE 6.0 (CPU) FFTW 3.3.3 (CPU) Number of MPI processes 2014/5/29 CMSI 計算科学技術特論 B 46

Time (sec) FFTE 6.0(GPU 版 ) の並列三次元 FFTの実行時間の内訳 (HA-PACS,N=256 256 512 MPIプロセス数) 3 2.5 2 1.5 1 0.5 通信時間 PCIe 転送時間 演算時間 0 1 2 4 8 16 32 64 Number of MPI processes 128 256 2014/5/29 CMSI 計算科学技術特論 B 47

Time (sec) 2.5 2 1.5 1 0.5 FFTE 6.0(CPU 版 ) の並列三次元 FFTの実行時間の内訳 (HA-PACS,N=256 256 512 MPIプロセス数) 3 通信時間演算時間 0 1 2 4 8 16 32 64 Number of MPI processes 128 256 2014/5/29 CMSI 計算科学技術特論 B 48

Bandwidth (MB/sec) 800 700 600 500 400 300 200 100 0 2014/5/29 4K 8K 全対全通信の性能 (HA-PACS 64 ノード, 256MPI プロセス ) 16K 32K 64K 128K 256K 512K 1M 2M Message Size (bytes) GPU-GPU (with MVAPICH2- GPU) GPU-GPU (without MVAPICH2- GPU) CPU-CPU CMSI 計算科学技術特論 B 49

まとめ (1/2) 物質科学の実アプリケーションにおいて使われることが多い, 高速フーリエ変換 (FFT) について紹介した. これまで並列 FFT で行われてきた自動チューニングでは, 基数の選択や組み合わせ, そしてメモリアクセスの最適化など, 主にノード内の演算性能だけが考慮されてきた. ノード内の演算性能だけではなく, 全対全通信の最適化においても自動チューニングが必要になる. 今後, 並列スーパーコンピュータの規模が大きくなるに従って FFT の効率を向上させることは簡単ではない. 二次元分割や三次元分割が必要がある. 2014/5/29 CMSI 計算科学技術特論 B 50

まとめ (2/2) GPU を用いた場合には CPU に比べて演算時間が短縮される一方で, 全実行時間における通信時間の割合が増大する. HA-PACS ベースクラスタの 64 ノード,256MPI プロセスを用いた場合,2048^3 点 FFT において実行時間の約 70% が全対全通信で占められている. MPI ライブラリである MVAPICH2 の新機能 (MVAPICH2-GPU) を用いることで,PCIe 転送とノード間通信をオーバーラップさせた際のプログラミングが容易になるとともに通信性能も向上した. 2014/5/29 CMSI 計算科学技術特論 B 51