• 検索結果がありません。

4 倍精度基本線形代数ルーチン群 QPBLAS の紹介 [index] 1. Introduction 2. Double-double algorithm 3. QPBLAS 4. QPBLAS-GPU 5. Summary 佐々成正 1, 山田進 1, 町田昌彦 1, 今村俊幸 2, 奥田洋司

N/A
N/A
Protected

Academic year: 2021

シェア "4 倍精度基本線形代数ルーチン群 QPBLAS の紹介 [index] 1. Introduction 2. Double-double algorithm 3. QPBLAS 4. QPBLAS-GPU 5. Summary 佐々成正 1, 山田進 1, 町田昌彦 1, 今村俊幸 2, 奥田洋司"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

[index] 1.  Introduction 2.  Double-double algorithm 3.  QPBLAS 4.  QPBLAS-GPU 5.  Summary

4倍精度基本線形代数ルーチン群

QPBLASの紹介

1 ○佐々 成正1, 山田 進1, 町田 昌彦1, 今村 俊幸2, 奥田 洋司3 1日本原子力研究開発機構 システム計算科学センター   2  理科学研究所 計算科学研究機構    3    東京大学 新領域創成科学研究科

(2)

はじめに

「京」コンピュータのような超大規模な並列計算機が 一般ユーザでも利用できる環境 大規模並列計算機の性能をフルに利用する ため、シミュレーション手法の大規模化 演算回数が増大するため、本来無限桁である実数を有限桁で 打ち切って計算することによる誤差の累積の影響が大きくなる 地球シミュレータで375,000次元の行列の全固有値・固有ベクトルを直接法で計算 精度は数ケタ   (SC06、Yamada et. al.) 倍精度演算では有効な精度の結果が得られない可能性あり

(3)

4倍精度化の方法

•  real*16変数を利用 計算時間がかかるため 実用的でない 2つの倍精度実数(real*8)を組み合わせることで4倍精度演算を実現 倍精度演算の組み合わせなので高速に計算可能 •  Baileyのdouble-doubleアルゴリズム

a=a.hi+a.lo a.hi : 上位データ、  a.lo : 下位データ

倍精度の仮数部は52bitで表現しているため、この方法だと104bitで表現 (real*16の場合仮数部は112bit)

•  多倍長計算用のライブラリ

(4)

a ← (aH,aL)

aH:

上位データ(real*8)

, aL:

下位データ(real*8)

2. double-double algorithm

※2つの倍精度実数(real*8)を組み合わせて4倍精度演算を実現 52bit(仮数部) 52bit(仮数部) 104bit(仮数部) 〜[10進約32桁] 112bit(仮数部) 〜[10進約34桁] REAL*16型実数 double-double型実数

(5)

Daileyの4倍精度演算アルゴリズム

Baileyのdouble-double アルゴリズムによる加算 C=A+B 11回の演算で実現可能 Baileyのdouble-double アルゴリズムによる乗算 C=A*B 24回の演算で実現可能 134217729(= 227+1) 上位26bit, 下位26bitのデータに分割する際に利用 [Baileyの4倍精度演算アルゴリズム] ※コンパイラの最適化で、 計算順序変更不可

(6)

3.

4倍精度化

BLAS

BLAS (Basic Linear Algebra Subprograms)

線形基本演算のルーチン群 (40個)

double-doubleアルゴリズムで4倍精度化

call dgemm( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LCD)

倍精度版

4倍精度版

(*H  :  4倍精度の上位データ 、  *L  :  4倍精度の下位データ)

QPBLAS

Quadrature Precision Basic Linear Algebra Subprograms)

[ルーチン名の接頭辞にdをつけて倍精度を表現]

[ルーチン名の接頭辞にddをつけて4倍精度を表現]

call ddgemm( TRANSA, TRANSB, M, N, K, ALPHAH, ALPHAL, AH, AL, LDA, BH, BL, LDB, BETAH, BETAL, CH, CL , LCD)

(7)

使用する計算機

QPBLASの性能評価

•  Intel/  Windows

Processor  :  Intel  Core  2  Duo  E8400  (3.0GHz)   OS  :  Windows  XP  Professional  

Compiler  :  Intel  Fortran  10.0  IA32 •  AMD/  Linux

Processor  :  Dual  Core  AMD  Opteron  Processor  2800  (2.4GHz)   OS  :  Cent  OS  4.4  

Compiler  :  gfortran  4.1.0

