SlideShare a Scribd company logo
非静力学海洋モデルkinaco
のGPUによる高速化
山岸孝輝1, 松村義正2
1 高度情報科学技術研究機構
2 東京大学大気海洋研究所
平成28年度 高速化ワークショップ
~「京」を中核とするHPCI、メニーコアを見据えて~
平成29年3月24日 秋葉原UDXカンファレンス
Ver. 1.1
発表の概要
GPUの基本
ハードの特徴
実行モデル・プログラミングモデル
性能を引き出すための基本
海洋モデルのGPUによる高速化事例
まとめ
2
(※本発表ではNVIDIA GPUを前提)
GPUの基本
3
GPUの構造
単純な構造でリソースの大半は演算 多数のコア
NVIDIA Kepler GPUのブロックダイアグラム
4
ハード性能(演算)
低クロックのコアを多数
バルクで高い演算性能、高並列計算
コア内パイプライン化あり
複雑な機構は無し
インオーダで処理
無し:プリフェッチ、分岐予測etc.
高い演算性能、高並列計算
単純な命令スケジューリング
5
ハード性能(メモリ・キャッシュ)
高いメモリバンド幅、高レイテンシ
GDDR5の性質
キャッシュ:CPUより弱い(階層による)
演算にリソースを多く割り当てた結果
高いメモリバンド幅、高レイテンシ
弱いキャッシュ
6
CPU/GPU 実行モデル
各々のハードウェアの特徴によるもの
64 65 66 67 68 94 95
0 1 2 3 4
33
1
33
0…
…
スレッド0
64 65 66 67 68 94 95…
7
CPU GPU
1スレッドが連続データを処理
CPUコア数=スレッド数
基本は1スレッドが1データを処理
GPUコア数<<スレッド数
逐次処理 並列処理
カーネルのCUDA化
__global__ void func(){
int i = threadidx.x;
JST[i] = UTC[i] + 9;
GPU
void func(){
for(i=0;i<N;i++){
JST[i] = UTC[i] + 9;
}
CPU
1スレッドが連続データを処理 1スレッドが1データを処理
関数利用時にス
レッドの総数・
形状を指定
組み込み命令で
スレッド管理
書くだけなら結構簡単だが、スレッドとデータの対応付けは
完全に書き手に任されている
8
逐次処理 並列処理
ハードウェア・実行モデル・プログラミングモデルの理解の
もとでスレッドとデータの対応をつける必要あり
CUDA: NVIDIA
GPU用の原語拡張
CPU 依存性のある命令
do i = 1, N
tmp = data( i )
out(i) = tmp + 2.0
end do
プリフェッチ、キャッシュ、ソフトウェアパ
イプライン など 様々な手段で対応
実
行
待
ち
データ読
み込み待
ちが発生
1スレッドが逐次で処理
9
時間
GPU スレッドの切り替え
0 1 2 3 0
0
1
2
3
ストールしたスレッド
→待機していた他のス
レッドに入れ替え
他のスレッドにもレジ
スタを割り当てて、準
備をさせておく
→外部メモリなどへの
待避無しにすぐに切
り替え可能
※本当は32スレッドごとに入れ替
わる(ここでは省略)
コアが常に稼働する状態
10
時間
:実行 :待ち(ストール) :待機(active)
スレッドの切り替え(続き)
効率的にレイテンシを隠蔽するには
スレッドが多い方がよい
スレッド間の同期はなるべくとりたくない
スレッドを「自由に」
レイテンシを隠蔽出来れば、GPUの利点
「高い演算性能」と「広いメモリバンド幅」を
活用出来る
11
スレッドの階層とメモリの階層
各階層でどこまでデータを共有できるかを把握する
※レジスタとL1/シェアードメモリは複数のスレッド(最大で2048)でリソースを分け合うことに注意12
レジスタ
65Kスレッド
L1/
シェアードメモリ
48KB
ブロック
(例: 256スレッド)
L2
1MB
メモリ
5GB
グリッド
(全スレッド) ……
NVIDIA K20c
コアレスアクセス
64 65 66 67 68 94 95
0 1 2 3 4
33
1
33
0
インデックスが連続したスレッド群
アドレスが連続したメモリ領域
…
…
+
64 65 66 67 68 94 95
0 1 2
11
5 ex. ストライド2のアクセス
→メモリ帯域が半分無駄に!!
…
…
両方とも連続するようなアルゴリズムが望ましい
またはシェアードメモリの活用
13
スレッドレベルの並列性
thread 0
x = x + c
x = x + b
x = x + a
thread 1
y = y + c
y = y + b
y = y + a
thread 2
z = z + c
z = z + b
z = z + a
thread 3
w = w + c
w = w + b
w = w + a
4つの独立な命令
独立なスレッドを複数用意
スレッドを切り替えてレイテンシを隠蔽
14Volkov (2010)より
命令レベルの並列性
thread 0
w = w + b
z = z + b
y = y + b
x = x + b
w = w + a
z = z + a
y = y + a
x = x + a
Volkov (2010)より15
4つの独立な命令
独立な命令をスレッドの中で並列処理
スレッドレベルの並列性
vs 命令レベルの並列性
基本はデータ並列性
多数のスレッドを用意する
複数データ/1スレッド を試してみる
どこかに最適解がある
どちらが良いかは処理の内容次第
余計なデータロードの削減も期待できる
16
ここまでのまとめ
GPUのハード性能
Good: 高い演算性能、高バンド幅
Bad: 高レイテンシ、弱いキャッシュ
GPUの実行モデルとプログラミングモデル
スレッドの切り替えによるレイテンシの隠蔽
階層化されたスレッドとメモリ、両者の対応
その他性能を引き出すために重要なこと
コアレスアクセス
命令レベルの並列性
17
海洋モデルのGPUによる高速化事例
18
非静力学海洋モデル kinaco
ウェッデル海における南極低層
水形成の再現シミュレーション
- 3次元Navier-Stokes方程式、移流拡散方程式
- 静水圧近似なし、3次元の流れを陽に計算
- 等方構造格子
- ポワソン/ヘルムホルツ方程式をマルチグリッ
ド法を用いた前処理付きCG法で求解
- 詳細はMatsumura and Hasumi (2008)
GPU向けの最適化:
- Yamagishi and Matsumura (2016)
- SC15, SC16 Poster session
~1kmのスケールの運動
を詳細に表現
19
CPU向けの最適化実績有り
3種類のカーネル最適化事例を紹介
Case1: コアレスアクセス
Case2: 命令レベルの並列性
Case3: スレッドレベルの並列性
20
Case1:疎行列-ベクトル積
DO k=1, n3
DO j=1, n2
DO i=1, n1
out(i,j,k) = a(-3,i,j,k) * x(i, j, k-1) &
+ a(-2,i,j,k) * x(i, j-1,k ) &
+ a(-1,i,j,k) * x(i-1,j, k ) &
+ a( 0,i,j,k) * x(i, j, k ) &
+ a( 1,i,j,k) * x(i+1,j, k ) &
+ a( 2,i,j,k) * x(i, j+1,k ) &
+ a( 3,i,j,k) * x(i, j, k+1)
END DO
END DO
END DO
-3 -2 -1 0 1 2 3
a(-3,i,j,k)~a( 3,i,j,k)
7点ステンシル計算に相当
係数行列
係数の空間的配置
-3
3
1-1
-2
2
0
キャッシュライン上に7
点をまとめる
21
CPU実装
GPUでコアレスアクセス
a(i,j,k,-3)
a(i+1,j,k,-3)
a(i+2,j,k,-3)
thread(id)
thread(id+1)
thread(id+2)
a(-3:3,i,j,k) a(i,j,k,-3:3)
GPUの各スレッドがストライドアクセス(7間隔)
a(-3,i,j,k) a(-3,i+1,j,k) a(-3,i+2,j,k)
thread(id) thread(id+1) thread(id+2)
次元の入れ替えでコアレスアクセス
22
Case 2: 命令レベルの並列性
i = threadidx%x + blockdim%x * (blockidx%x-1)
j = threadidx%y + blockdim%y * (blockidx%y-1)
k = threadidx%z + blockdim%z * (blockidx%z-1)
out(i,j,k) = a(i,j,k,-3) * x(i, j, k-1) &
+ a(i,j,k,-2) * x(i, j-1,k ) &
+ a(i,j,k,-1) * x(i-1,j, k ) &
+ a(i,j,k, 0) * x(i, j, k ) &
+ a(i,j,k, 1) * x(i+1,j, k ) &
+ a(i,j,k, 2) * x(i, j+1,k ) &
+ a(i,j,k, 3) * x(i, j, k+1)
できる限り多くのスレッドを設定 (i, j, k)
• 3次元スレッド(i, j, k)
• 1スレッド for 1データ
スレッドを切り替えることでレイテンシを隠蔽 23
命令レベルの並列性を確保
独立な命令をスレッド内で繰り返し
i = threadidx%x + blockdim%x * (blockidx%x-1)
j = threadidx%y + blockdim%y * (blockidx%y-1)
DO k=1, n3
out(i,j,k) = a(i,j,k,-3) * x(i, j, k-1) &
+ a(i,j,k,-2) * x(i, j-1,k ) &
+ a(i,j,k,-1) * x(i-1,j, k ) &
+ a(i,j,k, 0) * x(i, j, k ) &
+ a(i,j,k, 1) * x(i+1,j, k ) &
+ a(i,j,k, 2) * x(i, j+1,k ) &
+ a(i,j,k, 3) * x(i, j, k+1)
END DO
命令を重ねてレイテンシ隠蔽
• 2次元スレッド(i, j)
• 1スレッド for 1カラム
(i, j)
本カーネルでは2次元
スレッドの設定の方
が高速 24
Case 3: スレッドレベルの並列性
物理過程の1カーネル 処理の概要
※実際のカーネルはより
複雑、要点だけ抽出
DO i,j,k loop
tx(i,j,k) = Fx( A(i,j,k) )
ty(i,j,k) = Fy( B(i,j,k) )
tz(i,j,k) = Fz( C(i,j,k) )
END DO
DO i,j,k loop
out(i,j,k) = Fout( tx(i,j,k), tx(i-1,j,k),
ty(i,j,k), ty(i,j-1,k),
tz(i,j,k), tz(i,j,k-1) )
END DO
k-1
i-1
j-1
(i,j,k)
25
CPU tuned
DO k loop
DO i,j loop
tz0(i,j) = tz1(i,j)
tx (i,j,k) = Fx( A(i,j,k) )
ty (i,j,k) = Fy( B(i,j,k) )
tz1(i,j) = Fz( C(i,j,k) )
END DO
DO i,j loop
out(i,j,k) = Fout( tx(i,j,k), tx(i-1,j,k),
ty(i,j,k), ty(i,j-1,k),
tz1(i,j) , tz0(i,j) )
END DO
END DO
2次元データで
ブロック化
キャッシュに
k軸のデータは使い回しする
26
GPU tuned
i=threadidx%x; j=threadidx%y
DO k loop
r_tz0 = r_tz1
r_tx = Fx( A(i ,j ,k) )
r_ty = Fy( B(i ,j ,k) )
r_tz1 = Fz( C(i ,j ,k) )
r_tx_im1 = Fx( A(i-1,j ,k) )
r_ty_jm1 = Fy( B(i ,j-1,k) )
out(i,j,k) = Fout( r_tx , r_tx_im1,
r_ty , r_ty_jm1,
r_tz1, r_tz0 )
END DO
2次元でスレッ
ドを生成
隣接格子上の
計算を付加
レジスタで確保
k-1
i-1
j-1
(i,j,k)
各スレッドが独立
同期が不要 27
1スレッド
K軸ループ
Case3「次に」何をやるべきか
複数データ/1スレッド
レジスタ増えるがロードストア・演算が減少
シェアードメモリの利用
tx, ty, tzを各スレッドで計算させた後スレッド間
で共有
スレッド間で同期をとる必要あり
以上はプロセッサのリソースとのバランスが
重要
レジスタ、シェアードメモリ増加→割り当てス
レッド数減少→レイテンシ隠蔽が非効率化
28
海洋モデル高速化 上記以外の施策
カーネルの分割・融合
シェアードメモリによるスレッド間での共有
CPU-GPU間転送の最小化
混合精度演算(連立方程式ソルバ前処理を単
精度化)
粒子追跡コードにてメモリアクセスの改善
テクスチャメモリの活用
参考:Yamagishi and Matsumura (2016),
SC(15, 16)Poster Session
29
性能評価事例 実験設定
CPU (Fujitsu SPARC64VIIIfx) vs GPU
(NVIDIA K20c)
1 CPU vs 1 GPU
傾圧不安定を伴う対流混合実験
Visbeck et al. (1996)
外部強制: 温度forcing, コリオリ力
等方構造格子
size: (256, 256, 32)
時間ステップ/総時間
2min/5hours (150 steps)
256
256
32
3次元: 200万
2次元: 6万
スレッド数
性能比較
CPU GPU Speedup
all components 174.2 37.3 4.7
Poisson/Helmholtz
solver
36.8 10.5 3.5
others 137.4 26.8 5.1
経過時間[s]: CPU vs GPU
GPUはCPU比較で4.7倍高速 31
CPU GPU
Computational performance (GFLOPS) 7.7 42.3(dp)/3.8(sp)
GFLOPS/PEAK (%) 6.0 3.6(dp)/0.1(sp)
Memory throughput (GB/S) 22.2 114.1
演算, メモリ性能: CPU vs GPU
dp: double precision,
sp: single precision
まとめ
GPUの基本を説明
ハードの特長、実行モデル・プログラミング
モデル
GPUで性能を引き出すための基本
非静力学海洋モデルの高速化事例紹介
コアレスアクセス、命令レベルの並列性、レ
ジスタ活用によるスレッドレベルの並列性
紹介しきれなかった細かい工夫も多数
CPU比較で5倍弱の高速化
32
References
NVIDIA公式資料
CUDA C Best Practices Guide, CUDA C Programming Guide
Programming Massively Parallel Processors, Third Edition, David B.
Kirk, Wen-mei W. Hwu, Morgan Kaufmann.
CUDA Cプロフェッショナルプログラミング, John Chengら, インプレス.
V. Volkov. Better performance at lower occupancy. GPU Technology
Conference 2010.
Dan Cyca. Essential CUDA Optimization Techniques. 2014.
http://on-demand.gputechconf.com/gtc/2014/video/S4702-
essential-cuda-optimization-techniques-acceleware-part-4.mp4
Matsumura, Y. and Hasumi, H., 2008. A non-hydrostatic ocean
model with a scalable multigrid Poisson solver. Ocean Modelling.
Yamagishi, T. and Matsumura, Y., 2016. GPU Acceleration of a Non-
hydrostatic Ocean Model with a Multigrid Poisson/Helmholtz Solver.
Procedia Computer Science 80, 1658-1669.
出川智啓, GPGPU実践プログラミング,
http://www.toffee.jp/streaming/gpgpu/index.html
33

More Related Content

What's hot

2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
智啓 出川
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
Hitoshi Sato
 
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
RCCSRENKEI
 
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティングCMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティングComputational Materials Science Initiative
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
Kimikazu Kato
 
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境(OpenCL)2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境(OpenCL)
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
智啓 出川
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
 
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
智啓 出川
 
関東GPGPU勉強会資料
関東GPGPU勉強会資料関東GPGPU勉強会資料
関東GPGPU勉強会資料
Kimikazu Kato
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
智啓 出川
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門Yosuke Onoue
 
アプリケーションの性能最適化の実例1
アプリケーションの性能最適化の実例1 アプリケーションの性能最適化の実例1
アプリケーションの性能最適化の実例1
RCCSRENKEI
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
Kohei KaiGai
 
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
Computational Materials Science Initiative
 
2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算
智啓 出川
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
智啓 出川
 

What's hot (20)

2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
 
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
 
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティングCMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
 
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境(OpenCL)2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境(OpenCL)
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)
 
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
 
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
2015年度先端GPGPUシミュレーション工学特論 第1回 先端シミュレーションおよび産業界におけるGPUの役割
 
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
 
関東GPGPU勉強会資料
関東GPGPU勉強会資料関東GPGPU勉強会資料
関東GPGPU勉強会資料
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
 
アプリケーションの性能最適化の実例1
アプリケーションの性能最適化の実例1 アプリケーションの性能最適化の実例1
アプリケーションの性能最適化の実例1
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
 
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
 
2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
 
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
 

Viewers also liked

Encapsulamiento ingrid
Encapsulamiento ingridEncapsulamiento ingrid
Encapsulamiento ingrid
Ingrid Yurley Melo Conde
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
Robert Rivero
 
Memorias
MemoriasMemorias
Memorias
Luis Liendo
 
A babilônia na profecia bíblica
A babilônia na profecia bíblicaA babilônia na profecia bíblica
A babilônia na profecia bíblica
Luiz Henrique Romanin
 
Metodos de programacion no-lineal
Metodos de programacion no-linealMetodos de programacion no-lineal
Metodos de programacion no-lineal
Robert Rivero
 
Camu Shot Project
Camu Shot ProjectCamu Shot Project
Camu Shot Project
ConiidsPresentations
 
Fhem Nutzertreffen - Günstige Aktoren mit 1-Wire
Fhem Nutzertreffen - Günstige Aktoren mit 1-WireFhem Nutzertreffen - Günstige Aktoren mit 1-Wire
Fhem Nutzertreffen - Günstige Aktoren mit 1-Wire
fuer_slidehare
 
MAESTRO PULSA
MAESTRO PULSAMAESTRO PULSA
MAESTRO PULSA
maestropulsa
 
3Com 7030-10166
3Com 7030-101663Com 7030-10166
3Com 7030-10166
savomir
 
Aprenda matlab 7_como_si_estuviera_en_primero
Aprenda matlab 7_como_si_estuviera_en_primeroAprenda matlab 7_como_si_estuviera_en_primero
Aprenda matlab 7_como_si_estuviera_en_primero
Jessy Carolina Dugarte Piñate
 
Desarrollo cientifico y tecnológico en colombia.
Desarrollo cientifico y tecnológico en colombia.Desarrollo cientifico y tecnológico en colombia.
Desarrollo cientifico y tecnológico en colombia.
Silvia Quiroga
 
Muro burro
Muro burroMuro burro
Muro burro
robertoortiz
 
La Evaluacion
La EvaluacionLa Evaluacion
La Evaluacion
Arelys Vasquez
 
Encapsulamiento ingrid
Encapsulamiento ingridEncapsulamiento ingrid
Encapsulamiento ingrid
Ingrid Yurley Melo Conde
 
Compresores centrífugos radiales
Compresores centrífugos radialesCompresores centrífugos radiales
Compresores centrífugos radiales
Ciro Polanco
 
気候モデル放射カーネルのGPUへの移植と高速化
気候モデル放射カーネルのGPUへの移植と高速化気候モデル放射カーネルのGPUへの移植と高速化
気候モデル放射カーネルのGPUへの移植と高速化
Takateru Yamagishi
 
Los mejores marcas de automóviles
Los mejores marcas de automóvilesLos mejores marcas de automóviles
Los mejores marcas de automóviles
axelzeron1
 
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
智啓 出川
 

Viewers also liked (20)

Encapsulamiento ingrid
Encapsulamiento ingridEncapsulamiento ingrid
Encapsulamiento ingrid
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Memorias
MemoriasMemorias
Memorias
 
A babilônia na profecia bíblica
A babilônia na profecia bíblicaA babilônia na profecia bíblica
A babilônia na profecia bíblica
 
Metodos de programacion no-lineal
Metodos de programacion no-linealMetodos de programacion no-lineal
Metodos de programacion no-lineal
 
Camu Shot Project
Camu Shot ProjectCamu Shot Project
Camu Shot Project
 
Fhem Nutzertreffen - Günstige Aktoren mit 1-Wire
Fhem Nutzertreffen - Günstige Aktoren mit 1-WireFhem Nutzertreffen - Günstige Aktoren mit 1-Wire
Fhem Nutzertreffen - Günstige Aktoren mit 1-Wire
 
MAESTRO PULSA
MAESTRO PULSAMAESTRO PULSA
MAESTRO PULSA
 
3Com 7030-10166
3Com 7030-101663Com 7030-10166
3Com 7030-10166
 
Aprenda matlab 7_como_si_estuviera_en_primero
Aprenda matlab 7_como_si_estuviera_en_primeroAprenda matlab 7_como_si_estuviera_en_primero
Aprenda matlab 7_como_si_estuviera_en_primero
 
Desarrollo cientifico y tecnológico en colombia.
Desarrollo cientifico y tecnológico en colombia.Desarrollo cientifico y tecnológico en colombia.
Desarrollo cientifico y tecnológico en colombia.
 
Muro burro
Muro burroMuro burro
Muro burro
 
La Evaluacion
La EvaluacionLa Evaluacion
La Evaluacion
 
Encapsulamiento ingrid
Encapsulamiento ingridEncapsulamiento ingrid
Encapsulamiento ingrid
 
Compresores centrífugos radiales
Compresores centrífugos radialesCompresores centrífugos radiales
Compresores centrífugos radiales
 
気候モデル放射カーネルのGPUへの移植と高速化
気候モデル放射カーネルのGPUへの移植と高速化気候モデル放射カーネルのGPUへの移植と高速化
気候モデル放射カーネルのGPUへの移植と高速化
 
Los mejores marcas de automóviles
Los mejores marcas de automóvilesLos mejores marcas de automóviles
Los mejores marcas de automóviles
 
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
 
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
 
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
 

Similar to 非静力学海洋モデルkinacoのGPUによる高速化

200514material minami
200514material minami200514material minami
200514material minami
RCCSRENKEI
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
Proktmr
 
PBL1-v1-008j.pptx
PBL1-v1-008j.pptxPBL1-v1-008j.pptx
PBL1-v1-008j.pptx
NAIST
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
Fixstars Corporation
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
RCCSRENKEI
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
Ryuuta Tsunashima
 
第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
 
Fftw誰得ガイド
Fftw誰得ガイドFftw誰得ガイド
Fftw誰得ガイド
chunjp
 
Slide
SlideSlide
OutLookAR for EKF_SLAM_Model
OutLookAR for EKF_SLAM_ModelOutLookAR for EKF_SLAM_Model
OutLookAR for EKF_SLAM_Model
Toshiki Imagaw
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
Kohei KaiGai
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT
Kohei KaiGai
 
Python Data-Visualization Package Status
Python Data-Visualization Package StatusPython Data-Visualization Package Status
Python Data-Visualization Package Status
Yukio Okuda
 
AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化
Hiroshi Watanabe
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
Developers Summit
 
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Hiraku Toyooka
 

Similar to 非静力学海洋モデルkinacoのGPUによる高速化 (20)

200514material minami
200514material minami200514material minami
200514material minami
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 
PBL1-v1-008j.pptx
PBL1-v1-008j.pptxPBL1-v1-008j.pptx
PBL1-v1-008j.pptx
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
 
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
 
Fftw誰得ガイド
Fftw誰得ガイドFftw誰得ガイド
Fftw誰得ガイド
 
Slide
SlideSlide
Slide
 
OutLookAR for EKF_SLAM_Model
OutLookAR for EKF_SLAM_ModelOutLookAR for EKF_SLAM_Model
OutLookAR for EKF_SLAM_Model
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT
 
Python Data-Visualization Package Status
Python Data-Visualization Package StatusPython Data-Visualization Package Status
Python Data-Visualization Package Status
 
AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
 
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
 

非静力学海洋モデルkinacoのGPUによる高速化