Hpc148
- 3. 問題例:Henon Map
Searching for sinks of Henon map using a multiple-precision GPU arithmetic library
M. Joldes, V. Popescu, W. Tucker, HEART2014
ha,b(x1, x2) = (1 + x2 ax2
1, bx1)
ns: hi+1
a,b := ha,b hi
a,b, i 2 N⇤
.
parameter values a = 1.4, b = 0.3 one observes the so-called H´enon
iterating hn
a,b, n ! 1:
1 / 23
H´enon attractor
H´enon Map
ha,b(x1, x2) = (1 + x2 ax2
1, bx1)
Map iterations: hi+1
a,b := ha,b hi
a,b, i 2 N⇤
.
For classical parameter values a = 1.4, b = 0.3 one observes the so-called H´enon
attractor by iterating hn
a,b, n ! 1:
1 / 23
異なるa,bや初期位置からの計算
を繰り返して、興味のある場合
を発見する問題。
!
繰り返し計算による丸め誤差の
蓄積が問題となる。
誤差の軌道への影響は指数関数的
- 5. 多倍長精度FP演算手法(2)
整数演算によるエミュレーション手法(Int方式)
• GNU Multiple Precision Arithmetic Library (GMP)
• FPを含めて様々な多倍長精度演算アルゴリズムを実装
• FPについては基本演算と簡単な関数のみ
• GNU MPFR (Fousse etal. 2007)
• GMPをベースにより汎用的なFP演算の実装
• 一般的な数学関数含む
• CUMP (Nakayama & Takahashi 2011)
• GMPの一部(加算・乗算)をCUDAカーネルとして移植
• C++ templateを利用しているためOpenCL化難しい
- 9. データ構造報処理学会研究報告
SJ SIG Technical Report
FP 演算における主たる処理は仮数部同士の演算であ
上記 (b) の手法は, 整数演算により複数語からなる仮
部の演算を, 四則演算それぞれの場合ついて筆算と同様
アルゴリズムでおこなう (例えば”The Art of Computer
ogramming Volume 2”[8](TACP Vol.2) Section 4.3 参
). ただし, 乗算 [9] と除算 [6] について, 筆算と同様の基
アルゴリズムよりも演算数を削減することのできるア
ゴリズムが提案されている. この FP 演算のエミュレー
ョンによる多倍長演算手法では, 原理的には指数部, 仮数
ともに任意のビット長を利用することができる. よって,
記ファインマン・ダイアグラムの直接計算の場合におけ
指数部サイズの制限の問題の解決策となる.
本論文では, (b) の手法による FP 演算を C 言語により
計・実装し, それを OpenCL カーネルとして利用可能と
ることで, OpenCL でプログラム可能なマルチコア・メ
typedef uint32_t u32;
const u32 NC = 7;
struct my_fp {
u32 e;
u32 m[NC];
};
typedef struct my_fp FP[1];
図 1 本論文における多倍長精
めす. この構造体 FP では, FP-
する. FP->e の最上位の 1 ビッ
30 ビットに指数部を保持する仕
754 規格にならって, バイアス
とした. nexp = 30 より, この場
0x3fffffff となる. FP->m[] は仮
指数部と同様に符号なし 2 進数
• 符号なし整数の配列に格納
• 指数部に1語。bias方式
• 符号は指数部に格納する
• 仮数部にn語
• 仮数部は1語当たり30 bitに分割。n = 7, 210 bit
• hidden bitはなし
!
• 32 bit vs. 64 bitの選択
• GPUの演算器は32 bitのはず。より冗長。今回はこちらを採用
• CPU(x86-64)は64 bit演算のほうが効率よい。GMPはこれ
指数部 仮数部[0] 仮数部[1] 仮数部[2]
符号
仮数部[3]
- 12. 多倍長FP演算の性能(CPU)
QD(FP方式)の性能評価 (演算当たりのサイクル数)
仮数部のサイズは105 or 209 bit
IvyBridge 51 85 185
Haswell 45 84 191
Magny-Cours 92 145 332
Bulldozer 100 162 309
Llano 115 156 344
表 1 MPFR 方式 (nman = 210, nexp = 64) の CPU における性
能評価. 単位は 1 演算あたりのサイクル数.
加算 乗算 除算
Nehalem 115 218 1113
SandyBridge 93 193 1021
IvyBridge 76 174 919
Haswell 65 169 1013
Magny-Cours 211 348 1572
Bulldozer 165 277 1527
Llano 227 374 1559
表 2 QD 方式 (nman = 209, nexp = 11) の CPU における性能評
価. 単位は 1 演算あたりのサイクル数.
表では
してい
Stamp
た. ど
に RD
回数で
定した
QD
方式は
されて
およそ
倍のサ
本表
IvyBri
され, 演
進歩を
が, ほと
- 13. 多倍長FP演算の性能(CPU)
情報処理学会研究報告
IPSJ SIG Technical Report
加算 乗算 除算
Nehalem 71 121 242
SandyBridge 54 93 206
IvyBridge 51 85 185
Haswell 45 84 191
Magny-Cours 92 145 332
Bulldozer 100 162 309
Llano 115 156 344
表 1 MPFR 方式 (nman = 210, nexp = 64) の CPU における性
能評価. 単位は 1 演算あたりのサイクル数.
QD L
5.1.3,
価で利
表では
してい
Stamp
た. ど
に RD
回数で
定した
MPFR(Int方式)の性能評価 (演算当たりのサイクル数)
仮数部のサイズを指定可能
- 14. 本研究の実装性能評価(CPU)
MYFP(Int方式)の性能評価 (演算当たりのサイクル数)
仮数部のサイズを指定可能
情報処理学会研究報告
IPSJ SIG Technical Report
加算 乗算 除算 除算 F 除算 D
Nehalem 111 167 2026 2087 1155
SandyBridge 91 148 1949 1986 1107
IvyBridge 80 142 1822 1737 970
Haswell 81 136 2029 1885 1049
Magny-Cours 174 275 2866 2925 1654
Bulldozer 186 373 3223 3044 2304
Llano 189 299 2884 2909 1657
表 3 MYFP 方式 (nman = 210, nexp = 30) の CPU における性
能評価. 単位は 1 演算あたりのサイクル数.
性能が高
かる. G
ないが,
ト ALU
れる. た
る場合が
のマイク
る同一の
ドのバー
傾向は,
- 15. 各実装の比較 (サイクル数)
加算 乗算 除算
QD 65 169 1013
MPFR 45 84 191
MYFP 81 136 2029
加算 乗算 除算
QD 165 277 1527
MPFR 100 162 309
MYFP 186 373 3223
Haswell Bulldozer
• この仮数部サイズでは、QDには性能上のメリットはない
• MPFRはGMPによりアセンブリで最適化されているため高速
• MYFPは時間QDより遅い
• MYFPの除算は直接法。ニュートン法の方が高速。
- 16. OpenCLによる性能評価
MYFP(Int方式)の性能評価 (MFLOPS)
告
Report
SP 性能 加算 乗算 除算 除算 F 除算 D
Xeon E5-2670 3.3e5 247 180 21.3 20.4 38.9
GeForce GTX570 1.4e6 244 105 17.1 11.0 13.3
Radeon HD6970 2.7e6 1461 213 11.9 22.4 9.5
FirePro W8000 3.2e6 1546 82.6 35.4 – –
Tesla K20c 3.5e6 349 138 22.6 15.2 15.8
Radeon R280X 4.2e6 2324 1835 190 61.7 231
FirePro W8100 4.2e6 260 44.7 24.4 – –
GeForce TITAN 4.5e6 449 192 31.8 21.1 20.5
表 4 MYFP 方式 (nman = 210, nexp = 30) の CPU における性能評価. 単位は MPFLOS.
sium on Computer Architecture, pp. 287–
n Software Directory: .
• FP SPでの性能にほぼ比例する
• OpenCLのドライバ実装に大きく依存。一部実行不可能。
• CPU(16コア)とローエンドGPUは同等の性能