※DDDOT  (内積)、DDGEMV(行列ベクトル積)、DDGEMM(行列行列積) の性能評価

(8)

3.1 DDDOT

および

DDGEMV

の性能評価

0.14 0.12 0.10 0.08 0.06 0.04 0.02 0.00 計算時間( 秒) 1000000 800000 600000 400000 200000 0 配列次元 Intel O0 Intel O2 Intel O3 AMD O0 AMD O2 AMD O3 0.6 0.5 0.4 0.3 0.2 0.1 0 計算時間( 秒) 2000 1500 1000 500 配列次元 Intel O0 Intel O2 Intel O3 AMD O0 AMD O2 AMD O3 0 ・  DDDOT(内積計算) ・  DDGEMV(行列ベクトル積) AMDの方が若干早い 最適化をしたIntelが早い 計算時間は次元サイズ の2乗に比例 計算時間は次元サイズ に比例 TRANS=‘N’

[

α

← x

T

y]

[y ←

α

Ax +

β

y]

(9)

0 5 10 15 20 25 30 10 250 750 1250 1750

3.1 DDGEMM

の性能評価

2000 1500 1000 500 配列次元 0 140 120 100 80 60 40 20 0 計算時間( 秒) Intel O0 Intel O2 Intel O3 AMD O0 AMD O2 AMD O3 Intelの方が早い 計算時間は次元サイズ の3乗に比例 DGEMMとDDGEMMの計算時間比 は最大10倍程度 TRANSA=‘N’, TRANSB=‘N’ ・  DDGEMM(行列行列積) ・  DGEMMとDDGEMMの性能比較 最適化 O2,O3(Intel)   配列次元 計算時間の増加率 (DDGEMMの計算時間/DGEMの計算時間)

[C ←

α

AB +

β

C]

(10)

※QPBLASの公開HP

ライセンス  

Level 1 Level 2 Level 3

ddswap ddscal ddcopy ddaxpy dddot ddnorm2 ddsum ddidmax ddrot ddrotg ddrotm ddrotmg ddzdotc ddzdotu ddgemv ddsymv ddtrmv ddtrsv ddsyr ddsyr2 ddgbmv ddger ddsmbv ddtbmv ddtbsv ddzgerc ddzgeru ddzhbmv ddzhemv ddzher ddzher2 ddgemm ddsymm ddsyr2k ddsyrk ddtrmm ddtrsm ddzhemm ddzher2k ddzherk [subrou^nes]   http://ccse.jaea.go.jp/ja/download/qpblas.html

3.2 QPBLAS

の公開

HP

オープンソース(2条項BSDライセンス)

(11)

4. QPBLAS-GPU

BLAS (Basic Linear Algebra Subprograms)

線形基本演算のルーチン群 (40個)

double-doubleアルゴリズムで4倍精度化

CUDA4.0でGPGPU用に実装

call dgemm( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LCD)

倍精度版

GPU4倍精度版

(*H  :  4倍精度の上位データ 、  *L  :  4倍精度の下位データ)

QPBLAS-GPU

Quadrature Precision Basic Linear

Algebra Subprograms on GPUs)

[ルーチン名の接頭辞にdをつけて倍精度を表現]

[ルーチン名の接頭辞にgddをつけて4倍精度を表現]

call gddgemm( TRANSA, TRANSB, M, N, K, ALPHAH, ALPHAL, AH, AL, LDA, BH, BL, LDB, BETAH, BETAL, CH, CL , LCD)

(12)

計算機環境

QPBLASの性能評価

•  Intel/ Linux

Processor : Intel Xeon W3565 (3.2GHz) GPU : Tesla C2075(448core, 1.15GHz)

OS : RedHat 4.1.2

Fortran Compiler : gfortran 4.1.2 C Compiler : gcc 4.1.2 GPGPU開発環境 : CUDA4.0 ※DDDOT  (内積)、DDGEMV(行列ベクトル積)、DDGEMM(行列行列積) の性能評価

4.1 QPBLAS-GPU

の性能評価

※計算時間測定は純粋なGPUの計算時間ではなく、ホストメモリー   デバイスメモリ間の転送時間等を含んだもの

(13)

3 1.0E-06 1.0E-05 1.0E-04 1.0E-03 1.0E-02 1.0E-01 1.0E+00

1.0E+03 1.0E+04 1.0E+05 1.0E+06 1.0E+07

データサイズ 計算時間  ( se c ) C P U G P U

4.1 GDDDOT

