36. 2020年4月23日 計算科学技術特論B
36
ルーフラインモデル
mine sustainable DRAM bandwidth.
They include all techniques to get the
best memory performance, including
them to include memory optimiza-
tions of a computer into our bound-
and-bottleneck model. Second, we
l
n
-
d
n
-
y
e
-
-
h
”
-
t
e
n
e
d
-
s
n
e
m
-
p
e
-
Figure 1: Roofline model for (a) AMD Opteron X2 and (b) Opteron X2 vs. Opteron X4.
(a)
peak memory bandwidth (stream) peak floating-point performance
Operational Intensity (Flops/Byte)
OperationalIntensity1
(memory-bound)
OperationalIntensity2
(compute-bound)
AttainableGFlops/sec
128
64
32
16
8
4
2
1
1/2
1/4 1/2 1 2 4 8 16
(b)
Opteron X4
Opteron X2
AttainableGFlops/s
128
64
32
16
8
4
2
1
1/2
• ハードウェアの実効的なメモリバンド幅:B
• ハードウェアのピーク性能:F
• アプリケーションの演算強度:X=f/b
• アプリケーションの要求フロップス値:f
• アプリケーションの要求バイト値:b
B*X=B*(f/b)=B*F*f/(b*F)=(B/F)/(b/f)*F
アプリケーションのピーク性能比 :min(1.0 , (B/F)/(b/f) )
S. Williams, A. Waterman, and D. Patterson: Roofline: an
insightful visual performance model for multicore architectures.
Commun. ACM, 52:65–76, 2009.
アプリケーションの性能:
min(F,B*X)
ハードウェアのB/F値をアプリ
ケーションのb/f値で割る.
37. 2020年4月23日 計算科学技術特論B
37
ルーフラインモデルの別の見方
(1)メモリ
• メモリデータ転送量:Mdata
• 実効メモリバンド幅:Mband,
• メモリデータ移動時間:Mtime
(2)演算
• プログラム演算量:Ca
• 演算ピーク性能:Ppeak
• 最小演算時間:Ctime
Mdata
Mband
演算器の処理とメモリのデータ
の処理が同時に終わるモデル
Mtime=Mdata/Mband
Ctime=Ca/Ppeak
A+
BSPbP% B P]SO_TP % A+SPbP A+ P]SO_TP 9P
E_TP y s
ww BbX T A+ s
ww A+bX T 9bX T t
y
Mtime=Mdata/Mband_peak
L2time=L2data/L2band_peak
Ctime=Ca/Ppeak
× * × + × ,
BbX T A+bX T 9bX T
fObX T 9_
Ex_time=max(Mtime,L2time,Ctime)
Cp= Ca/(max(Mtime,L2time,Ctime)*Ppeak)
(3)実行時間 : Ex_time
39. 2020年4月23日 計算科学技術特論B
39
メモリとキャッシュ混合状態での性能予測モデル
s s
A+
A+
A+
BSPbP% B P]SO_TP % A+SPbP A+ P]SO_TP 9P
E_TP y s
ww BbX T A+ s
ww A+bX T 9bX T t
y
Mtime=Mdata/Mband_peak
L2time=L2data/L2band_peak
Ctime=Ca/Ppeak
× * × + × ,
BbX T A+bX T 9bX T
fObX T 9_
Ex_time=max(Mtime,L2time,Ctime)
Cp= Ca/(max(Mtime,L2time,Ctime)*Ppeak)
BbX T6A+bX T r x A+ x u z r
Ex_time=L2timeの場合
L2dataMband
L2band
(1)メモリ
• メモリデータ転送量:Mdata
• 実効メモリバンド幅:Mband
• メモリデータ移動時間:Mtime
(2)L2キャッシュ
• L2データ転送量:L2data
• 実効L2バンド幅:L2band
• L2データ移動時間:L2time
(3)演算
• プログラム演算量:Ca
• 演算ピーク性能:Ppeak
• 最小演算時間:Ctime
「キャッシュの効果を考慮したルーフラインモデルの
拡張によるプログラムの性能予測」南一生他,情報処理学会論文誌
コンピューティングシステム,第9巻,第2号,1-14(2016年6月)
Mtime=Mdata/Mband
Ctime=Ca/Ppeak
L2time=L2data/L2band
(4)実行時間 : Ex_time
41. 2020年4月23日 計算科学技術特論B
41
メモリとキャッシュアクセス(1)
do J = 1, NY
do I = 1, NX
do K = 3, NZ-1
DZV (k,I,J) = (V(k,I,J) -V(k-1,I,J))*R40 &
- (V(k+1,I,J)-V(k-2,I,J))*R41
end do
end do
end do
メモリ:ロード1,ストア1
メモリ:ロード1
$L1:ロード2
$L1:ロード1
42. 2020年4月23日 計算科学技術特論B
42
do J = 1, NY
do I = 1, NX
do K = 3, NZ-1
DZV (k,I,J) = (V(k,I,J) -V(k-1,I,J))*R40 &
- (V(k+1,I,J)-V(k-2,I,J))*R41
end do
end do
end do
ルーフラインモデルによる性能見積り
n 最内軸(K軸)が差分
n 1ストリームでその他の3配列は$L1に載っ
ており再利⽤できる。
要求flop:
add : 3 mult : 2 = 5
要求B/F 12/5 = 2.4
性能予測 0.36/2.4 = 0.15
実測値 0.153
要求Byteの算出:
1store,2loadと考える
4x3 = 12byte
アプリケーションのピーク性能比の予測値
: ハードウェアのBF値(実効値)/アプリの要求BF値
48. 2020年4月23日 計算科学技術特論B
48
ロード・ストアの効率化
演算とロード・ストア比の改善 < 内側ループアンローリング>
• 以下の様な2 つのコーディングを比較する。
do j=1,m
do i=1,n
x(i)=x(i)+a(i)*b+a(i+1)*d
end do
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
end do
• 最初のコーディングの演算量は4 ,ロード/ストア回数は4 である.2 つ目のコ ーディン
グの演算量は8 ,ロード/ストア回数は7 である.
• 最初のコーディングの演算とロード/ ストアの比は4/4,2つ目のコーディングの演算と
ロード/ストアの比は8/7となり良くなる.
本例は教科書的なもので、キャッシュ
の考慮、コンパイラの処理の考慮、レ
ジスタ数の考慮により一概に効果があ
るものではない。
同じもの