第3回配信講義 計算科学技術特論B

766 Views

April 23, 24

スライド概要

第3回 4月25日 アプリケーションの性能最適化の実例1とCPU 単体性能とは?
第2回で講義した「高並列性能最適化」の実例について講義する。また、第2回で述べたもう一つのポイント「単体CPU実行性能を意識したプログラミング」の基礎となる「単体CPU実行性能」について講義する。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

計算科学技術 特論B 第3回 アプリケーションの性能最適化の実例1 とCPU単体性能とは? 2024年4月 ジャパンメディカルデバイス 開発本部 本部長 南�一生 [email protected] 2024年4月 計算科学技術特論B 講義全体の概要 • スーパーコンピュータとアプリケーションの性能 • アプリケーションの性能最適化1(高並列性能最適化) • アプリケーションの性能最適化の実例1とCPU単体性能と は? • アプリケーションの性能最適化2(CPU単体性能最適化) • アプリケーションの性能最適化の実例2 2024年4月 計算科学技術特論B 2

2.

今回の講義内容 •RSDFTの性能最適化(高並列性能 最適化の実例) •CPU単体性能とは? 2024年4月 計算科学技術特論B 3 RSDFTの性能最適化 (高並列性能最適化の実例) 2024年4月 計算科学技術特論B 4

3.

RSDFTの計算機科学的な位置付け RSDFT CPU 単体性能 difficult High easy Low 2024年4月 計算科学技術特論B Low Parallelization Parallel Performance difficult 5 並列性能 High 5 スーパーコンピュータを使うために(第2回) (1)定式化(物理・数学の世界) (2)離散化(+-×÷の世界) (3)アルゴリズム(数学の世界) (4)プログラミング(コンピュータの世界) (5)並列化 (6)性能チューニング 2024年4月 計算科学技術特論B 6

4.

離散化の結果 連立1次方程式 Ax = b A : 行列 b : 定数ベクトル x : 解ベクトル 固有値方程式 Ax = λ x λ : 固有値(スカラ) A : 行列 x : 固有ベクトル 2024年4月 計算科学技術特論B 7 離散化の結果 連立1次方程式 Ax = b A : 行列 b : 定数ベクトル x : 解ベクトル 固有値方程式 Ax = λ x λ : 固有値(スカラ) A : 行列 x : 固有ベクトル 2024年4月 計算科学技術特論B 8

5.
[beta]
RSDFTとは
● ナノスケールでの量子論的諸現象を第一原理に立脚して解明し新機

能を有するナノ物質・構造を予測

炭素ナノチューブでのスピン磁性

● 例えば・・・

†

)>mVk

&Ev|€rsu

漏れ電流が問題