の性能評価

※GPU/CPU速度比最大5倍程度

[

α

← x

T

y]

(14)

3 1.0E-06 1.0E-05 1.0E-04 1.0E-03 1.0E-02 1.0E-01 1.0E+00 1.0E+01

1.0E+01 1.0E+02 1.0E+03 1.0E+04 データサイズ 計算時間  ( se c ) C P U G P U

4.1 GDDGEMV

の性能評価

最大演算速度0.16GFlops(メモリ間の転送時間を含む) ※GPU/CPU速度比最大10倍程度

[y ←

α

Ax +

β

y]

(15)

3 1.0E-06 1.0E-05 1.0E-04 1.0E-03 1.0E-02 1.0E-01 1.0E+00 1.0E+01 1.0E+02 1.0E+03

1.0E+00 1.0E+01 1.0E+02 1.0E+03 1.0E+04

データサイズ 計算時間  ( se c ) C P U G P U

4.1 GDDGEMM

の性能評価

最大演算速度85.9GFlops(メモリ間の転送時間を含む) ※GPU/CPU速度比最大500倍程度

[C ←

α

AB +

β

C]

(16)

※QPBLAS-­‐GPUの公開HP

http://ccse.jaea.go.jp/ja/download/ qpblas_gpu.html

ライセンス  

オープンソース(2条項BSDライセンス)

Level 1 Level 2 Level 3

gddswap gddscal gddcopy gddaxpy gdddot gddnorm2 gddsum gddidmax gddrot gddrotg gddrotm gddrotmg gddzdotc gddzdotu gddgemv gddsymv gddtrmv gddtrsv gddsyr gddsyr2 gddgbmv gddger gddsmbv gddtbmv gddtbsv gddzgerc gddzgeru gddzhbmv gddzhemv gddzher gddzher2 gddgemm gddsymm gddsyr2k gddsyrk gddtrmm gddtrsm gddzhemm gddzher2k gddzherk [subrou^nes]  

4.2

QPBLAS-GPUの公開HP

(17)

※公開用ソフトウェア一覧HP http://ccse.jaea.go.jp/ja/download/ software.html 1.  「京」コンピュータ用固有値 計算ライブラリ:  EigenK  

5

公開ソフトウェア

2.  4倍精度Basic  Linear    Algebra   Subprograms:  QPBLAS  

3.  4倍精度Basic  Linear    Algebra   Subprograms  on  GPU:    

QPBLAS-­‐GPU  

※今後4倍精度ソフトウェ   

(18)

8 ・4倍精度化BLAS (QPBLAS)の作成と公開 ① 主要 40 routine ② 倍精度版gemmとの速度比は約10倍 ・GPU用4倍精度化BLAS (QPBLAS-GPU)の作成と公開 ① 主要 40 routine ② CUDA4.0 ③ CPU版gemmとの速度比は最大500倍高速化

6. Summary

※double-double アルゴリズムを用いて

参照

関連したドキュメント

1-1 睡眠習慣データの基礎集計 ……… p.4-p.9 1-2 学習習慣データの基礎集計 ……… p.10-p.12 1-3 デジタル機器の活用習慣データの基礎集計………

藤田 烈 1) ,坂木晴世 2) ,高野八百子 3) ,渡邉都喜子 4) ,黒須一見 5) ,清水潤三 6) , 佐和章弘 7) ,中村ゆかり 8) ,窪田志穂 9) ,佐々木顕子 10)

1  ミャンマー(ビルマ)  570  2  スリランカ  233  3  トルコ(クルド)  94  4  パキスタン  91 . 5 

1号機 2号機 3号機 4号機 5号機

佐々木雅也 1)  Masaya SASAKI 丈達知子 1)  Tomoko JOHTATSU 栗原美香 1)  Mika KURIHARA 岩川裕美 1)  Hiromi IWAKAWA 藤山佳秀 2)  Yoshihide

1 アトリエK.ドリーム 戸田 清美 サンタ村の住人達 トールペイント 2 アトリエK.ドリーム 戸田 清美 ライトハウス トールペイント 3 アトリエK.ドリーム 戸田

※1 13市町村とは、飯舘村,いわき市,大熊町,葛尾村, 川内村,川俣町,田村市,富岡町,浪江町,楢葉町, 広野町, 双葉町, 南相馬市.

画像 ノッチ ノッチ間隔 推定値 1 1〜2 約15cm. 1〜2 約15cm 2〜3 約15cm