GPGPUコンピューティングによる LES乱流モデルに

GPGPUコンピューティングによる
LES乱流モデルに基づいた数値風況予測技術の高速化
九州大学応用力学研究所
新エネルギー力学部門 風工学分野
内田 孝紀
連絡先:[email protected],092-583-7776
Unit)が有する浮動小数点演算能力を,他の数値演算
我 々 の 九 州 大 学 グ ル ー プ で は , RIAM- にも幅広く利用することである.
COMPACT® (リアムコンパクト)と称する数値風況診断
本報では,2012年11月12日(米国時間)にNVIDIA社
技術の開発を進めている(図1を参照).そのコア技術は, が発表したGPUアクセラレータ「NVIDIA® Tesla® K20フ
九州大学応用力学研究所で開発が続けられており, ァミリ」のフラッグシップモデル「Tesla® K20X」に関して,
2006年に著者らが起業した九州大学発ベンチャー企業 RIAM-COMPACT®によるベンチマーク結果を報告す
の(株)リアムコンパクト(http://www.riam-compact.com/) る.
が,(株)産学連携機構九州(九大TLO)から独占的ライセ
ン ス 使 用 許 諾 を 受 け て い る . 2006 年 に RIAM- 2.実地形版RIAM
実地形版RIAMRIAM-COMPACT®
COMPACT®ソフトウエアの
ソフトウエアの概要
COMPACT®の商標と実用新案も取得した.
本研究では,数値不安定を回避し,複雑地形上の局
非定常な乱流LESシミュレーションに主眼を置いた 所的な風の流れを高精度に数値予測するため,一般曲
RIAM-COMPACT®では,計算時間の問題が懸念され 線座標系のコロケート格子に基づいた実地形版
てきた.現行の流体計算ソルバーは,Intel Core i7など RIAM-COMPACT®ソフトウエアを用いる.ここでコロケ
のマルチコアCPU(Central Processing Unit)に対応して ート格子とは,計算格子のセル中心に物理速度成分と
おり,計算時間は劇的に短縮され,実用面での利用に 圧力を定義し,セル界面に反変速度成分にヤコビアン
おいて特段の問題は無くなってきた .
を乗じた変数を定義する格子系である.数値計算法は
前報 では,GPGPUコンピューティングへの対応を (有限)差分法(FDM;Finite-Difference Method)に基づき,
報告した.GPGPU (General Purpose computing on 乱流モデルにはLES(Large-Eddy Simulation)を採用す
GPU:GPUによる汎用計算)のコンセプトとは,グラフィッ る.LESでは流れ場に空間フィルタを施し,大小様々
ク・レンダリングに限らず,GPU(Graphics Processing
1.はじめに
1)
2)
3, 4)
Flow
不適切な立地点
適切な立地点
図1 RIAM-COMPACT®による数値風況診断の実例
なスケールの乱流渦を,計算格子よりも大きなGS(Grid
Scale)成分の渦と,それよりも小さなSGS(Sub-Grid
Scale)成分の渦に分離する.GS成分の大規模渦は,モ
デルに頼らず直接数値シミュレーションを行う.一方で,
SGS成分の小規模渦が担う,主としてエネルギー消散作
用は,SGS応力を物理的考察に基づいてモデル化され
る.数値計算手法の詳細は前報 を参照して頂きた
い.
2-4)
3.本研究で
本研究で使用した
使用した計算機環境
した計算機環境の
計算機環境の概要
ここでは,本研究で使用した計算機環境を簡単に説
明 す る . 図 2 に は , 「 NVIDIA® Tesla® K20X 6GB
(2688CUDAコア)」の写真を示す.本研究では,K20Xを
一枚搭載した環境でベンチマークを実施した.なお,比
較のため,「NVIDIA® Tesla® M2090 6GB (512CUDAコ
ア)」が4枚搭載された計算機の結果も示す(図3を参
照).
図4には,本研究で比較のために使用したベクトル計
算機の概要を示す.NEC製SX-9Fは,九州大学応用力
学研究所が所有している汎用計算機であり,現在も稼
働中である.
図3 本研究で使用したGPU,
Tesla® M2090 (512CUDAコア,6GBメモリ) x 4枚
【構成】
コア
CPU: Intel Xeon E5690 (3.47GHz, 6
, 12MB
Cache, 32nm, 6.40GT/s) × 2CPUs
GPU: NVIDIA Tesla M2090 (512CUDA
,
6GB GDDR5) × 4
Mem: 48GB (8GB DDR3 1333MHz Registered
ECC × 6)
OS: Windows 7 Professional 64bit
Compiler: PGI Accelerator Workstation
GPGPU: CUDA 4.0
®
基
®
コア
版
約190cm
図2 本研究で使用したGPU,
Tesla® K20X (2688CUDAコア,6GBメモリ) x 1枚
【構成】
製品
: HPC5000-XIGPU4TS-KPL
CPU: Intel Xeon E5-2670 v2 (2.50GHz, 10
,
25MB Cache, 22nm, 8.0GT/s) × 2CPUs
Mem: 64GB (8GB DDR3-1866 ECC Registered ×
8)
GPU: NVIDIA Tesla K20X (2688CUDA
,
6GB GDDR5) x 1
OS: CentOS 6.4
Compiler: Intel Composer XE 2013 (13.1.3)
GPGPU: CUDA 5.5
約160cm
コア
®
基
®
コア
約110cm
【構成】
CPU : 6CPU (92.16GFLOPS/単体×6=552.96GFLOPS)
Mem : 256GB
外付けディスク装置 : iStorage D3-10 4TB (RAID5)
図4 本研究で使用したNEC製SX-9F
(ベクトル計算機,2007年リリース)
またスーパーコンピュータNEC製SX-9Fの6CPUを利用
した並列計算の結果よりも,計算時間が速い結果となっ
た.これはCUDAコア数が大幅に増加したことによる.
Flow
4.本研究で
本研究で対象とした
対象とした流
とした流れ場と計算条件
本研究では,前報 と同様,3次元の孤立峰を過ぎる
流れ場を対象として計算時間の比較を行った(図5を参
照).表1には,本ベンチマークテストに使用した計算格
子数,メモリサイズ,計算ステップ数を示す.実地形版
RIAM-COMPACT®ソフトウエアでは,使用するメモリサ
イズが極めて小さいのも大きな特長の一つである.
2-4)
5.K20Xシングル
K20XシングルGPU
シングルGPUの
GPUの驚異的な
驚異的な計算速度
z
本研究では,1,000万点の計算格子を使った孤立峰
周辺気流(t=50h/U)を初期値とし,そこから5,000ステッ
プの計算(時間t=50~60h/U)を実行し,その経過時間
を比較した.得られた結果を表2に示す.
その結果,最新の「NVIDIA® Tesla® K20X 6GB
(2688CUDAコア)」のシングルGPUを用いた計算では,
驚異的な演算速度が達成されていることが示された.す
な わ ち , 同 社 の 「 NVIDIA® Tesla® M2090 6GB
(512CUDAコア)」を4枚用いたマルチGPUの並列計算,
x
図5 孤立峰近傍における流れ場の可視化,
瞬間場,パッシブ粒子追跡法,数値計算
表1 計算格子数とメモリサイズなど
計算格子数 1,165×121×71点 (約1,000万点)
メモリサイズ
3,190MB
計算ステップ
5,000ステップ
表2 計算速度の比較,1,000万点の計算,メモリサイズ3,190MB
(太数字はSX-9Fの1CPUに対する速度比を表す.括弧内の数字は実際の計算時間を表す)
0.37 (791s)
シングルGPU,K20X×1基
13 分 11 秒 24
驚異的な
高速化を達成!
0.4 (877s)
マルチGPU,M2090×4基
14 分 37 秒 01
※1
※2
0.46
(976s)
SX-9F,6CPU
(1,096s)
0.7 (1,536s)
SX-9F,4CPU
0.5
※3
※3
SX-9F,2CPU
SX-9F,1CPU ,比較基準
※3
1.0
(2,142s)
※1
※3
Intel Fortran: -ipo -O3 -no-prec-div -xHost -assume buffered_io
CUDA nvcc: -O4 -arch=sm_35 -Xcompiler="-march=native –ffast-math–ftree-vectorize"
本研究では,nvccの -arch=sm_35 の部分のみを変更した.これは「Compute Capability 3.5向けに最適化を行う」と
いうコンパイルオプション.
ECC(Error Checking and Correcting)設定=OFF.
※2 「CUDA CとFortranを組み合わせたマルチGPU対応コード」を使用.ECC設定=OFF.
CUDAの部分はNVIDIA CUDAコンパイラを適用.Fortranの部分はPGIコンパイラを適用.
※3
FORTRAN90/SXの「-Pauto」を適用.
6. おわりに
本研究では,最新の「NVIDIA® Tesla® K20X 6GB
(2688CUDAコア)」のシングルGPUを用いたRIAMCOMPACT®の大規模計算(約1,000万格子点)を試み
た.その結果,最新の「NVIDIA® Tesla® K20X 6GB
(2688CUDAコア)」のシングルGPUを用いた計算では,
驚異的な演算速度が達成されていることが判明した.す
な わ ち , 同 社 の 「 NVIDIA® Tesla® M2090 6GB
(512CUDAコア)」を4枚用いたマルチGPUの並列計算,
またスーパーコンピュータNEC製SX-9Fの6CPUを利用
した並列計算の結果よりも,計算時間が速い結果となっ
た.これは「NVIDIA® Tesla® K20X 6GB (2688CUDAコ
ア)」のCUDAコア数が大幅に増加したことによると言え
る.
ここで改めて強調しておきたい点がある.実地形版
RIAM-COMPACT®ソフトウエアでは,使用するメモリサ
イズが極めて小さいのも大きな特長の一つである.その
結果,シングルGPU(メモリサイズ6GB)の環境下であっ
ても,約1,000万格子点もの大規模計算が実現した.な
お,K20X単体では1,800万格子点までは計算が可能で
あると推測された(別のマシンで計測した1,800万格子点
のメモリ使用量が約5,674MBであったため).
現在,K20Xの上位モデルの「NVIDIA® Tesla® K40
ATLAS 12GB (2880CUDAコア)」の開発が計画されてい
る.これが実現すれば,1GPU(シングルGPU)の環境下
において,より大規模かつ高速な数値風況診断が可能
になることが期待される.
謝辞
本研究の一部は,科学研究費補助金 基盤B「震災
特区の大気環境改善と風力発電の適切な普及に資す
る狭域数値風況予測技術の開発(研究課題番号:
24310120)」,および挑戦的萌芽研究「数値風況予測技
術リアムコンパクトをコア技術とした風車の安全運転に
関する研究開発(研究課題番号:25560166)」の援助を
受けました.
HPCシステムズ(株)には,計算時間の評価などで多
大な協力を得ました.
ここに記して感謝の意を表します.
参考文献
1) 内田孝紀:LESに基づいたRIAM-COMPACT®
CFDモデルの紹介―風車の安全運転に資する数
値風況診断技術の確立へ向けて―,日本風力エ
ネルギー学会誌,Vol.36,通巻105,pp.6-9,2013
2) 内田孝紀:インテル次世代ハイエンドCPU「Sandy
Bridge-EP 」 を 用 い た RIAM-COMPACT® の
OpenMP並列風況シミュレーション―ここまできた!
デスクトップPC1台による大規模計算とその高速化
―,日本風力エネルギー学会論文集,Vol.36,通
巻101,pp.82-85,2012
3) 内田孝紀,大屋裕二:GPGPUコンピューティングに
よる数値風況予測技術RIAM-COMPACT®の高速
化,風力エネルギー協会誌,Vol.35,通巻98,
pp.78-84,2011
4) 内田孝紀:GPGPUコンピューティングによる数値風
況予測技術RIAM-COMPACT®の高速化―第2報
マルチGPUによる大規模計算の試み―,日本風力
エネルギー学会誌,通巻103,2012