"ƒz~‚x„FETƒK0 $v|€rsu„
o‚vK%
;<
n-Si

  
Zlf`LSIdL=
#
PMNO

t‚s

w~n€
QM NO

3K
LJ4 eFET
Si中原子空孔による準位の電子雲
ƒK0 $v|€rsu„d9
ci^_.[l_U]
 #"
  #

\W\bXj9
m\FgkLSId1e
 #"$
2020ˆ2030c:-mDVka_UkS

$
$
!# dYbG
9 
cU,lK*
R
LSId+CK


,lK* d]g \U&Edv|€rsuX'8[l_UkS
`hq}p€xyn{FETe5%d&E`Tka!
?[l_UkS
漏れ電流を押さえる

2024年4月

計算科学技術特論B

o‚v

t‚s

xy‡I

w~n€

9

cH[lk0

RSDFTの原理

q}p€xyn{FETd@#BAceI 26/A7X(

Kohn-Sham方程式
電子密度 n(r )=|

∑ ϕi (r )

2

波動関数

i

φi: 電子軌道(=波動関数)

ハミルトニアン

i:電子準位(=エネルギーバンド)
r:空間離散点(=空間格子)

Hϕ i (r) = ε iϕ i (r) 固有値方程式
2024年4月

計算科学技術特論B

10

6.

RSDFTの原理 実空間法 Hϕ i (r) = ε iϕ i (r) 固有値方程式 Kohn-Sham方程式を3次元格子上に 離散化し解く ML2 各次元方向をML1,ML2,ML3等分して格子を生成 ML(=ML1×ML2×ML3)次元のエルミート行列の固 有値問題 ユニットセル(実際は3次元) 2024年4月 計算科学技術特論B 11 RSDFTの計算フロー Self-Consistent Field procedure 1 ( CG ) 共役勾配法 2 ( GS ) Gram-Schmidt規格直交化 3 密度とポテンシャルの更新 4 ( SD ) 部分対角化 SCF計算 2024年4月 計算科学技術特論B 12

7.

RSDFTの計算フロー 原子座標の読み込み 初期波動関数.初期密度の準備 原子構造の最適化 ポテンシャル計算 SCFループ 部分対角化 波動関数の更新 共役勾配法 or 波動関数の更新 最小残差法 Gram-Schmidt直交化 現時点での波動関数で密度を計算 4~5回の反復 組み合わせて使うとSCF収束が速くなる SCFループの回数で使うルーチンを変更 変更する回数は入力で与える scf_mix 新しい密度で局所ポテンシャルを再計算 未収束 SCF収束判定 収束 原子に働く力Fの計算 収束 原子構造の収束判定 未収束 原子の位置を少しづらす 2024年4月 計算科学技術特論B END 13 RSDFTの並列化 J.-I. Iwata et al., J. Comp. Phys. (2010) Real space CPU space Blue : Si atom Yellow: electron density 2024年4月 計算科学技術特論B 14

8.

RSDFTのCPU単体性能の向上 スレッド並列化 キャッシュの有効利用 計算科学技術特論B 2024年4月 15 RSDFTのCPU単体性能の向上 GramSchmidt直交化の行列積化 ψ 1" = ψ1 ψ 2" = ψ 2 - ψ 1" ψ 2 ψ 1" ψ 3" = ψ 3 - ψ 1" ψ 3 ψ 1" - ψ 2" ψ 3 ψ 2" ψ 4" = ψ 4 - ψ 1" ψ 4 ψ 1" - ψ 2" ψ 4 ψ 2" - ψ 3" ψ 4 ψ 3" ψ 5" = ψ 5 - ψ 1" ψ 5 ψ 1" - ψ 2" ψ 5 ψ 2" - ψ 3" ψ 5 ψ 3" - ψ 4" ψ 5 ψ 4" ψ 6" = ψ 6 - ψ 1" ψ 6 ψ 1" - ψ 2" ψ 6 ψ 2" - ψ 3" ψ 6 ψ 3" - ψ 4" ψ 6 ψ 4" - ψ 5" ψ 6 ψ 5" ψ 7" = ψ 7 - ψ 1" ψ 7 ψ 1" - ψ 2" ψ 7 ψ 2" - ψ 3" ψ 7 ψ 3" - ψ 4" ψ 7 ψ 4" - ψ 5" ψ 7 ψ 5" - ψ 6" ψ 7 ψ 6" ψ 8" = ψ 8 - ψ 1" ψ 8 ψ 1" - ψ 2" ψ 8 ψ 2" - ψ 3" ψ 8 ψ 3" - ψ 4" ψ 8 ψ 4" - ψ 5" ψ 8 ψ 5" - ψ 6" ψ 8 ψ 6" - ψ 7" ψ 8 ψ 7" ψ 9" = ψ 9 - ψ 1" ψ 9 ψ 1" - ψ 2" ψ 9 ψ 2" - ψ 3" ψ 9 ψ 3" - ψ 4" ψ 9 ψ 4" - ψ 5" ψ 9 ψ 5" - ψ 6" ψ 9 ψ 6" - ψ 7" ψ 9 ψ 7" - オリジナルは行列ベクトル積 ・ ・ ・ 2024年4月 計算科学技術特論B 16 ψ 8" ψ 9 ψ 8"

9.

RSDFTのCPU単体性能の向上 GramSchmidt直交化の行列積化 ベクトル積を行列積に変換 再帰分割法 三角部(DGEMV) 四角部(DGEMM) 依存関係のある三角部とない四角部にブロック化して計算 • 再帰的にブロック化することで四角部を多く確保 • 2024年4月 計算科学技術特論B 17 ※SDも同様に行列積化が可能 RSDFTのCPU単体性能の向上 計算コアの最適化 • 行列積化 RSDFT • 実空間差分法 • 空間並列 ターゲット計算機:PACS-CS, T2K-Tsukuba スレッド並列の実装 ターゲット計算機:PACS-CS, T2K-Tsukuba 2024年4月 計算科学技術特論B 18

10.

RSDFTの並列特性分析 2024年4月 計算科学技術特論B 19 RSDFTの並列特性分析(処理・演算量) ML:格子数,MB:バンド数 ルーチン DTCG 処理内容 演算量 MLxML対称行列の レイリー商 固有値,固有ベクトル を共役勾配法で固有値 の小さいものから順に MB本求める. O(ML×ML) →O(N2) minimize O(N2) ψnm H KS ψ n 高並列化性能 単体性能 空間方向 △ ロード>演算 スカラー値のallreduceがボトル 実効性能は低い ネック. 複数バンドの一括処理が有効 (ただし,2~5程度,キャッ シュサイズにより変わる). バンド方向 ○ ψn ψn GramSchmidt 規格直交化 O(MLxMB2) →O(N3) H m ,n = ψ m H KS ψ n O(N3) DIAG ○ バンド方向 △ アルゴリズム上,ロードインバ ランスを避けられない. 三角部の処理が非並列となる DGEMM,DGEMVが中心. 再帰分割法によりDGEMMが 支配的. ML次元の部分空間に 限ってハミルトニアン の対角化をする. 行列要素生成 (MatE) n −1 ' n ψ = ψ n − ∑ψ m ψ m ψ n O(MLxMB2) →O(N3) 空間方向 O(N3) バンド方向 m =1 固有値求解 (pdsyevd) 回転 (RotV) & $ $ $ % H N ×N N #& # & # !$ ! ! $! ! c = ε !$ n ! $ cn ! !$ ! $ ! "% " % " ψ n' ( r ) = ∑ cn ,mψ m ( r ) O(MB3)→O( N3) O(N3) O(MLxMB2) →O(N3) 計算科学技術特論B ○ ○ ▲ 高並列時のScalapackのスケー ラビリティに疑問. 空間方向 ○ バンド方向 m =1 2024年4月 空間方向 20 ○ DGEMM,DGEMVが中心. 再帰分割法によりDGEMMが 支配的. Psdyevdの下位では DGEMM,DGEMVを使用. DGEMM,DGEMVが中心. 再帰分割法によりDGEMMが 支配的.

11.

RSDFTの並列特性分析(コスト) 計算機 :RICC 8,000原子:格子数120x120x120,バンド数16,000 並列数 :8x8x8(空間方向のみ) SCFループ1回実行の実測データからSCFループ100回として実行時間を推定 処理内容 コスト 演算 プロセス間通信 初期化 パラメータの読込み 全プロセスへの転送 0.4% Bcast,Isend/Irecv SCF部 99.6% O(N3) DIAG 30.5% O(N3) DGEMM中心 行列生成部: Reduce, Isend/Irecv(HPSI) 固有値ソルバー部:PDSYEVD内(Bcast) ローテーション:部分Bcast,部分Reduce DTCG 27.4% O(N2) 演算<ロード スカラー値のallreduce中心 Isend/Irecv(ノンローカル項/HPSI) Isend/Irecv(境界データ交換/BCSET) GramSchmidt 38.6% O(N3) DGEMM中心 Allreduce (内積,規格化変数) Mixing, 途中結果の出力 3.1% DO SCFループ(100回と仮定) 途中結果出力は毎SCFではないのでコストは もっと少 ENDDO 2024年4月 計算科学技術特論B 21 RSDFTの並列特性分析(ブロック毎のスケーラビリティ) 計算機:T2K-Tsukuba コンパイラ&ライブラリ:PGI + mvapich2-medium S方向の分割数:128, 256, 512, 1024, 2048 Si4096(格子:96x96x96,バンド:8192) 実行時間,T2K-Tsukuba Si4,096(格子:96x96x96,バンド:8192) 速度向上率,T2K-Tsukuba 18.0 1000.0 SCF DIAG GS DTCG 900.0 14.0 12.0 700.0 速度向上率 実行時間(秒) 800.0 Ideal SCF DIAG GS DTCG 16.0 600.0 500.0 400.0 10.0 8.0 6.0 300.0 200.0 4.0 100.0 2.0 0.0 0 500 128 512 (4x4x8) (8x8x8) 2024年4月 計算科学技術特論B 1,000 1,500 並列数 1024 (8x8x16) 2,000 0.0 2,500 0 2048 (8x16x16) 500 128 512 (4x4x8) (8x8x8) 22 1,000 1,500 並列数 1024 (8x8x16) 2,000 2,500 2048 (8x16x16) 22

12.

そもそも並列化とは? 計算時間 通信時間 通信時間 プロセッサ1 隣接通信 プロセッサ2 大域通信 例えば総和計算 MPI_allreduce 隣接通信 プロセッサ3 隣接通信 プロセッサ4 2024年4月 計算科学技術特論B 23 MPIの概要 2024年4月 計算科学技術特論B 24

13.

RSDFTの並列特性分析(ブロック毎のスケーラビリティ) Si4 0 9 6(格子:9 6x9 6x9 6,バンド:8 1 9 2) 演算時間と通信時間,T 2 K -Tsukuba 1000.0 通信(S :大域) 通信(S :隣接) 演算 900.0 800.0 実行時間(秒) 700.0 600.0 500.0 400.0 300.0 200.0 通信時間増大 100.0 128 256 512 1,024 2,048 128 256 512 1,024 2,048 128 256 512 1,024 2,048 128 256 512 1,024 2,048 0.0 SCF DIAG GS 並列数 DTCG ※PDSYEVDの通信は演算部に含まれている 2024年4月 計算科学技術特論B 25 RSDFTの並列特性分析(ブロック毎のスケーラビリティ) Si4 0 9 6(格子:9 6x9 6x9 6,バンド:8 1 9 2) 演算時間と通信時間,T 2 K -Tsukuba 1000.0 通信(S :大域) 通信(S :隣接) 演算 900.0 800.0 実行時間(秒) 700.0 600.0 500.0 400.0 300.0 200.0 100.0 128 256 512 1,024 2,048 128 256 512 1,024 2,048 128 256 512 1,024 2,048 128 256 512 1,024 2,048 0.0 SCF DIAG GS 並列数 演算の スケーラビリティ 悪化 DTCG ※PDSYEVDの通信は演算部に含まれている 2024年4月 計算科学技術特論B 26

14.

RSDFTの並列特性分析(並列・単体性能) ML:格子数,MB:バンド数 ルーチン 処理内容 DTCG 演算量 MLxML対称行列の レイリー商 固有値,固有ベクトル を共役勾配法で固有値 の小さいものから順に MB本求める. O(ML×ML) →O(N2) minimize O(N2) ψ m H KS ψ n 高並列化性能 単体性能 空間方向 △ ロード>演算 スカラー値のallreduceがボトル 実効性能は低い ネック. 複数バンドの一括処理が有効 (ただし,2~5程度,キャッ シュサイズにより変わる). 通信時間増大 演算時間と逆転 並列度の不足 ○ バンド方向 行列ベクトル積 性能は悪い ψn ψn GramSchmidt 規格直交化 O(MLxMB2) →O(N3) H m ,n = ψ m H KS ψ n O(N3) DIAG ○ 通信時間減少せず バンド方向 △ アルゴリズム上,ロードインバ ランスを避けられない. 三角部の処理が非並列となる DGEMM,DGEMVが中心. 再帰分割法によりDGEMMが 支配的. 演算時間と同程度 行列積化で良好 空間方向 通信時間増大 バンド方向 ○ DGEMM,DGEMVが中心. 再帰分割法によりDGEMMが 支配的. 並列度の不足 Psdyevdの下位では DGEMM,DGEMVを使用. Scalapackのスケー が悪い 並列度の不足 ML次元の部分空間に 限ってハミルトニアン の対角化をする. 行列要素生成 (MatE) 固有値求解 (pdsyevd) 回転 (RotV) n −1 O(MLxMB2) →O(N3) m =1 O(N3) ψ n' = ψ n − ∑ψ m ψ m ψ n & $ $ $ % H N ×N #& # & # !$ ! ! $! ! !$ c n ! = ε $ c n ! !$ ! $ ! "% " % " N ψ n' ( r ) = ∑ cn ,mψ m ( r ) O(MB3)→O( N3) O(N3) O(MLxMB2) →O(N3) m =1 2024年4月 空間方向 計算科学技術特論B O(N3) ○ 演算時間と同程度 ▲ 高並列時のScalapackのスケー ラビリティに疑問. ラビリティが悪い ○ 空間方向 バンド方向 ○ 行列積化で良好 Scalapackの性能 DGEMM,DGEMVが中心. 再帰分割法によりDGEMMが 支配的. 行列積化で良好 27 並列性能上のボトルネック 今まで示した調査を実施することにより処理ブロック毎に並列性能上の 問題がある事が発見される. それらを分析するとだいたい以下の6点に分類されると考える. 1 アプリケーションとハードウェアの並列度のミスマッチ (アプリケーションの並列度不足) 2 非並列部の残存 3 大域通信における大きな通信サイズ、通信回数の発生 4 フルノードにおける大域通信の発生 5 隣接通信における大きな通信サイズ、通信回数の発生 6 ロードインバランスの発生 RSDFTのボトルネック 2024年4月 計算科学技術特論B 28

15.

RSDFTの高並列化 RSDFT • 実空間差分法 • ベクトルの内積計算 計算コアの最適化 • 行列積化 ターゲット計算機:PACS-CS, T2K-Tsukuba が基本 スレッド並列の実装 • 空間並列 2024年4月 ターゲット計算機:PACS-CS, T2K-Tsukuba 計算科学技術特論B 29 RSDFTの高並列化 RSDFT • 実空間差分法 • ベクトルの内積計算 計算コアの最適化 • 行列積化 ターゲット計算機:PACS-CS, T2K-Tsukuba が基本 • 空間並列 スレッド並列の実装 ターゲット計算機:PACS-CS, T2K-Tsukuba 超並列向けの実装 • バンド並列の拡張 2024年4月 EIGENライブラリ※の適用 ※高速固有値ライブラリ • Imamura el al. SNA+MC2010 (2010) ターゲット計算機:K computer 計算科学技術特論B 30

16.
[beta]
B=8;#H9F6>@CE ZbTM@ !A
)3/F3"7GFe+
:GDH 9F><0;0Af@ *7GF> 1Fe

RSDFTの高並列化

1

固有値方程式

I[`NdP^c>WdUKLIA
,I[`NdP^cA $-

A]Q\TS+

2

(

3

%@25F4?%OJR.%

4

YaVdU@25F%A

5

'%@25F4?%OJR.%

6

bdUJcX_cQA

の対応

&A

Hϕ i (r) = ε iϕ i (r) φ : 電子軌道(=波動関数)

ML2

i

i:電子準位(=エネルギーバンド)

r:空間離散点(=空間格子)

2018年5月10日 計算科学技術 特論B

A

!30

ユニットセル(実際は3次元)



2024年4月

A

計算科学技術特論B



31

B=8;#H9F6>@CE ZbTM@ !A
)3/F3"7GFe+
:GDH 9F><0;0Af@ *7GF> 1Fe

RSDFTの高並列化

1

固有値方程式

I[`NdP^c>WdUKLIA
,I[`NdP^cA $-

A]Q\TS+

2

(

3

%@25F4?%OJR.%

4

YaVdU@25F%A

5

'%@25F4?%OJR.%

6

bdUJcX_cQA

の対応

&A

Hϕ i (r) = ε iϕ i (r) φ : 電子軌道(=波動関数)

ML2

i

A

i:電子準位(=エネルギーバンド)

r:空間離散点(=空間格子)

2018年5月10日 計算科学技術 特論B

A

i はエネルギーバンド量子数
i についての依存関係はない
空間(S)に加えエネルギーバンド(B)
!30

の並列を実装
万を超える並列度を確保
ユニットセル(実際は3次元)

2024年4月

計算科学技術特論B

32

17.

2 ( &A RSDFTの高並列化 3 %@25F4?%OJR.% A 並列軸拡張の効果 4 YaVdU@25F%A の対応 5 '%@25F4?%OJR.% A 空間 • 並列軸を増やす事で空間の分割 粒度を増やすことが出来る 6 bdUJcX_cQA • 10万並列レベルに対応可能 6並列 空間大域通信 2018年5月10日 計算科学技術 特論B • 空間並列のみの場合は全プロ !30 セッサ間の大域通信が必要 空間 • 通信時間の増大を招く 3×2並列 • 2軸並列への書換で空間に対す る大域通信が一部のプロセッサ 間での通信とできる • バンドに対する大域通信も同様 空間大域通信 バンド バンド • 大域通信の効率化が実現可 大域通信 2024年4月 計算科学技術特論B 33 RSDFTの高並列化 - 通信の見積りと効果の予測 空間+バンド並列版(S+B並列版) 下線はバンド並列で追加された通信 ■グローバル通信 ✓ALLREDUCE ➢GramSchmidt : 内積配列,規格化変数 ➢DTCG : スカラー変数 ✓REDUCE : ➢DIAG(MatE) ✓BCAST: ➢DIAG(RotV) ➢GramSchmidt :三角部で更新した波動関数を配送 ✓ALLGATHERV ➢DIAG ➢GramSchmidt ■隣接通信 ✓境界データの交換:BCSET ✓ノンローカル項計算:HPSI ✓対称ブロックデータの交換:DIAG(MatE) 2024年4月 計算科学技術特論B 34

18.

RSDFTの高並列化- Gram-Schmidtの実装 0 三角部 1 タスクはブロック・サイクリック で分配→負荷均等化 4 3 1 ? 四角部 2 5 3 2 処理の順番 バンド並列のランク番号 ? 7 6 8 3 0 10 9 6 (1) 三角部の計算 (2) 計算した値を四角部に転送(バンド方向の各プロセッサに分配) (3) 四角部を並列に計算 2024年4月 計算科学技術特論B 35 RSDFTの高並列化 - 通信の見積りと効果の予測 ルーチン 通信パターン GramSchmidt mpi_allgatherv mpi_real8 MB/バンド並列数 1 mpi_allreduce mpi_real8 NBLK*NBLK~ (NBLK1+1)*(NBLK1+1) MB/NBLK*MB/NBLK/バンド並列数 + Int(log(NBLK/NBLK1)*(MB/NBLK/バンド並列数) mpi_allreduce mpi_real8 NBLK1~1 NBLK1*(MB/NBLK/バンド並列数) mpi_allreduce mpi_real8 1 MB/NBLK*MB/NBLK/バンド並列数 + Int(log(NBLK/NBLK1)*(MB/NBLK/バンド並列数) +NBLK1*(MB/NBLK/バンド並列数) mpi_bcast mpi_real8 ML0*NBLK MB/NBLK/バンド並列数 allgatherv mpi_real8 MB/バンド並列数 1 mpi_reduce mpi_real8 MBLK*MBLK (MB/MBLK * MB/MBLK)/バンド並列数 Isend/irecv mpi_real8 MBLK*MBLK 1 mpic_bcast mpi_real8 MBSIZE*NBSIZE (MB/MBSIZE * MB/NBSIZE)/バンド並列数 mpi_isend mpi_real8 lma_nsend(irank)*MBLK 6*各方向の深さ*MB/MBLK/バンド並列数 mpi_irecv mpi_real8 lma_nsend(irank)*MBLK 6*各方向の深さ*MB/MBLK/バンド並列数 : バンド方向の通信 DIAG 型 通信サイズ 通信回数 Scalapack(pdsyev d)内の通信は省略 HPSI BCSET mpi_waitall - mpi_isend mpi_real8 Md*MBLK 6*MB/MBLK/バンド並列数 mpi_irecv mpi_real8 Md*MBLK 6*MB/MBLK/バンド並列数 mpi_waitall - - - 36 MB/MBLK/バンド並列数 MB/MBLK/バンド並列数 MB:バンド数,NBLK:行列x行列で処理する最大サイズ,NBLK1:行列xベクトルで処理する最小サイズ,MBSIZE:MBxMB行列の行方向のブロックサイズ, MBSIZE:MBxMB行列の列方向のブロックサイズ,MBLK:min(MBSIZE,NBSIZE), Md:高次差分の次数, lma_nsend:ノンローカル項の数 2024年4月 計算科学技術特論B 36

19.

RSDFTの高並列化 - 通信の見積りと効果の予測 ルーチン 通信パターン DTCG precond_cg BCSET HPSI BCSET 型 通信サイズ 通信回数 mpi_allreduce mpi_real8 MB_d MB/MB_d/バンド並列数 mpi_allreduce mpi_real8 MB_d MB/MB_d/バンド並列数 mpi_allreduce mpi_real8 MB_d MB/MB_d*Mcg/バンド並列数 mpi_allreduce mpi_real8 MB_d*6 MB/MB_d*Mcg/バンド並列数 mpi_allreduce mpi_real8 MB_d MB/MB_d*Mcg/バンド並列数 mpi_allreduce mpi_real8 MB 2 mpi_allreduce mpi_real8 MB_d MB/MB_d*Mcg/バンド並列数*3 mpi_isend mpi_real8 Md*MB_d 6*MB/MB_d*Mcg/バンド並列数 mpi_irecv mpi_real8 Md*MB_d 6*MB/MB_d*Mcg/バンド並列数 mpi_waitall - mpi_isend mpi_real8 lma_nsend(irank)* 6*各方向の深さ*MB/MB_d MB_d *(Mcg+1)/バンド並列数 mpi_irecv mpi_real8 lma_nsend(irank)* 6*各方向の深さ*MB/MB_d MB_d *(Mcg+1)/バンド並列数 mpi_waitall - mpi_isend mpi_real8 Md*MB_d 6*MB/MB_d*(Mcg+1)/バンド並列数 mpi_irecv mpi_real8 Md*MB_d 6*MB/MB_d*(Mcg+1)/バンド並列数 mpi_waitall - - - - MB/MB_d*Mcg/バンド並列数 MB/MB_d*(Mcg+1)/バンド並列数 MB/MB_d*(Mcg+1)/バンド並列数 MB:バンド数,MB_dバンドまとめ処理数,Md:高次差分の次数, lma_nsend:ノンローカル項の数 2024年4月 計算科学技術特論B 37 RSDFTの高並列化 - 効果の確認 Weak Scaling 測定 タスクサイズ/プロセスを固定する. 格子サイズ:12x12x12,バンドサイズ:2,400 バンド方向の並列数は8で固定. 空間方向を並列数に比例して増加させる. 原子数 格子数 並列数 パターン1 512 48x48x48 19,200 512 (4x4x4x8) パターン2 1,000 60x60x60 19,200 1,000(5x5x5x8) パターン3 1,728 72x72x72 19,200 1,728(6x6x6x8) パターン4 4,096 96x96x96 19,200 4,096(8x8x8x8) パターン5 8,000 120x120x120 19,200 8,000(10x10x10x8) T2K-Tsukubaで測定 2024年4月 バンド数 計算科学技術特論B 38

20.
[beta]
RSDFTの高並列化 - 効果の確認 Weak Scaling 測定
S i4 0 9 6(格子:9 6x9 6x9 6,バンド:8 1 9 2)
GS, Weak Scaling, T2K-Tsukuba

Si4096(格子:96x96x96,バンド:8192)
DTCG, Weak Scaling, T2K-Tsukuba
45.0

GS
演算
通信(S :大域)
通信(B :大域)

実行時間(秒)

50.0

DTCG
演算
通信(S:隣接)
通信(S:大域)
通信(B:大域)

40.0
35.0

実行時間(秒)

60.0

40.0
30.0
20.0

30.0
25.0
20.0
15.0
10.0

10.0

5.0
0.0
0

1,000

2,000

3,000

並列数

4,000

0.0

5,000

0

20.0
15.0
10.0
5.0

5,000

RotV
演算
通信(S:大域)

25.0
20.0
15.0



10.0



5.0

0.0

0.0

0

2024年4月

4,000

30.0

実行時間(秒)

実行時間(秒)

25.0

3,000

並列数

35.0

MatE
演算
通信(S:隣接)
通信(S:大域)

30.0

2,000

Si4096(格子:96x96x96,バンド:8192)
RoTV/DIAG, Weak Scaling, T2K-Tsukuba

Si4096(格子:96x96x96,バンド:8192)
MatE/DIAG, Weak Scaling, T2K-Tsukuba
35.0

1,000

1,000

2,000

3,000

並列数

4,000

5,000

計算科学技術特論B

0

1,000

2,000

3,000

4,000

5,000

B=8;#H9F6>@CE
ZbTM@ !A
並列数
)3/F3"7GFe+
39
:GDH 9F><0;0Af@ *7GF> 1Fe
1

I[`NdP^c>WdUKLIA
,I[`NdP^cA $-

A]Q\TS+

2

(

3

%@25F4?%OJR.%

4

YaVdU@25F%A

5

'%@25F4?%OJR.%

6

bdUJcX_cQA

RSDFTの高並列化 -TofuネットワークへのマッピングTofuネットワーク
a軸
b軸

c軸

2024年4月

計算科学技術特論B

2018年5月10日 計算科学技術 特論B

40

&A

!30

A

A

21.
[beta]
)3/F3"7GFe+
:GDH 9F><0;0Af@

*7GF>

1Fe

1

I[`NdP^c>WdUKLIA
,I[`NdP^cA $-

A]Q\TS+

2

(

3

%@25F4?%OJR.%

4

YaVdU@25F%A

5

'%@25F4?%OJR.%

6

bdUJcX_cQA
各バンドグループをサブメッシュ/トーラス・ネット

RSDFTの高並列化 -Tofuネットワークへのマッピング空間並列

空間並列+バンド並列
バンド(1:On)

&A
A

A
Tofuネットワークへのマッピング
ワークにマッピング

2018年5月10日 計算科学技術 特論B

バンド (1:Omax)

バンド(On+1:Om)

orbital

z
Z

space

Y

!30

バンド(Om+1:Omax)

y
x

CPU space

X

•
•

マッピング・ルール

通信の最適化



B=8;#H9F6>@CE ZbTM@ !A
サブメッシュ/トーラス内で通信が閉じられる
2024年4月

計算科学技術特論B

41

)3/F3"7GFe+
:GDH 9F><0;0Af@

*7GF>

1Fe

1

I[`NdP^c>WdUKLIA
,I[`NdP^cA $-

A]Q\TS+

2

(

3

%@25F4?%OJR.%

4

YaVdU@25F%A

5

'%@25F4?%OJR.%

6

bdUJcX_cQA
各バンドグループをサブメッシュ/トーラス・ネット

RSDFTの高並列化 -Tofuネットワークへのマッピング&A

A
Tofuネットワークへのマッピング
ワークにマッピング

2018年5月10日 計算科学技術 特論B

!30

サブメッシュ/トーラス内で通信が閉じられる
2024年4月

計算科学技術特論B

42

A

22.

RSDFTの高並列化 -Gram-Schmidtへのマッピング効果最適マッピング → サブコミュニケータ間のコンフリクトが発生しない MPI通信でTofu向けアルゴリズムが選択される 120.0 MPI_Bcast 実行時間(秒) 90.0 • 原子数: 19,848 • 格子数: 320x320x120 • 軌道数: 41,472 • トータルプロセス数: 12,288 ✓ 空間並列: 2,048(32x32x2) ✓ バンド並列: 6 60.0 • MPI_Allreduce 32x32x12のトーラスにマッピング 30.0 0.0 マッピングなし 2024年4月 最適マッピング 計算科学技術特論B 43 RSDFTの高並列化 -二軸並列の効果SiNW, 19,848 原子, 格子数:320x320x120, バンド数:41,472 トータル並列プロセス数は12,288で固定 -79% 100.0 -78% 60.0 40.0 -79% 20.0 空間分割: 12,288 計算科学技術特論B MatE/SD 行列生成 RotV/SD 回転 Space + Orbital Space Space + Orbital Space Space + Orbital Space Space + Orbital 0.0 GS 2024年4月 Wait / orbital Global communication / orbital Global communication / space Adjacent communication / space Computation -78% 80.0 Space Time per SCF (sec.) 120.0 CG 空間分割: 2,048 バンド分割: 6 HPCS2012 44 大域通信時間を大幅に削減 44

23.

the SPARC64 VIIIfx effectively. The sustained performance orbitals ofwas supposed increase as the decreased number ofinparallel tasks to the manually decreased by 12% compared with the computation time or 96.6% adjacent tocommunications proportion DGEMM on a compute node is 123.7 giga-flops, of the in orbitals increased. The number of MPI processes requiring reciprocal of the number of parallel tasks in orbitals. On the other for the usual data replacement operations of the L1 cache. This peak performance. In particular, we found that the computation for the the global parallel tasks in orbitals, however, wastasks in hand, communication time for the parallel DGEMM tuned for the also the used fordata the on the communications timeK ascomputer a result ofwas keeping block L1 cache orbitals supposed to increase thecompute number of parallel tasks actually to a was relatively small numberasof nodes, manually decreased by 12% compared with the computation timerestricted LINPACK benchmark program. in orbitals increased. numbercommunications of MPI processesofrequiring and therefore, the wall clock time The for global for the usual data replacement operations of the L1 cache. This communications for small. the parallel in we orbitals, however, was 5.2 Scalability DGEMM tuned for the K computer was also usedthefor the tasks parallel in orbitals was This tasks means succeeded actually restricted to a relatively small number of compute LINPACK benchmark program. We measured the computation time for the SCF iterations with in decreasing time for global communication by the combination nodes, RSDFTの高並列化-スケーラビリティ- (b) We measured the computation time for the SCF iterations with 400.0 160.0 (a) (b) theoretical computation computation global/space 400.0 300.0 theoretical computation 120.0 global/orbital computation global/space wait/orbital 並列度のミスマッチの解消 wait/orbital 80.0 大域通信の増大の解消 100.0 200.0 40.0 80.0 40.0 100.0 0.0 0.0 0.040,000 0 60,000 Number of cores (c) 40,000 Time per MatE/SD (sec.) 100.0 20000 0.0 (d) 150.0 80000 theoretical computation theoretical computation computation computation computation computation adjacent/space adjacent/space adjacent/space adjacent/space global/space global/space global/space global/space global/orbital global/orbital global/orbital global/orbital 40,000 Number of cores 60,000 60,000 80,000 50.0 200.0 100.0 200.0 100.0 0.0 0.0 0 20,000 60000 Number of cores (d) 300.0 80000 40000 theoretical computation 50.0 0 60000 20000 Number of cores theoretical computation 100.0 0.0 40000 0 80,000 300.0 200.0 150.0 60,000 Number of cores (c) 200.0 0 80,000 20,000 Time per RotV/SD(sec.) 20,000 Time per RotV/SD(sec.) 0 Time per MatE/SD (sec.) adjacent/space global/space global/orbital 120.0 global/orbital Time per CG (sec.) Time per GS (sec.) 300.0 200.0 theoretical computation computation adjacent/space theoretical computation global/space computation global/orbital 160.0 Time per CG (sec.) Time per GS (sec.) and therefore, the wall clock time for global communications of the parallel tasks in orbitals was small. This means we succeeded in decreasing time for global communication by the combination 5.2 Scalability (a) 20,000 40,000 Number of cores 40,000 Number of cores 60,000 60,000 0 80,000 0 80,000 0.0 20,000 20,000 40,000 Number of cores 80,000 Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d) RotV/SD for different numbers of cores. Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d) 2024年4月 RotV/SD for different numbers of cores. 計算科学技術特論B 45 RSDFTの高並列化 Hasegawa et al. 総合性能 13 Table 2. Distribution of computational costs for an iteration of the SCF calculation of the modified code. Procedure block SCF SD MatE/SD EigenSolve/SD RotV/SD CG GS Execution time (s) Computation time (s) 2903.10 1796.97 525.33 492.56 779.08 159.97 946.16 1993.89 1281.44 363.18 240.66 677.60 43.28 669.17 Communication time (s) Adjacent/grids Global/grids Global/orbitals 61.73 823.02 12.57 13.90 497.36 4.27 13.90 143.98 4.27 – 251.90 – – 101.48 – 47.83 68.85 0.01 http://hpc.sagepub.com/ – 256.81 8.29 Performance Wait/orbitals (PFLOPS/%) 11.89 – – – – – 11.89 5.48/51.67 5.32/50.17 6.15/57.93 0.01/1.03 8.14/76.70 0.06/0.60 6.70/63.10 International Journal of High Performance Computing Applications The test model was a SiNW with 107,292 atoms. The numbers of grids and orbitals were 576 ! 576 ! 180, and 230,400, respectively. The numbers of parallel tasks in grids and orbitals were 27,648 and three, respectively, using 82,944 compute nodes. Each parallel task had 2160 grids and 76,800 orbitals. Article The International Journal of High Performance Computing Applications 1–21 The Author(s) 2013 Reprints and permissions: sagepub.co.uk/journalsPermissions.nav DOI: 10.1177/1094342013508163 hpc.sagepub.com Performance Performance evaluation ofevaluation ultra-largeof ultra-largescale first-principles electronic structure on the ª confinement becomes prominent. Thecalculation quantum code effects, K computer scale first-principles electronic structure depend on theAtsushi crystallographic of the nano- Boku, Yukihiro Hasegawa, Jun-Ichi Iwata, Miwako Tsuji, which Daisuke Takahashi, Oshiyama, directions Kazuo Minami, Taisuke calculation code on the K computer Hikaru Inoue, Yoshito Kitazawa, Ikuo Mitsuo Yokokawa wire axes andMiyoshi on the and cross-sectional shapes of the nanowires, Yukihiro Hasegawa et al., International Journal of High Performance Computing Applications published online 17 October 2013 result in substantial modifications to the energy-band DOI: 10.1177/1094342013508163 Yukihiro Hasegawa1, Jun-Ichi Iwata2, Miwako Tsuji1, structures and the transport characteristics of SiNW FETs. Daisuke Takahashi3, Atsushi Oshiyama2, Kazuo Minami1, The online version of this article can be found at: 3 2011年ゴードン・ベル賞受賞(世界一位) 4 5 • However, knowledge of the effect of the structural mor, Taisuke Boku , Hikaru Inoue , Yoshito Kitazawa http://hpc.sagepub.com/content/early/2013/10/16/1094342013508163 Ikuo Miyoshi6 and Mitsuo Yokokawa7,1 phology on the energy bands of SiNWs is lacking. In addi• ゴードン・ベル賞:アプリケーションの実際の性能と計算科学の成果 tion, actual nanowires have side-wall roughness. The に対してアメリカ計算機学会が授与する賞 Published by: imperfections on the energy bands are effects of such Abstract Silicon nanowires are potentially useful in next-generation field-effect transistors, and it is important to clarify the electron unknown. The advent of reliable first-principles calculastates of silicon nanowires to know the behavior of new devices. Computer simulations are promising tools for calculating http://www.sagepublications.com electron states. Real-space density functional theory (RSDFT) code performs first-principles electronic46structure calcula2024年4月 計算科学技術特論B tions would provide a firm theoretical framework for the tions. To obtain higher performance, we applied various optimization techniques to the code: multi-level parallelization, load balance management, sub-mesh/torus allocation, and a message-passing interface library tuned for the design K computer. of suitable SiNWs of 10,000–100,000 atoms for We measured and evaluated the performance of the modified RSDFT on the K computer. A 5.48 petaflops (PFLOPS) Additional services andcode information for International Journal of High Performance Computing Applications can be found at: sustained performance was measured for an iteration of a self-consistent field calculation for a 107,292-atomFETs. Si nanowireOur RSDFT code enables us to achieve this impor-

24.

1 GENESIS 多重処理 1 より効果的で安全な創薬候補物質のスクリーニングのため、タンパク質、 ンのコデザインを通して知見として蓄積される富岳向け推奨プログラム事例等は、一般の計算科 溶媒 (水分子) を含む 10 万原子の薬剤候補結合の全原子分子動力学シミュ 学アプリケーション開発者が参照することができるように、整理して文書化することとした。 レーションを 1 ケースにつき 100ns 行う。10 万ケース実行。 2重点課題ターゲットアプリケーションにおけるコデザインの実際の進行は、各 Genomon 多重処理 96 がんの解明に向けた全ゲノム解析。リード長 アプリケーショ 150 塩基対、リード数 14 億。 1 日あたり 1000 検体のスループット実現。 ン 毎に組織したワーキンググループ (WG) の中で詳細な検討と開発を進めながら、全 WG の代表 3 GAMERA 大規模単一 158976 都市域の地盤歪の計算に該当する、1 兆自由度の非構造格子有限要素モ 者が集うアプリケーション検討会において情報共有並びに関連するテーマ毎の議論を行う形式で デルの非線形地盤地震動解析 (120 秒、12 万時間ステップ ) を実行する。 富岳コデザイン・レポート 4 NICAM+ 多重処理 + 131072 局地的豪雨や竜巻などの高精度な予測を実現するため、多重ケース処理 進行した。 〜フラッグシップ 2020 プロジェクト・テクニカルレポート〜 富岳での性能 出典 型計算では、全球 3.5km 水平メッシュ1024 メンバーのアンサンブル気 象計算と観測データとの同化を3時間毎に行うシミュレーションを 2ヶ 富岳コデザイン・レポート 月間分、大規模単一問題型計算では、全球 220m 水平メッシュ鉛直 94 層 4.1.4 性能評価用ターゲット問題の設定 の大気シミュレーションを 72 時間分実行する。 〜フラッグシップ 2020 プロジェクト・テクニカルレポート〜 5 NTChem 多重処理 17820 化学反応のメカニズムを解明し、エネルギー変換材料の候補物質スクリー 富岳上での各ターゲットアプリケーションの性能を評価する基準として定められた具体的な計 ニングを行うための高精度第一原理電子状態計算の典型的計算例として、 フラッグシップ 2020 プロジェクト 理化学研究所 計算科学研究センター 720 原子、19680 電子軌道のカーボンナノグラフェン分子複合体のエネ 算問題の設定はターゲット問題と呼ばれる。ターゲット問題設定を表 4.3 にに示す。 2022 年 3 月 ルギー計算を設定する。20 ケース実行。 6 ADVENTURE 多重処理 4096 複雑な形状の構造物の最適な全体設計を実現するため、有限要素法に基 づく構造解析を行う。薄板状領域の非線形応答問題。ソリッド四面体二 表 4.3: 重点課題ターゲットアプリケーションの問題設定 次要素分割で計 16.5 億自由度。1 時間ステップ当たり BDD 反復 500 回 課題 アプリケーショ 並列処理の ノード数 問題設定 を 1 万時間ステップ実行。100 ケース実行。 番号 ン タイプ /ジョブ 7 RSDFT 複数の異種物質から構成されるナノ界面を解明するため、量子力学的第 1 GENESIS 多重処理 110368 より効果的で安全な創薬候補物質のスクリーニングのため、タンパク質、 フラッグシップ 2020 プロジェクト 理化学研究所 一原理計算に基づき、原子数 11 万・バンド数 22 計算科学研究センター 万・SCF200 回の SCF 溶媒 (水分子) を含む 10 万原子の薬剤候補結合の全原子分子動力学シミュ 計算によるシリコンデバイスの構造最適化の計算を行う。 24 ケース実行 レーションを 1 ケースにつき 100ns 行う。10 万ケース実行。 2022 年 3 月 する。 2 Genomon 多重処理 96 がんの解明に向けた全ゲノム解析。リード長 150 塩基対、リード数 14 8 FFB 大規模単一 158976 水力機械の内部流れや自動車の空力の乱流計算など、複雑な形状の構造 億。 1 日あたり 1000 検体のスループット実現。 物まわりの熱発生率、冷却・排気損失、ノッキング、サイクル変動等の 3 GAMERA 大規模単一 158976 都市域の地盤歪の計算に該当する、 1 兆自由度の非構造格子有限要素モ 予測の正確な評価を行うため、有限要素法に基づく流体計算を 6700 億 デルの非線形地盤地震動解析 (120 秒、12 万時間ステップ) を実行する。 要素規模で 10 万時間ステップ行う。 4 NICAM+ 多重処理 + 131072 局地的豪雨や竜巻などの高精度な予測を実現するため、多重ケース処理 9 LQCD 素粒子から宇宙全体にわたる物質創成史を解明するため、クォークを 1924 LETKF 大規模単一 147456 型計算では、全球 3.5km 水平メッシュ1024 メンバーのアンサンブル気 個の格子上の場としたクォーク伝搬関数を反復解法で計算する。 2ヶ 象計算と観測データとの同化を3時間毎に行うシミュレーションを 月間分、大規模単一問題型計算では、全球 220m 水平メッシュ鉛直 94 層 の大気シミュレーションを 72 時間分実行する。 5 NTChem 多重処理 17820 化学反応のメカニズムを解明し、エネルギー変換材料の候補物質スクリー ニングを行うための高精度第一原理電子状態計算の典型的計算例として、 720 原子、19680 電子軌道のカーボンナノグラフェン分子複合体のエネ (注)ターゲット問題実行時における対京性能倍率:ブーストモードかつエコ無効モードで実行 ルギー計算を設定する。20 ケース実行。 6 ADVENTURE 多重処理 4096 複雑な形状の構造物の最適な全体設計を実現するため、有限要素法に基 99 づく構造解析を行う。薄板状領域の非線形応答問題。ソリッド四面体二 47 2024年4月 計算科学技術特論B 次要素分割で計 16.5 億自由度。1 時間ステップ当たり BDD 反復 500 回 を 1 万時間ステップ実行。100 ケース実行。 7 RSDFT 多重処理 10368 複数の異種物質から構成されるナノ界面を解明するため、量子力学的第 一原理計算に基づき、原子数 11 万・バンド数 22 万・SCF200 回の SCF 電力制御各モードにおける性能倍率と電力 計算によるシリコンデバイスの構造最適化の計算を行う。24 ケース実行 上段:性能倍率、下段 する。 :システム消費電力平均値および最大値 FFB 大規模単一 158976無効 水力機械の内部流れや自動車の空力の乱流計算など、複雑な形状の構造 リケーション8 エコモード エコモード 有効 物まわりの熱発生率、冷却・排気損失、ノッキング、サイクル変動等の ブーストモード 通常モード ブーストモード 通常モード 予測の正確な評価を行うため、有限要素法に基づく流体計算を 6700 億 要素規模で 10 万時間ステップ行う。 性能倍率 性能倍率 性能倍率 性能倍率 9 LQCD 大規模単一 147456 素粒子から宇宙全体にわたる物質創成史を解明するため、クォークを 1924 平均電力 最大電力 平均電力 最大電力 平均電力 最大電力 平均電力 最大電力 個の格子上の場としたクォーク伝搬関数を反復解法で計算する。 LETKF 大規模単一 点課題 7 RSDFT のコデザイン ターゲット問題 4. ターゲットアプリケーションのコデザイン 富岳で達成された性能倍率 したコデザインの成果を反映して富岳で達成された京に対する性能倍率及び消費電力を表 に示す。 T 富岳での性能 表 4.106: RSDFT の対京性能倍率と消費電力 アプリケーション 性能倍率(注) 消費電力(注) 38 倍 RSDFT 30 MW 表 4.107: RSDFT の電力制御各モードでの比較 38 倍 25 MW 28 MW 35 倍 22 MW 25 MW 28 倍 20 MW 20 MW CPU単体性能とは? 99 2024年4月 計算科学技術特論B 48 25 倍 17 MW 18 MW

25.

単体性能における問題点の評価法 高並列 単体性能 ソースコードの調査 現状認識 測定/評価法 計算・通信カーネルの決定 問題点把握 2024年4月 問題点の評価法 計算科学技術特論B 問題点の評価法 49 アプリケーションのタイプ - 性能の観点から 要求B/F値が小さい計算 要求B/F値が大きい計算 行列行列積の計算 (b) (a) = 2N3個の演算 行列ベクトル積の計算 (a) × N2個のデータ N2個のデータ = 2N2個の演算 2024年4月 計算科学技術特論B 50 (b) × N2個のデータ N個のデータ

26.

メモリ・L2 キャッシュ・演算器を考慮した 第 1 章 アプリケーションのタイプ-性 メモリ・L2キャッシュ・演算器を考慮した性能モデル 性能モデル 実効演算性能 ルーフラインモデルは, 理論値と tMとtCを⽤いたモ 実効演算性能 デルである. 5 2021年2月5日 チューニング技術説明会 図 1.1: メモリ・L2 キャッシュ・演算器を考慮した性能モデル ルーフラインモデルは, 理論値とtMとtCを⽤いたモ U 性能解析レポート(ビジー時間) デルである. 2021年2月5日 チューニング技術説明会 5 は、図 1.2 に示すような CPU 解析レポートが出力される。 1.2 節に示した tM が、この図 図 1.1: メモリ・ L2 キャッシュ・演算器を考慮した性能モデル 2024年4月 計算科学技術特論B 51 と、tL2 が、L2 キャッシュビジー時間と、tC が、浮動小数点演算器時間と、 -性能の観点から-tE が、経過 アプリケーションのタイプ る。そのものではなく、近い値となっている理由については後述する。 CPU性能解析レポート(ビジー時間) ・CPU性能解析レポート(ビジー時間) U 性能解析レポート(ビジー時間) tvel3d1_12:実行時間の内訳(tune02)  L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い Elapsed Time(経過時間) は、図 1.2 に示すような CPU 解析レポートが出力される。1.2 節に示した tM が、こ と、tL2 が、L2 キャッシュビジー時間と、tC が、浮動小数点演算器時間と、 -性能の観点から-tE が、 アプリケーションのタイプ る。そのものではなく、近い値となっている理由については後述する。 ・CPU性能解析レポート(ビジー時間) tvel3d1_12:実行時間の内訳(tune02)  L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い Elapsed Time(経過時間) メモリビジー時間■ 実⾏時間×メモリビジー率 FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2)) 9 Copyright 2020 FUJITSU LIMITED L2キャッシュビジー時間■ ビジー時間は前⾴の 実⾏時間×L2キャッシュビジー率 に近い 値.詳細は後述 実⾏時間×L1キャッシュビジー率 tE,tM,tL2,tc, L1キャッシュビジー時間■ 浮動⼩数点演算器ビジー時間 メモリビジー時間■ 実⾏時間×浮動⼩数点演算器ビジー率 実⾏時間×メモリビジー率 2021年2月5日 チューニング技術説明会 FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2)) 2024年4月 9 Copyright 2020 FUJITSU LIMITED L2キャッシュビジー時間■ 52実⾏時間×L2キャッシュビジー率 ビジー時間は前⾴の 図 1.2: CPU 性能解析レポート(ビジー時間) 計算科学技術特論B tE,tM,tL2,tc, 6

27.

ら見たアプリケーションのタイプ n 現実的には少し違うが いえる。 n 理想的にチューニングされたアプリは実効メモリバンド幅を使い切って 理想的にチューニングされたオンメモリなアプ いる状態 プリケーションの状況を図 1.3 に示す。 リケーションでは、理想的には、実効的なメモリバンド幅で決まるメモリビ n L2キャッシュ/演算器は余裕がある状態 リケーション ビジー時間から見たアプリケーション L2 キャッシュ メモリバンド幅を使い切っている状態であるといえる。また n メモリビジー時間は理想的には実効的なメモリバンド幅で決まる のタイプ 経過時間=メモリビジー時間 6 第 1 章 アプ 性能限界値 n 現実的には少し違うが メモリ・L2キャッシュ・演算器を考慮した性能 える。 経過時間 6 n 理想的にチューニングされたアプリは実効メモリバンド幅を使い切って 第 1 章 アプリ 演算器ビジー時間 いる状態 理想的にチューニングされたオンメモリなアプリケーション リケーションの状況を図 1.3 に示す。メモリ・L2キャッシュ・演算器を考慮した性能モ n L2キャッシュ/演算器は余裕がある状態 性能限界値 L2キャッシュビジー時間 L1キャッシュビジー時間 経過時間=メモリビジー時間 メモリビジー時間 経過時間 演算器ビジー時間 2021年2月5日 チューニング技術説明会 7 実効演 L2キャッシュビジー時間 実効演算 図 1.3: 理想的にチューニングされたオンメモリなアプリケーション L1キャッシュビジー時間 メモリビジー時間 7 2021年2月5日 チューニング技術説明会 ルーフライ 理論値と tM 的にチューニングされたオンキャ ッシュなアプリケーション 理論値と (1) 図 1.3: 理想的にチューニングされたオンメモリなアプリケーション デルである ルーフライン デルである. アプリケーションのタイプ-性能の観点からら見たアプリケーションのタイプの2つ目は、理想的にチューニングされたオン ンである。 2024年4月 計算科学技術特論B 53 年2月 チューニング技術説明会 20212021 年52日 月5 日 チューニング技術説明会 理想的にチューニングされたオンキャッシュな 図図1.1: キャ 1.1:メモリ・ メモリ・L2 L2ッシュバンド幅で決まる キャッシュ・演算器を考慮し ッシュ・演算器を考慮した アプリケーション(1) ビジー時間から見たアプリケーション プリケーションでは、理想的には、実効的な L2 キャ L2 にチューニングされたオンキャ ッシュなアプリケーション (1) n $L2ビジー時間は理想的には実効的な$L2バンド幅で決まる のタイプ と一致し、実効 L2 キャッシュバンド幅を使い切っている状態であるといえる。ま 6 第 1 章 アプ n 現実的には少し違うが メモリ・L2キャッシュ・演算器を考慮した性能 態であるといえる。 -性能の観点から-第 1 章 アプリ 理想的にチューニングされたアプリは実効$L2バンド幅を使い切って CPU 性能解析レポート(ビジー時間) 見たアプリケーションのタイプの2つ目は、理想的にチューニングされたオ 1.361.3 nCPU 性能解析レポート(ビジー時間) メモリ・L2キャッシュ・演算器を考慮した性能モ いる状態 理想的にチューニングされたオンキャシュなアプリケーション プリケーションの状況を図 1.4 に示す。 n メモリ/演算器は余裕がある状態 である。 理想的にチューニングされたオンキャッシュな 「富岳」では、図 に示すようなCPU CPU解析レポートが出力される。 解析レポートが出力される。1.1 「富岳」では、図 1.21.2 に示すような アプリケーションのタイプ アプリケーション(1) リケーションでは、理想的には、実効的な L2 経過時間=$L2ビジー時間 キャッシュバンド幅で決まる リビジー時間と、 tL2 が、L2 キャ ッシュビジー時間と、 tC が、浮動小数点 アプリケーションのタイプ -性L リビジー時間と、tL2 が、L2 キャ ッシュビジー時間と、tC が、浮動小数点 性能限界値 -性 アプリケーションのタイプ n $L2ビジー時間は理想的には実効的な$L2バンド幅で決まる 一致し、実効値となっている。そのものではなく、近い値となっている理由については後 L2 キャッシュバンド幅を使い切っている状態であるといえる。 経過時間 値となっている。そのものではなく、近い値となっている理由については tvel3d1_12:実行時間の内訳(tune02) ・CPU性能解析レポート(ビジー時間) n 現実的には少し違うが 演算器ビジー時間 tvel3d1_12:実行時間の内訳(tune02) ・CPU性能解析レポート(ビジー時間)  L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い であるといえる。 n 理想的にチューニングされたアプリは実効$L2バンド幅を使い切って L2キャッシュビジー時間  L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い 実効演 いる状態 L1キャッシュビジー時間 Elapsed Time(経過時間) 実効演算 リケーションの状況を図 1.4 に示す。 n メモリ/演算器は余裕がある状態 メモリビジー時間 Elapsed Time(経過時間) 経過時間=$L2ビジー時間 2021年2月5日 チューニング技術説明会 性能限界値 8 経過時間 ルーフライ ルーフライン 演算器ビジー時間 図 1.4: 理想的にチューニングされたオンキャッシュなアプリケーション (1) 理論値と 理論値とtM L2キャッシュビジー時間 デルである デルである. メモリビジー時間■ L1キャッシュビジー時間 実⾏時間×メモリビジー率 メモリビジー時間 メモリビジー時間■ 54 2024年4月 計算科学技術特論B 実⾏時間×メモリビジー率 L2キャッシュビジー時間■ 年2月 チューニング技術説明会 20212021 年52日 月5 日 チューニング技術説明会 実⾏時間×L2キャッシュビジー率 ビジー時間は前⾴の FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2)) FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2)) 9 9 Copyright 2020 FUJITSU LIMITED Copyright 2020 FUJITSU LIMITED

28.

6 n 理想的にチューニングされたオンキャッシュな 演算器ビジー時間は理想的には実効的な演算器性能で決まる n 現実的にはそれほど⾼い演算器性能か出ることは少ないが アプリケーション(2) n 理想的にチューニングされたアプリは実効的な演算器性能が出ている 第 1 章 アプリケーションのタイ n 演算器ビジー時間は理想的には実効的な演算器性能で決まる 状態 n 現実的にはそれほど⾼い演算器性能か出ることは少ないが n メモリ/$L2は余裕がある状態 ビジー時間から見たアプリケーション のタイプ n 理想的にチューニングされたアプリは実効的な演算器性能が出ている 第 1 章 アプ メモリ・L2キャッシュ・演算器を考慮した性能 第 1 章 アプリケーションのタイプ 経過時間=演算器ビジー時間 6 状態 第 1 章 アプリ 理想的にチューニングされたオンキャシュなアプリケーション n メモリ/$L2は余裕がある状態 性能限界値 メモリ・L2キャッシュ・演算器を考慮した性能モ 経過時間 演算器ビジー時間 経過時間=演算器ビジー時間 性能限界値 L2キャッシュビジー時間 経過時間 L1キャッシュビジー時間 演算器ビジー時間 メモリビジー時間 L2キャッシュビジー時間 L1キャッシュビジー時間 メモリビジー時間 2021年2月5日 チューニング技術説明会 実効演 9 実効演算 9 2021年2月5日 チューニング技術説明会 1.5: 理想的にチューニングされたオンキャ ッシュなアプリケーション (2 ルーフライン 図 1.5: 理想的にチューニングされたオンキャッシュなアプリケーション (2) 理論値と ルーフライ 理論値とtM デルである デルである. ーションでは、理想的には、L1D キャッシュビジー時間が経過時間と一 リケーションのタイプ -性能の観点から- リケーションでは、理想的には、 キャッシュビジー時間が経過時間と一 いる状態であるといえる。L1D L1D キャ ッシュビジー時間は L1D キャッシュ -性能の観点から図図1.1: メモリ・ 1.1:ッシュビジー時間は メモリ・L2 L2キャ キャッシュ・演算器を考慮し ッシュ・演算器を考慮した 的にチューニングされたオンキャッシュな っている状態であるといえる。 L1D キャ L1D キャッシュの はなく、バンド幅以外の動作にも大きく依存している。したがってメモ ビジー時間から見たアプリケーション プリケーションのタイプ 2024年4月 計算科学技術特論B 55 年2月 チューニング技術説明会 20212021 年52日 月5 日 チューニング技術説明会 理想的にチューニングされたオンキャッシュな リケーション(3) けではなく、バンド幅以外の動作にも大きく依存している。したがってメモリ のタイプ した方法で実効バンド幅をベースに性能のモデル化ができない。しかし理 プリケーション(3) 示した方法で実効バンド幅をベースに性能のモデル化ができない。しかし理 1D キャ1.3 ッシュのビジー時間と経過時間は一致し、メモリ、 L2 キャッシュ 1.3 CPU CPU 性能解析レポート(ビジー時間) 1ビジー時間は$L1の実効的なバンド幅のみでは決まらない 性能解析レポート(ビジー時間) 、L1D キャッシュのビジー時間と経過時間は一致し、メモリ、L2 キャッシュ $L1ビジー時間は$L1の実効的なバンド幅のみでは決まらない ド幅以外の動作に⼤きく依存している 理想的にチューニングされたオンキャシュなアプリケーション 「富岳」では、図 に示すようなCPU CPU解析レポートが出力される。 解析レポートが出力される。1.1 バンド幅以外の動作に⼤きく依存している し理想的にチューニングされたアプリは$L1のビジー時間と経過 「富岳」では、図 1.21.2 に示すような ーションの状況を図 1.6 に示す。 しかし理想的にチューニングされたアプリは$L1のビジー時間と経過 リビジー時間と、 tL2 が、L2 キャッシュビジー時間と、tC が、浮動小数点 間は⼀致しメモリ/$L2/演算器は余裕がある状態となる -性 リビジー時間と、 t が、 L2 キャ ッシュビジー時間と、 t が、浮動小数点 リケーションの状況を図 1.6 に示す。 L2 C -性 時間は⼀致しメモリ/$L2/演算器は余裕がある状態となる アプリケーションのタイプ アプリケーションのタイプ 値となっている。そのものではなく、近い値となっている理由については後 値となっている。そのものではなく、近い値となっている理由については tvel3d1_12:実行時間の内訳(tune02) ・CPU性能解析レポート(ビジー時間) 経過時間=$L1ビジー時間 tvel3d1_12:実行時間の内訳(tune02) ・CPU性能解析レポート(ビジー時間) 性能限界値 性能限界値  L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い 経過時間=$L1ビジー時間 Elapsed Time(経過時間)  L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い 経過時間 経過時間 演算器ビジー時間 Elapsed Time(経過時間) 演算器ビジー時間 L2キャッシュビジー時間 L2キャッシュビジー時間 L1キャッシュビジー時間 L1キャッシュビジー時間 メモリビジー時間 メモリビジー時間 メモリビジー時間■ 実⾏時間×メモリビジー率 FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2)) 10 10 メモリビジー時間■ L2キャッシュビジー時間■ 実⾏時間×L2キャッシュビジー率 ビジー時間は前⾴の 図 1.6: 理想的にチューニングされたオンキャッシュなアプリケーション ッシュなアプリケーション (3) 1.6: 理想的にチューニングされたオンキャ (3 2024年4月 計算科学技術特論B ーニング技術説明会 グ技術説明会 9 56 FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2)) 9 Copyright 2020 FUJITSU LIMITED 実⾏時間×メモリビジー率 Copyright 2020 FUJITSU LIMITED

29.

アプリケーションのタイプ-性能の観点から見たアプリケーションのタイプの5つ目は、理想的にチューニングされて ビジー時間から見たアプリケーション のタイプ ュなアプリケーションである。 充分にチューニングされていないオンメモリor オンキャッシュなアプリケーション リケーションでは、アプリケーションの経過時間は、どのビジー時間よりも しない。つまりハードウェアの限界性能まで達していないこととなり、メモ 十分にチューニングされていないオンメモリ・オンキャシュ 演算器は共に余裕がある状態である。 ジー時間とも等しくない(どのビジー時間より⼤きくなる) n 充分にチューニングされていないアプリケーションの経過時間はどのビ n メモリ/$L2/$L1/演算器は余裕がある状態 リケーションの状況を図 1.7 に示す。 なアプリケーション 経過時間≠全てのビジー時間 性能限界値 経過時間 演算器ビジー時間 L2キャッシュビジー時間 L1キャッシュビジー時間 メモリビジー時間 11 2021年2月5日 チューニング技術説明会 十分にチューニングされていないオンメモリ or オンキャッシュなアプリケ 2024年4月 計算科学技術特論B 57 CPU単体性能から見たアプリケーション の分類第 1 章 アプリケーションのタイプ-性能 表 1.1: CPU 単体性能からみたアプリケーションの分類 要求B/F値が小さい 番号 1 2 3 4 5 6 単体性能上の分類 行列行列積に書き換え可能 要求 B/F 値が小さくループボディがシンプル キャッシュブロッキング可能 要求 B/F 値が小さいがループボディが複雑 要求 B/F 値が大きい 要求 B/F 値が大きくリストアクセスを使用 アプリケーション例 第一原理 (DFT) 量子計算等 高次なステンシル計算等 分子動力学・重力多体問題等 プラズマ・気象の物理過程 量子化学計算等 気象の力学過程・流体・ 地震・核融合等 有限要素法を用いた構造・ 流体計算等 ジー時間から見たアプリケーションのタイプと CPU 単体性能 要求B/F値が大きい アプリケーション分類の対応 示したビジー時間から見たアプリケーションのタイプと、1.5 節で示した CPU 単体性能から 2024年4月 計算科学技術特論B 分類の関連について示す。 58

30.

ビジー時間から見たアプリケーションタイプ とCPU単体性能から見たアプリケーションの 分類の対応-性能の観点からアプリケーションのタイプ 性能の⾼い順に並べると(あくまで⽬安です) Matrix-Matrix Multiplication 理想的な演算器チューニング 1 is applicable が可能なオンキャッシュアプリ DFT・・ ケーション 2. 理想的な$L1チューニングが Required B/F value is low 2 可能なオンキャッシュアプリ with simple loop body High Order FDM,・・ ケーション 3. 理想的な$L2チューニングが Cache Blocking MD,N Body Problem,・・ 可能なオンキャッシュアプリ 3 is applicable ケーション 4. 本章では、今までのビジー時間の議論をもとに、 理想的なチューニングが難し CPU 単体性能チューニングとは何か?につ Required B/F value is low いオンキャッシュアプリケーショ 4 PIC,QC,・・ with complex body CPU 単体性能チューニングとは何かとは、 1.5loop 節に示したアプリケーション分類、 1.4 節に示 ン 5. 理想的なチューニングが可能 ションのビジー時間のタイプ、 1.6 節に示したアプリケーション分類とビジー時間のタイプの対応 Fluid Dynamics, なオンメモリアプリケーション 5 Required B/F value is high Stencil・・ 6. 理想的なチューニングが難し ション性能の測定結果等より、自分のプログラムがどのタイプかを見極めて、そのタイプのビジー いオンメモリアプリケーション 本章では、今までのビジー時間の議論をもとに、 CPU 単体性能チューニングとは何か?について示す。 正当かを判断し、問題点を解消しビジー時間の最大値まで経過時間を近づけることといえる。こ Required B/F value is high and using 第2章 CPU 単体性能チューニングとは 第2章 CPU 単体性能チューニングとは 1. CPU単体性能チューニングとは︖ 6 indirect access CPU2.1 単体性能チューニングとは何かとは、 1.5 節に示したアプリケーション分類、1.4 節に示したアプ を図 に示す。 FEM,・・ n 1.6 プログラムがどのタイプかを⾒極めて ションのビジー時間のタイプ、 節に示したアプリケーション分類とビジー時間のタイプの対応、またアプ 経過時間 さらに積極的なチューニング例としては、図 2.2 に例示すように、プログラムを書き換えメモ n そのタイプのビジー時間のグラフが正当かを判断し 演算器ビジー時間 13 ション性能の測定結果等より、自分のプログラムがどのタイプかを見極めて、そのタイプのビジー時間のグ 59 n 問題点を解消しビジー時間の最⼤値まで経過時間を シュアクセスへ移動し、メモリアクセスを減らし L2 キャッシュアクセスを増やし、経過時間の上 CPU単体性能チューニングとは︖ L2キャッシュビジー時間 図 1.8:正当かを判断し、問題点を解消しビジー時間の最大値まで経過時間を近づけることといえる。ここで述べ ビジー時間から見たタイプと CPU 単体性能からみたアプリケーション分類の対応 近づけること L1キャッシュビジー時間 問題点を解消しビジー時間の最大値 (性能限界値) まで経過時間を近づける作業ともいえる。 年2月5日 チューニング技術説明会 2021計算科学技術特論B 2024年4月 を図 2.1 に示す。 メモリビジー時間 n プログラムがどのタイプかを⾒極めて 経過時間 さらに積極的なチューニング例としては、図 2.2 に例示すように、プログラムを書き換えメモリから L n そのタイプのビジー時間のグラフが正当かを判断し 演算器ビジー時間 n 問題点を解消しビジー時間の最⼤値まで経過時間を シュアクセスへ移動し、メモリアクセスを減らし L2 キャッシュアクセスを増やし、経過時間の上限値を下 L2キャッシュビジー時間 近づけること CPU単体性能チューニングとは? L1キャッシュビジー時間 問題点を解消しビジー時間の最大値 (性能限界値) まで経過時間を近づける作業ともいえる。 メモリビジー時間 CPU単体性能チューニングとは︖ ビジー時間の限界値に 近づける! n さらに積極的なチューニング例 経過時間 n プログラムを書き換えメモリから$L2アクセスへ移動し 図 2.1: CPU 単体性能チューニングとは (1) 演算器ビジー時間 n メモリアクセスを減らし$L2アクセスを増やし L2キャッシュビジー時間 n 性能限界値を下げつつ問題点を解消しビジー時間の 15 L1キャッシュビジー時間 2021年2月5日 チューニング技術説明会 n さらに積極的なチューニング例 最⼤値(性能限界値)まで経過時間を近づける 経過時間 2021年2月5日 チューニング技術説明会 CPU単体性能チューニングとは︖ n プログラムを書き換えメモリから$L2アクセスへ移動し 図 2.1: CPU 単体性能チューニングとは (1) 演算器ビジー時間 n メモリアクセスを減らし$L2アクセスを増やし L2キャッシュビジー時間 n 性能限界値を下げつつ問題点を解消しビジー時間の L1キャッシュビジー時間 最⼤値(性能限界値)まで経過時間を近づける メモリビジー時間 メモリビジー時間 オンメモリからオンキャッシュ チューニング! その後ビジー時間の限界値 に近づける! 図 2.2: CPU 単体性能チューニングとは (2) 2021年2月5日 チューニング技術説明会 2024年4月 計算科学技術特論B 60 図 2.2: CPU 単体性能チューニングとは (2) 2021年2月5日 チューニング技術説明会 16 16 15

31.

なぜ経過時間>ビジー時間となってしまうか? 代表的な4つの要素 (1)メモリアクセスが非効率 (2)ラインアクセスが非効率 (3)キャッシュの有効利用ができていない (4)命令スケジューリングが非効率 ・・・・・ 色々な問題が考えられる 2024年4月 計算科学技術特論B 61 メモリアクセスが非効率 メモリ 100 プリフェッチ データ 2次キャッシュ 10 アクセス アクセス 時間 データ レイテンシ (相対値) 1 レイテンシ 1次キャッシュ (立上がり) (立上がり) データ アクセス 演算器 2024年4月 レイテンシ 計算科学技術特論B 62 アクセス

32.

メモリアクセスが非効率 想定 32core/SM(Streaming Multiprocessor) GPU 108SM/1GPU 1SMあたり32*nスレッド割当 遅いメモリと多数の演 算器への対処(GPU) GPU SM SM コア ・・ コア ・・ ・・ メモリアクセスは時間がかかる 1コアが複数スレッドを担当する 複数コアを同時に動作させる これらの大量のスレッドを動作させることで メモリアクセスを隠蔽する メ モ リ メモリアクセス 1スレッド 演算 演算 1コア 1スレッド 2024年4月 演算 演算 1スレッド 1コア 演算 1スレッド 演算 演算 計算科学技術特論B 演算 63 ラインアクセスが非効率 メモリ キャッシュライン256B毎(富岳) のアクセス データ 2次キャッシュ データ 全部の要素を 計算に利用 1個の要素のみ を計算に利用 効率が良い 効率が悪い 倍精度の場合,最大1/32(富岳) 1次キャッシュ の効率に落ちる. データ 演算器 64 2024年4月 計算科学技術特論B 64

33.

キャッシュの有効利用ができていない メモリ ・データ供給能力の高いキャッ シュを設ける ・キャッシュに置いたデータを何回 も再利用し演算を行なう ・こうする事で演算器の能力を十 分使い切る データ 2次キャッシュ データ 再利用 ブロッキング 1次キャッシュ データ 演算器 2024年4月 計算科学技術特論B 65 命令スケジューリングが非効率 計算時間 計算時間 SIMD+ソフトウェア パイプラインニング ループi ループi 効率が良い ループi+1 効率が悪い 2024年4月 計算科学技術特論B ループi+1 do i=1,100 計算1 計算2 end do この他に重要なスケジューリング機能として アウト・オブ・オーダーがある. 66

34.
[beta]
x‹|Œv’E
x‹|Œv’E
128byte*kty~} 128byte*kty~}
1 k<5kn
@k<5s
=4j.
s=4j.
1 k<5kn
@k<5s
=4j.
s=4j.
-["X
-[:X

ƒ”
ƒ”

M)x‹|Œ

M)x‹|Œ
ƒ”

ƒ”

要求B/F値と4つの要素の関係
-[:X

-["X

L)x‹|Œ

ƒ”
L)x‹|Œ
ƒ”

,4


要求するB/Fが小さいアプリケーション
,4



*/+QaZVbH 
*/+QaZVbH 

‰ŠŽ
69kDXx‹

‰ŠŽ
‰ŠŽ
ƒ”
ƒ”

M)x‹|Œ

M)x‹|Œ
ƒ”

ƒ”

*.+cPgORYXH 
*.+cPgORYXH 

.

“ƒ”
|Œs>]rE
‰ŠŽ
“ƒ”
69kDXx‹
“x‹|Œj7Xcƒ”s
ƒ”
|Œs>]r
E
p._,4s;iY
E
ƒ”
“x‹|Œj7Xcƒ”s
“^Y`rg,4k9s
M)x‹|Œ
p._,4s;iY
E
 Xr
M)x‹|Œ
“^Y`rg,4k9s
ƒ”
 Xr

-[:X

-[:X

ƒ”

ƒ”
L)x‹|Œ

H"=XTWbidgS

x‹|Œv’E
x‹|Œv’E
=4&B
128byte*kty~} 128byte*kty~}
x‹|Œv’E
x‹|Œv’E
128byte*kty~} 128byte*kty~}
1 k<5kn
@k<5s
=4j.
s=4j.
”ˆR
1 k<5kn
@k<5s
=4j.
s=4j.

^fZQgS) L)x‹|Œ
XcZVgSH(
ƒ”
^fZQgS) L)x‹|Œ
XcZVgSH(
ƒ”

.
L)x‹|Œ

*0+

=4&B

”ˆR

-["X

-[:X

”ˆRHL

,4

ƒ”



,4

,4

ˆŽ‡w€k'.*/+QaZVbH






GH%

(1)メモリアクセスの効率化 */+QaZVbH 

< ソフトウェアパイプラインニング>

‰ŠŽ

‰ŠŽ
3d[q

ƒ”

ƒ”

M)x‹|Œ

“ƒ” 69kDXx‹
|Œs>]rE
“ƒ”“x‹|Œj7Xcƒ”s
69kDXx‹
|Œs>]r
E
p._,4s;iY
E
“x‹|Œj7Xcƒ”s
“^Y`rg,4k9s
p._,4s;iY
E
 Xr
“^Y`rg,4k9s
 Xr

ˆŽ‡w€
‰ŠŽ
ƒ”
M)x‹|Œ

M)x‹|Œ

ƒ” ty~}
ty~}
ƒ”

ƒ”

PTERNLILKKE
V=4LE
V=4ME
QSPEPT

-["X



,4


”ˆRHL

-["X

Ug]Pc

4 6)
hfi\jD9:X[OGGI#!)
hfi\GX[OIjRfZRF#!)
hIkRfZRF#!)
hfi\GGX[OI]P_cPg BME=L

要求するB/Fが大きい
アプリケーション
^fZQgS)

.

例えば以下の処理をを考える。
do i=1,100

(1)

a(i)のロード

(2)

b(i)のロード

a(i)とb(i)の演算

XcZVgSH(
^fZQgS)
XcZVgSH(
ƒ”
L)x‹|Œ
,4jty~}bkpks

アプリケーションのタイプ-性能の観点からら見たアプリケーションのタイプ
.

L)x‹|Œ &B

L)x‹|Œ

CarpWr
ƒ”

4#'6)
h2RfZR;-,,$

,4

ƒ”

,4


,4

i番目の結果のストア

end do

52,,RfZR>>L



理想的にチューニングされたオンメモリなアプ
演算とロード・ストア比の改善
リケーションでは、理想的には、実効的なメモリバンド幅で決まるメモリビ
リケーション




2024年4月

計算科学技術特論B

67

メモリバンド幅を使い切っている状態であるといえる。また
n メモリビジー時間は理想的には実効的なメモリバンド幅で決まる L2 キャッシュ
メモリ律速なアプリケーションの
6
第 1 章 アプ
n 現実的には少し違うが
メモリ・L2キャッシュ・演算器を考慮した性能
える。
<内側ループアンローリング(2)>
k{”ƒu’zs j8Zr˜E
k{”ƒu’zk,4l› —2› k= ˜E
‘” k%lUIOFRGIOFRHLGk=œ ˜E
}„tk%lUkš ˜E
_c[ef‘” “}„t%l E
,4h‘” “}„tk+lJhir˜E
irm\,4k+-sDo‘” “}„tk+-s\#Zf,4h‘”
}„tk+s$sr[A<˜E

6 n 理想的にチューニングされたアプリは実効メモリバンド幅を使い切って
第 1 章 アプリ
・以下の様な2つのコーディングを比較する。

性能見積もり
メモリ・L2キャッシュ・演算器を考慮した性能モ

いる状態
do j=1,m
リケーションの状況を図
1.3 に示す。
do i=1,n

n L2キャッシュ/演算器は余裕がある状態
x(i)=x(i)+a(i)*b+a(i+1)*d
end do

do j=1,m

do i=1,n,2
x(i)=x(i)+a(i)*b+a(i+1)*d
x(i+1)=x(i+1)+a(i+1)*b+a(i+2)*d
end do

経過時間=メモリビジー時間
性能限界値
経過時間
演算器ビジー時間
L2キャッシュビジー時間

・最初のコーディングの演算量は4、ロード/ストア回数は4である。2つ目のコーディン
グの演算量は8、ロード/ストア回数は7である。
L1キャッシュビジー時間

実効演

実効演算

・最初のコーディングの演算とロード/ ストアの比は4/4 、2つ目のコーディングの演算
メモリビジー時間
とロード/ストアの比は8/7となり良くなる。

7

2021年2月5日 チューニング技術説明会

ルーフライ

理論値とtM
図 1.3: 理想的にチューニングされたオンメモリなアプリケーション
デルである

ルーフライン

理論値と

デルである.

年2月
チューニング技術説明会
20212021
年52日
月5
日 チューニング技術説明会
2024年4月

計算科学技術特論B

図図1.1:
1.1:メモリ・
メモリ・L2
L2キャ
キャッシュ・演算器を考慮し
ッシュ・演算器を考慮した
68

35.

Figure 1: Roofline model for (a) AMD Opteron X2 and (b) Opteron X2 vs. Opteron X4. f-chip be the m permodel nce to d this nal in- Attainable GFlops/sec 64 16 ry emo km pea 8 peak floating-point performance m) trea th (s dwid ban 4 1 • アプリケーションの要求バイト値:b アプリケーションの性能: min(F,B*X) 1/2 1/4 1/2 1 • ハードウェアの実効的なメモリバンド幅:B • ハードウェアのピーク性能:F • アプリケーションの演算強度:X=f/b • アプリケーションの要求フロップス値:f 32 2 2 4 8 16 Operational Intensity (Flops/Byte) 128 64 Attainable GFlops/s a perdahl’s e gain by the ogram eroge- (a) 128 4 proach lysis.” perfornsight ng the ms. In of the d and ルーフラインモデル Operational Intensity 2 (compute-bound) and ,25 can perforrarely mprove ompile diffi- benchmark, for this work we wrote a series of progressively optimized microbenchmarks designed to determine sustainable DRAM bandwidth. They include all techniques to get the best memory performance, including efficiency-level programmers want to measure traffic between the caches and DRAM. This subtle change allows them to include memory optimizations of a computer into our boundand-bottleneck model. Second, we Operational Intensity 1 (memory-bound) ht into ng proarchisigns. model g it on ers usls. S. Williams, A. Waterman, and D. Patterson: Roofline: an (b) insightful visual performance model for multicore architectures. Opteron X4 Commun. ACM, 52:65–76, 2009. 32 B*X=B*(f/b)=B*F*f/(b*F)=(B/F)/(b/f)*F Opteron X2 16 アプリケーションのピーク性能比 :min(1.0 , (B/F)/(b/f) ) 8 4 ハードウェアのB/F値をアプリ ケーションのb/f値で割る. 2 1 1/2 2024年4月 1/4 計算科学技術特論B 1/2 69 1 2 4 8 16 Operational Intensity (Flops/Byte) ルーフラインモデルによる性能見積り R I L 20 09 | VO L. 5 2 | NO. 4 ベースとなる性能値(富岳1CMGの場合) メモリ BF比=実効値: バンド幅=実効値:205GB/sec 205GB/sec/768Gflops=0.26 共用L2キャッシュ 8MB/16WAY ・ ・ コア コア コア L1キャッシュ64KB/4WAY ・ ・ ・ 64Gflops*12core =768GFLOPS SIMD演算器 2GHz*8SIMD*2演算(M&A)*2pipe=64GFLOPS CMG 2024年4月 計算科学技術特論B 70

36.

している。再内ループの実行回数を計算すると、3610*60*168*60=2.18G 回 は、別途測定した、671GB/sec(ピーク比 67.2%) を使用することとする。 ルーフラインモデルによる性能見積り メモリとキャッシュアクセス(1) 配列宣言(3610,-10:70,168) N1=3610,N2=60,N3=168 3M-2L2-2F 要求byteの算出: 24 1store,2loadと考える 24/2=12 Figure要求b/f 3.3: メモリ・ L2 キャッシュアクセスのテストプログラム 2021年2月5日 チューニング技術説明会 性能予測 0.26/12 = 0.021% 8x3 = 24byte 実測値 0.022 要求flop: デルを使い、 3M-2L2-2F のプログラムについて tM を計算する。 メモリのデータ アプリケーションのピーク性能比 の予測値 add : 1+mult : 1 = 2 : ハードウェアのBF値(実効値)/アプリの要求bf値 となり、メモリベース見積もり時間 : tM =52.32GB/(205GB/sec)=0.255sec とな 2 を計算する。L2 キャッシュアクセスするデータ量は、L2 キャッシュアクセスする クセスする要素:3 個:24B を加算したものになる。したがって L2 キャッシュに対す 24)B=87.2GB となり、L2 キャッシュベースの見積もり時間: tL2 =87.2GB/(671G したモデルでは、経過時間:tE は、tM と tL2 の MAX で計算されるため、メ 過時間となる。3M-2L2-2F のプログラム CPU 性能解析レボートの結果を図 •RSDFTの性能最適化(高並列性能最適化実例) 積もり通りになっていることが分かる。 CPU 性能解析レポートのメモリビジ •CPU単体性能とは? 行時間と一致するはずだが少なめになる傾向がある。また L2 キャシュのビジ ース⾒積もり>$L2ベース⾒積もりのケース 0.13sec になるはずであるが、非常に大きく出ている。これらは前述した傾向 • アプリケーションのタイプ- 性能の観点から • メモリ・L2 キャッシュ・演算器を考慮した性能モデル のケースの⾒積もり. • CPU性能解析レポート(ビジー時間) 移動量 : • ビジー時間から見たアプリケーションのタイプ =52.32GB • CPU単体性能から見たアプリケーションの分類 積もり時間: • ビジー時間から見たアプリケーションタイプとCPU単体性能 =0.255sec から見たアプリケーションの分類の対応 移動量 : • CPU単体性能チューニングとは? +24)B=87.2GB 積もり時間: • ルーフラインモデル 0.130sec • ルーフラインモデルによる性能見積り 2024年4月 計算科学技術特論B ss wait & Cache access wait er load Integer load cache L1D cache ss wait access wait Operation wait Floating- Floating- point load L2 cache access wait 71 point load Integer L1D cache operation access wait wait (*) Other wait Floatingpoint operation Branch instruction wait wait まとめ Other wait Store port Instruction busy wait fetch wait Other instruction commit Barrier synchronizati on wait 1 instruction commit 2 instruction 3 instruction 4 instruction commit commit commit Other instruction commit .60E-05 8.06E-05 3.70E-02 1.63E-02 7.19E-05 7.16E-05 2.19E-06 1.43E-05 0.00E+00 1.06E-04 1.34E-03 2.05E-03 4.31E-03 1.48E-03 1.40E-02 1.26E-05 .59E-05 5.75E-05 3.31E-02 1.78E-02 6.86E-05 7.61E-05 1.74E-06 8.61E-06 0.00E+00 5.82E-05 2.08E-03 2.12E-03 4.17E-03 1.55E-03 1.40E-02 0.00E+00 .21E-05 .62E-05 7.20E-05 6.65E-05 3.51E-02 3.68E-02 1.75E-02 1.64E-02 6.11E-05 6.69E-05 7.66E-05 7.99E-05 1.48E-06 1.51E-06 8.72E-06 1.02E-05 0.00E+00 0.00E+00 5.44E-05 6.61E-05 1.91E-03 1.64E-03 2.06E-03 2.11E-03 4.19E-03 4.25E-03 1.50E-03 1.53E-03 1.40E-02 1.40E-02 0.00E+00 0.00E+00 .60E-05 .87E-05 7.63E-05 6.65E-05 3.88E-02 3.75E-02 1.73E-02 1.80E-02 6.55E-05 7.50E-05 8.73E-05 7.90E-05 1.54E-06 1.50E-06 9.81E-06 8.77E-06 0.00E+00 0.00E+00 6.24E-05 5.80E-05 1.90E-03 1.94E-03 2.13E-03 2.11E-03 4.23E-03 4.28E-03 1.56E-03 1.56E-03 1.40E-02 1.39E-02 0.00E+00 0.00E+00 .86E-05 7.25E-05 4.00E-02 1.61E-02 6.92E-05 7.01E-05 1.45E-06 8.94E-06 0.00E+00 5.59E-05 1.64E-03 2.12E-03 4.30E-03 1.56E-03 1.39E-02 0.00E+00 .86E-05 .38E-05 7.10E-05 7.65E-05 4.14E-02 4.47E-02 1.66E-02 1.37E-02 7.86E-05 7.80E-05 8.45E-05 8.32E-05 1.53E-06 1.58E-06 9.89E-06 9.01E-06 0.00E+00 0.00E+00 6.40E-05 5.48E-05 1.80E-03 1.60E-03 2.09E-03 2.12E-03 4.29E-03 4.20E-03 1.53E-03 1.54E-03 1.40E-02 1.40E-02 0.00E+00 0.00E+00 .60E-05 5.86E-05 4.47E-02 1.46E-02 7.95E-05 8.77E-05 1.54E-06 8.41E-06 0.00E+00 5.33E-05 1.79E-03 2.06E-03 4.38E-03 1.47E-03 1.40E-02 0.00E+00 .03E-05 7.78E-05 4.44E-02 1.60E-02 7.40E-05 8.91E-05 1.56E-06 8.50E-06 0.00E+00 5.31E-05 1.21E-03 2.11E-03 4.28E-03 1.56E-03 1.39E-02 0.00E+00 .97E-05 .93E-05 6.73E-05 7.03E-05 4.39E-02 3.98E-02 1.51E-02 1.63E-02 7.64E-05 7.21E-05 8.59E-05 8.09E-05 1.55E-06 1.60E-06 8.39E-06 9.46E-06 0.00E+00 0.00E+00 5.39E-05 6.16E-05 1.85E-03 1.72E-03 2.03E-03 2.09E-03 4.36E-03 4.27E-03 1.46E-03 1.52E-03 1.40E-02 1.40E-02 0.00E+00 1.05E-06 (*) Include wait time for integer L1D cache access Cache L1D,L2 miss rate (/Loadstore instructions) Cycle Accounting execution time(s) 3.0E-01 Other instruction commit 4 instruction commit 3 instruction commit software prefetch rate(L1D,L2 miss) hardware prefetch rate (L1D,L2 miss) 2 instruction commit 1 instruction commit 2.5E-01 Barrier synchronization wait demand rate(L1D,L2 miss) Instruction fetch wait 00 Store port busy wait 2.0E-01 Other wait 90 Branch instruction wait Floating-point operation wait 80 1.5E-01 Integer operation wait 70 Floating-point load L1D cache access wai 60 ⾒積もりの⽅が⼤きく 50 55secとなる. 55であり⾒積と⼀致 40 Floating-point load L2 cache access wait 30 2024年4月 Integer load L1D cache access wait 1.0E-01 Integer load L2 cache access wait Floating-point load memory access wait 計算科学技術特論B 5.0E-02 72 Integer load memory access wait Prefetch port busy wait by software prefe Prefetch port busy wait by hardware pref

37.

2024年4月 計算科学技術特論B 73