応用数理工学特論 第 10 回

62
応応応応応応応応 応 10 応 2008 応 7 応 3 応 応応応応応応応 応応応応

description

応用数理工学特論 第 10 回. 2008 年 7 月 3 日 計算理工学専攻 山本有作. 目次. 1 .  はじめに 2 .  共有メモリ型並列計算機での特異値分解の高速化 ~ 正方行列の特異値分解 ~ 3 . SIMD 超並列プロセッサでの特異値分解の高速化 ~ 長方行列の特異値分解 ~. 1 .  はじめに. n. n. 特異値分解とは. 任意の実正方行列 A は,直交行列 U ,対角行列 S ,直交行列 V T の積に分解できる。 参考 A が実対称行列の場合, A=UDU T A が任意の実行列の場合, A=SDS – 1 - PowerPoint PPT Presentation

Transcript of 応用数理工学特論 第 10 回

Page 1: 応用数理工学特論 第 10 回

応用数理工学特論 第 10 回

2008 年 7 月 3 日

計算理工学専攻山本有作

Page 2: 応用数理工学特論 第 10 回

2

目次

1 .  はじめに

2 .  共有メモリ型並列計算機での特異値分解の高

速化

~ 正方行列の特異値分解 ~

3 .   SIMD 超並列プロセッサでの特異値分解の高

速化

~ 長方行列の特異値分解 ~

Page 3: 応用数理工学特論 第 10 回

3

1 .  はじめに

Page 4: 応用数理工学特論 第 10 回

4

特異値分解とは

: n×n :::U : n×n 直交行列V : n×n 直交行列 : n×n ::::= × ×n

n n

n

• 任意の実正方行列 A は,直交行列 U ,対角行列 ,直交行列 VT の積に分解できる。

• 参考• A が実対称行列の場合, A=UDUT

• A が任意の実行列の場合, A=SDS–1

• A が任意の実行列の場合, A=URUT

Page 5: 応用数理工学特論 第 10 回

5

特異値と特異ベクトル

• A=UV T において,– V の各列 vi を右特異ベクトル

– U の各列 ui を左特異ベクトル

– の要素 i を特異値,と呼ぶ。

• 特異ベクトルの性質– AV=U より, Avi = i ui

– UTA= V T より, uiTA = i vi

T

Page 6: 応用数理工学特論 第 10 回

6

固有値分解(対角化)との関係

• A=UV T より, ATA= VUTUV T = VV T

  よって, V は ATA を対角化する直交行列  A の右特異ベクトル = ATA の固有ベクトル

• A の特異値 = ATA の固有値の平方根

• 一方, AAT= UV TVU T = UU T

 よって, V は ATA を対角化する直交行列  A の左特異ベクトル = AAT の固有ベクトル

Page 7: 応用数理工学特論 第 10 回

7

特異値分解を求めるアルゴリズム

• 二重対角行列への変換

• 二重対角行列の特異値分解

• A の特異値分解の計算

よって, U= U0U1 , V= V0V1 とおくと(逆変換),

U0TAV0 = B   (U0, V0: 直交行列 )

U1TBV1 =   (U1, V1: 直交行列 )

U1TU0

TAV0V1 =

A = UV T

Page 8: 応用数理工学特論 第 10 回

8

特異値分解の応用

• 信号処理• 画像処理• 電子状態計算

– Filter Diagonalization Method

• 文書検索– Latent Semantic Indexing

• 各種統計計算– 主成分分析– 独立成分分析– 最小二乗法

Page 9: 応用数理工学特論 第 10 回

9

対象とする計算機

Page 10: 応用数理工学特論 第 10 回

10

共有メモリ型並列計算機

• アーキテクチャ– 複数のプロセッサ( PU )がバスを  通してメモリを共有– PU はそれぞれキャッシュを持つ

• 例1: マルチコアプロセッサ– Intel 社 デュアルコア Xeon– 1 チップに 2 個のプロセッサを共有メモリ型で集積

• 例2: 共有メモリ型のスーパーコンピュータ– 富士通 PrimePower HPC2500– 最大 128 個の PU を共有メモリで結合

PU0 PU1 PU2 PU3

メモリ

キャッシュ

バス

デュアルコア Xeon PrimePower HPC2500

Page 11: 応用数理工学特論 第 10 回

11

SIMD 超並列プロセッサ

• 1 チップに 100 個単位のプロセッサを搭載• 全プロセッサが別々のデータに対して同じ命令を実行する

SIMD ( Single Instruction Multiple Data )型の並列計算機– 線形計算に最適

• 汎用プロセッサの 10 ~ 100 倍の性能– ClearSpeed 社 CSX600:   96 プロセッサ, 48GFLOPS (倍精度)– 東大 GRAPE-DR:   512 プロセッサ, 256GFLOPS (倍精度)

• 演算性能は極めて高いが,データ転送速度は汎用プロセッサと同程度

• データ再利用性の向上が,共有メモリ型並列計算機以上に重要

Page 12: 応用数理工学特論 第 10 回

12

512 コアプロセッサ( GRAPE-DR )

Page 13: 応用数理工学特論 第 10 回

13

グラフィックスプロセッサ( GPU )

• GPU ( Graphics Processing Unit )の高速化– CPU を大きく上回るペースで演算性能が向上– グラフィックスメモリも大容量化・高速化

nVIDIA 社 GeForce8800GTX・ 240 個の演算プロセッサ・ 演算性能: 933GFLOPS (単精度)         90GFLOPS(倍精度)・ メモリ: 1GBGPU を汎用の数値計算に使う GPGPU ( General-Purpose

GPU )が注目を集める– 計算機としてのアーキテクチャは SIMD 超並列型

Page 14: 応用数理工学特論 第 10 回

14

2 .  共有メモリ型並列計算機での特異値分解の高速化

~ 正方行列の特異値分解 ~

Page 15: 応用数理工学特論 第 10 回

15

正方行列の特異値分解

: n×n :::U : n×n 直交行列V : n×n 直交行列 : n×n ::::

<応用>– 各種統計計算– より応用の多い長方行列の特異値分解は,正方行列の特異値分解

に帰着される。

= × ×n

n n

n

Page 16: 応用数理工学特論 第 10 回

16

従来の特異値分解アルゴリズムとその問題点

U0TAV0 = B

(U0, V0: 直交行列 )

Bvi =σi xi

BTxi =σi yi

vi = V0 yi

ui = U0 xi

二重対角化

二重対角行列の特異値・特異 計算ベクトル

逆変換

二重対角行列 B

B の特異値 {σi } ,  特異ベクトル {xi }{yi }

A の特異ベクトル {ui }, {vi

}

密行列 A 計算内容 計算手法

ハウスホルダー法

QR 法分割統治法MR3 アルゴリズムI-SVD アルゴリズム

逆変換

Page 17: 応用数理工学特論 第 10 回

17

各部分の演算量と実行時間

(8/3) n3

O(n2)~ O(n3)

4mn2

二重対角化

二重対角行列の特異値・特異 計算ベクトル

逆変換

A の特異ベクトル {ui }, {vi

}

密行列 A 演算量

・二重対角化が実行時間の 大部分を占める・速度向上率が低い

(左右 m 本ずつの特異ベクトル)

実行時間(全特異 )ベクトル

0

100

200

300

400

500

600

1 2 4

逆変換分割統治法二重対角化

n = 5000 , Xeon 2.8GHz ( 1 ~ 4PU )LAPACK での実行時間(秒)

Page 18: 応用数理工学特論 第 10 回

18

• ハウスホルダー法による二重対角化– 鏡像変換 H = I – wwT による列の消去

• H は対称な直交行列• 与えられたベクトルの第1成分以外をゼロにする• HA(k) = A(k) – u (utA(k))

• 第 k ステップでの処理

特異値分解アルゴリズムの高速化

左から H

を乗算

ベクトル

k

0

0

0

0

0

0

ゼロにしたい部分 影響を受ける部分非ゼロ要素

右から HkR

を乗算

左から HkL

を乗算

A(k)

行列ベクトル積rank-1更新

Page 19: 応用数理工学特論 第 10 回

19

ハウスホルダー法の特徴と問題点

• 特徴– 全演算量のほとんどが, BLAS2 である行列ベクトル積と

行列の rank-1更新で占められる。• 全演算量: 約 (8/3)n3

• 行列ベクトル積の演算量: 約 (4/3)n3

• rank-1更新の演算量: 約 (4/3)n3

• 問題点– BLAS2 のため,行列データの再利用性なし

• キャッシュミス,メモリ競合の影響大

– 共有メモリ型並列計算機上で高性能が出ない理由

Page 20: 応用数理工学特論 第 10 回

20

• 基本的なアイディア– 密行列 A をまず帯幅 L の下三角帯行列 C に変換– 次にこの帯行列を下二重対角行列 B に変換

• 二重対角化を2段階で行うことの利点– 下三角帯行列への変換は, BLAS3 のみを使って実行可能     キャッシュの有効利用が可能– 下三角帯行列から二重対角行列への変換の演算量は O(n2L)

• 前半部に比べてずっと小さい。

BLAS3 に基づく二重対角化アルゴリズム

0

0

A B

次数 n

約 (8/3)n3 O(n2L)

下三角帯行列化 村田法0

0

帯幅 LC

Page 21: 応用数理工学特論 第 10 回

21

下三角帯行列化のアルゴリズム

ブロック鏡像変換によるブロック列の消去– ブロック鏡像変換 H = I – WαWT

• H は直交行列• 与えられたブロックベクトルを上三角

行列(正確には右上三角部分のみ非零でそれ以外が零の行列)に変形

• HA(k) = A(k) – WαWTA(k)

第 K ステップでの処理

ゼロにしたい部分 影響を受ける部分非ゼロ要素

左から H

を乗算

ブロックベクトル

0

0

0

0

0

0

右から HKR

を乗算

左から HKL

を乗算

行列積 = BLAS3

A(k)

Page 22: 応用数理工学特論 第 10 回

22

帯行列の二重対角化(村田法)

左側からの直交変換で更新された要素

左側からの直交変換で更新された要素

・演算量は 8n2L

・並列化も可能

Page 23: 応用数理工学特論 第 10 回

23

本アルゴリズムの長所と短所

• 長所– BLAS3 の利用により,二重対角化の性能を向上可能

• 同様のアイディアに基づく三重対角化アルゴリズムでは,高い単体性能・並列性能を確認済み

• 短所– 特異ベクトル計算のための計算量・記憶領域が増大

• 2段階の逆変換が必要• 詳しくは次のスライドで説明

– 二重対角化の高速化効果が大きければ,計算量増大を考慮しても全体としては高速化できると予想

– 特に,求める特異ベクトルが少ない場合は効果が大きいはず。

Page 24: 応用数理工学特論 第 10 回

24

特異ベクトルの計算手法

• 二重対角行列の特異ベクトルを計算して2回逆変換

• 長所– 二重対角行列の特異値・特異ベクトルを求める任意の手法が適用可能

• 短所– 逆変換の演算量が 8mn2 (従来法の 2 倍)。ただし BLAS3 で実行可

能– 村田法の変換をすべて記憶するため, n2 の記憶領域が余計に必要

0

0

A B

n

4mn2 4mn2

0

0C

B の特異ベクトル{xi }{yi }

特異値{σi }

L

C の特異ベクトル{zi }{wi }

A の特異ベクトル{ui }{vi }

QR 法DC 法MR3

I-SVD

Page 25: 応用数理工学特論 第 10 回

25

性能評価

Page 26: 応用数理工学特論 第 10 回

26

性能評価

• 評価環境– Xeon (2.8GHz), 1 ~ 4PU

• Linux + Intel Fortran ver. 8.1• BLAS:   Intel Math Kernel Library• LAPACK:   Intel Math Kernel Library• ピーク性能:  5.6GFLOPS/CPU

– 富士通 PrimePower HPC2500 (2.0GHz), 1 ~ 32PU• 富士通 Fortran• BLAS:  富士通並列化版 BLAS• LAPACK:  富士通並列化版 LAPACK• ピーク性能:  8GFLOPS/CPU

• 評価対象・条件– BLAS3 に基づくアルゴリズムと LAPACK の性能を比較– n = 1200 ~ 20000 の乱数行列の特異値分解(全特異ベクトルを計

算)• BLAS3 アルゴリズムにとっては一番不利な条件

– BLAS3 アルゴリズムの L (半帯幅)は各 n ごとに最適値を使用

Page 27: 応用数理工学特論 第 10 回

27

Xeon での実行時間

• プロセッサ数を変えたときの実行時間

• 結果– BLAS3 アルゴリズムでは PU 数に応じて実行時間が順調に減少

• 4PU での加速率は 3 ~ 3.2 倍– 4PU の場合は BLAS3 アルゴリズムが従来法より高速

0

2

4

6

8

10

12

14

16

1 2 4

level-3LAPACK

0

20

40

60

80

100

120

1 2 4

level-3LAPACK

0

100

200

300

400

500

600

700

800

1 2 4

level-3LAPACK

n = 1200 n = 2500 n = 5000

実行時間

PU 数

Page 28: 応用数理工学特論 第 10 回

28

HPC2500 での実行時間

• プロセッサ数を変えたときの実行時間

• 結果– BLAS3 アルゴリズムは従来法に比べて最大 3.5 倍高速– プロセッサ数が多いとき加速率が鈍るのは,非並列化部分

(ブロック鏡像変換の作成など)の影響と思われる。

0

100

200

300

400

500

600

700

800

1 2 4 8 16 32

level-3LAPACK

0

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

1 2 4 8 16 32

level-3LAPACK

0

2000

4000

6000

8000

10000

12000

14000

1 2 4 8 16 32

level-3LAPACK

n = 5000 n = 10000 n = 20000

実行時間

PU 数

3.5 倍

Page 29: 応用数理工学特論 第 10 回

29

• Xeon , n=5000 の場合

• 考察– BLAS3 アルゴリズムでは,どの部分の実行時間も順調に減少

– 逆変換 1 (村田法の逆変換)の占める時間が大きい。     この部分について,さらに高速化が必要– 必要な特異ベクトルの本数が少ない場合, BLAS3 アルゴリ

ズムはさらに有利

0

100

200

300

400

500

600

700

800

1 2 4

2逆変換1逆変換

分割統治法村田法帯行列化

両手法の実行時間の内訳

0

100

200

300

400

500

600

1 2 4

逆変換分割統治法二重対角化

Page 30: 応用数理工学特論 第 10 回

30

• HPC2500 , n=10,000 の場合

• 考察– BLAS3 アルゴリズムでは,どの部分の実行時間も順調に減少

– 従来法は,二重対角化の部分の加速が鈍い。• ただし, 32PU で 6 倍程度は加速• メモリバンド幅が大きいためと思われる。

0

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

1 2 4 8 16 32

2逆変換1逆変換

分割統治法村田法帯行列化

両手法の実行時間の内訳

0

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

1 2 4 8 16 32

逆変換分割統治法二重対角化

Page 31: 応用数理工学特論 第 10 回

31

まとめと今後の課題

Page 32: 応用数理工学特論 第 10 回

33

3 .   SIMD 超並列プロセッサによる特異値分解の高速化

~ 長方行列の特異値分解 ~

Page 33: 応用数理工学特論 第 10 回

34

長方行列の特異値分解

= × ×m

nn

n

: m×n :::U : m×n 列直交行列V : n×n 直交行列 : n×n ::::

<応用>– 画像処理– 電子状態計算 ( Filter Diagonalization Method )– 文書検索 ( Latent Semantic Indexing )– 各種統計計算 (主成分分析,最小二乗法)

10万

5 千

(例)

Page 34: 応用数理工学特論 第 10 回

35

• GRAPE-DR– 512 個の演算コア– 512GFLOPS (単精度)– 256GFLOPS (倍精度)

• ClearSpeed CSX600– 1 個の汎用コア + 96 個の演算コア– 48GFLOPS (倍精度)

高い演算能力を持つ SIMD 超並列プロセッサ

•多数の演算装置の集積により極めて高い FLOPS 値•メモリアクセス性能の相対的な低下によるメモリネック

• GeForce GTX280 ( GPU )– 240 個の演算コア– 933GFLOPS (単精度)– 90GFLOPS (倍精度)

Page 35: 応用数理工学特論 第 10 回

36

• 行列積 C:=C+AB

– 演算量に比べ,データ量は O(1/N)

– キャッシュをうまく使うことで,メモリネックを軽減可能

行列積を効率的に使えれば,一般のアルゴリズムも高速化可能

Level-3 BLAS (行列積)の利用

= ×+C A BCデータ量: O(N 2)演算量:   O(N 3)

※ 行列ベクトル積( y := y + Ax )では,データ量・演算量ともにO(N 2)

Page 36: 応用数理工学特論 第 10 回

37

本章の目的

• 長方行列の特異値分解アルゴリズムを CSX600 を利用して高速化する

• 既存のアルゴリズムをそのまま使用せず,行列積をなるべく効率的に使う形で CSX600 向けに最適化する

• 性能評価を行い,更なる高速化に向けての課題を明らかにする

Page 37: 応用数理工学特論 第 10 回

38

ClearSpeed CSX600について

Page 38: 応用数理工学特論 第 10 回

39

CSX600 のアーキテクチャと性能

• CSX600 チップ– 1 個の主プロセッサ– 96 個の演算専用プロセッサ

• 64ビット• 倍精度 2 演算 / サイクル• 128B レジスタファイル• 6KB SRAM

– 250MHz で動作– ピーク性能: 48GFLOPS

• ClearSpeed Advance ボード– 2 個の CSX600 プロセッサ– 1GB DRAM– PCI-X バスにより PC 本体と接続

– ピーク性能: 96GFLOPS

Page 39: 応用数理工学特論 第 10 回

40

• Software Development Kit– コンパイラ:  Cn 言語によるチップ内並列プログラミング– デバッガ– シミュレータ

• CSXL ライブラリ– ClearSpeed Advance ボード用の BLAS– 行列データを PC の主メモリ上に置いてコール– PC ⇔ ボード間の転送はライブラリ内で実行– 公称性能: DGEMM (行列乗算)で 50GFLOPS

• CSFFT ライブラリ

CSX600 の利用環境

今回はこれを利用

Page 40: 応用数理工学特論 第 10 回

41

CSXL の DGEMM の性能

0

10000

20000

30000

40000

50000

1000 2000 3000 4000 5000 6000

A,B:非転置A B:非転置, :転置

m = k = 450 1000 ≦ n 6000≦

0

10000

20000

30000

40000

50000

1000 2000 3000 4000 5000 6000

k = 450 1000 ≦ m = n 6000≦

性能

(M

FL

OP

S)

A B×C +=

n k

m

kn

BA ×C +=m

性能を引き出すにはサイズパラメータのうち少なくとも2個を大きい値にとる必要がある

n n,m

Page 41: 応用数理工学特論 第 10 回

42

CSX600 向けの    高速化手法

Page 42: 応用数理工学特論 第 10 回

43

長方行列の特異値分解の手順

QR 分解 A = QR

二重対角化 R = U1 B V1T

特異値分解 B = U2 V2T

逆変換 R = U’ V T

V = V1 V2

U’ = U1 U2

Q の乗算 

A = U V TU = QU’

Am

n

Qm

n

R

n

n

B

n

n

Page 43: 応用数理工学特論 第 10 回

44

長方行列の特異値分解の手順

QR 分解 A = QR

二重対角化 R = U1 B V1T

特異値分解 B = U2 V2T

逆変換 R = U’ V T

V = V1 V2

U’ = U1 U2

Q の乗算 

A = U V TU = QU’

2mn2

(8/3)n3

O(n2) ~ O(n3)

2n3 ~ 4n3

4mn2

実行時間の大部分を占める

m ≫ n (例: m =100000, n =5000 )の場合 計算量

Page 44: 応用数理工学特論 第 10 回

45

高速化の方針

QR 分解 A = QR

二重対角化 R = U1 B V1T

特異値分解 B = U2 V2T

逆変換 R = U’ V T

V = V1 V2

U’ = U1 U2

Q の乗算 

A = U V TU = QU’

§CSX600 を利用する部分

§CSX600 を利用しない( CPU のみで実行する)部分

LAPACK の DGEBRD

LAPACK の DORMBR

I-SVD ( IDBDSLV )

行列乗算のみ高速化可能

行列乗算中心のアルゴリズム

Page 45: 応用数理工学特論 第 10 回

46

ハウスホルダー変換による QR 分解

ハウスホルダー変換による列の消去

上三角化と QR 分解

H1 A = ( I – t1 y1 y1T ) A

= A(1)

A(1)A

Hn ・・・ H2 H1 A = A(n)

・・・

A(2) A(n) = R

A = H1 H2 ・・・ Hn A(n) = QR

level-2 BLAS

CSXL を使えない

Page 46: 応用数理工学特論 第 10 回

47

複数のハウスホルダー変換の合成

Compact WY representation

Hn ・・・ H2 H1 = ( I – tn yn ynT ) ・・・ ( I – t2 y2 y2

T )( I – t1 y1 y1T )

= I – Yn Tn YnT

ただし, Yn = [ y1 | y2 | ・・・ | yn]  ( m×n 行列)

      Tn :  n×n 下三角行列

× ×I – × ×I –・・・ × ×I –=

複数のハウスホルダー変換の作用を,行列乗算としてまとめて実行可能

Page 47: 応用数理工学特論 第 10 回

48

ハウスホルダー変換のブロック化

( I – Y T

YT ) =

=( I – Y T

YT )

複数のハウスホルダー変換の合成

=( I – Y T

YT )

行列乗算としてまとめて作用

CSX 600で高速化

=HL ・・・ H1

Page 48: 応用数理工学特論 第 10 回

49

(Ⅰ)ブロック QR 分解( LAPACK で使用)

H1 H2 H3

H3H2H1= I – Y1T1Y1T

I – Y1T1Y1T I – Y2T2Y2

T I – Y3T3Y3T

分解 分解 分解更新 更新

•ブロックの分解(  )は行列・ベクトル積•演算量: L ( ブロック幅 ) << n のとき 2mn2

•CSX600 を使うには L 450 ≧ ⇒行列・ベクトル積の演算量の増加

L

・・・行列乗算

Page 49: 応用数理工学特論 第 10 回

50

(Ⅱ)再帰的 QR 分解

(I – Y1T1Y1T)

×(I – Y2T2Y2T)

= I – Y T YT

I – Y2T2Y2TI – Y1T1Y1

T

分解 更新 分解 合成

I – Y11T11Y11T

•ほぼ全ての演算が行列乗算•演算量: 3mn2

•Q の乗算の効率が良い

I – Y1T1Y1T

・・・行列乗算

Page 50: 応用数理工学特論 第 10 回

51

(Ⅲ)再帰的 QR 分解の拡張

I – Y1T1Y1T I – Y2T2Y2

T I – Y3T3Y3T

分解 分解 分解更新 更新

•ほぼ全ての演算が行列乗算•演算量:Ⅰ (2mn2) とⅡ (3mn2) の中間•ブロック幅 L を適切に選ぶことで,他の2方法より高速になる可能性がある

I – Y1T1Y1T

L

・・・行列乗算

Page 51: 応用数理工学特論 第 10 回

52

Q の乗算

(Ⅰ)ブロック QR 分解・(Ⅲ)再帰的 QR 分解の拡張の場合

Q = ( I – Yn/L Tn/L Yn/LT ) ・・・ (I – Y1 T1 Y1

T )

× ×I – ・・・

•行列サイズの大きいⅡの方が CSXL の性能を引き出せる•Ⅰ ・Ⅲの方が使用するメモリの量が少ない

× ×I –L

(Ⅱ)再帰的 QR 分解の場合Q = I – Y T YT

× ×I –n

Page 52: 応用数理工学特論 第 10 回

53

性能評価

Page 53: 応用数理工学特論 第 10 回

54

評価内容

• Xeon 3.2GHz ,メモリ 8GB• Intel Fortran -O3 + Intel Math Kernel Library• ClearSpeed Advance ボード

評価環境

• [-0.5,0.5] の一様乱数を要素とする m×n 乱数行列の特異値分解• 10000 ≦ m 100000≦ , 1000 ≦ n 4000≦

評価例題

• ClearSpeed ボードでの 3 種の QR 分解法の性能比較• 特異値分解全体の ClearSpeed ボードによる高速化効果• 精度評価

評価項目

Page 54: 応用数理工学特論 第 10 回

55

CSX600 使用時の各手法の性能比較(1)

0

200

400

600

800

1000

1200

1400

1600

1800

2000

500 1000 1500 2000

Qの乗算

QR分解

m =100000 n =4000

実行時間

(秒)

Ⅰ .ブロック QR 分解

Ⅱ .再帰的  QR

分解 Ⅲ .再帰的 QR 分解の拡張(数字はブロック幅)

Page 55: 応用数理工学特論 第 10 回

56

CSX600 使用時の各手法の性能比較(2)

0

20

40

60

80

100

120

140

160

500 1000 1500 2000

Qの乗算

QR分解

m =10000 n =4000

実行時間

(秒)

Ⅰ .ブロック QR 分解

Ⅱ .再帰的  QR

分解Ⅲ .再帰的 QR 分解の拡張(数字はブロッ

ク幅)

Page 56: 応用数理工学特論 第 10 回

57

0

5

10

15

20

25

PC PC+CSX PC PC+CSX

全体Qの乗算Rの特異値分解QR分解

0

500

1000

1500

2000

2500

3000

PC PC+CSX PC PC+CSXLAPACK の DGESDD    

  再帰的 QR 分解を利用 LAPACK の DGESDD    

  再帰的 QR 分解を利用

実行時間

(秒)

m = 10000 n=1000 (m:n = 10:1)

CSX600 による特異値分解全体の高速化

m = 100000 n=4000 (m:n = 25:1)

1.2 倍

1.8 倍

1.3 倍

3.1 倍

Page 57: 応用数理工学特論 第 10 回

58

行列サイズ による高速化率の変化(1)

0

1

2

3

4

5

4000 3000 2000 1000

10000

50000

100000

§ 再帰的 QR 分解を用いた場合

高速化率

m

n

高速化率= PC 単体での実行時間/ PC + CSX600 での実行時間

Page 58: 応用数理工学特論 第 10 回

59

各部分の高速化率の変化

0

1

2

3

4

5

6

7

8

9

10

1000 2000 3000 4000

QR分解

Qの乗算

高速化率

n

m = 50000

0

1

2

3

4

5

6

7

8

9

10

1000 2000 3000 4000

m = 100000

n

Page 59: 応用数理工学特論 第 10 回

60

行列サイズ による高速化率の変化(2)

0

1

2

3

4

5

4000 3000 2000 1000

10000

50000

100000

高速化率

m

n

§LAPACK の DGESDD を用いた場合

高速化率= PC 単体での実行時間/ PC + CSX600 での実行時間

Page 60: 応用数理工学特論 第 10 回

61

精度評価

1.00E-13

1.00E-12

1.00E-11

1.00E-10

10000 20000 30000 40000 10000 20000 30000 40000 10000 20000 30000

MKL

CS

∥U

VT –

A∥ F

∥UTU

– I∥

F

1.00E-13

1.00E-12

1.00E-11

1.00E-10

10000 20000 30000 40000 10000 20000 30000 40000 10000 20000 30000

左特異ベクトルの直交性 残差

m :n

:1000 2000 3000

m :n

:1000 2000 3000

Page 61: 応用数理工学特論 第 10 回

62

まとめと今後の課題

Page 62: 応用数理工学特論 第 10 回

63

まとめと今後の課題

§ まとめ

§ 今後の課題

• CSX 600による長方行列特異値分解の高速化を行った

• CSX 600に適した QR 分解アルゴリズムの選択を行った

• 適切な QR 分解のアルゴリズムを選ぶことで,最大で3倍程度の高速化ができた

• より CSX600 に適したQR分解アルゴリズムの開発

•CSX600 による R の特異値分解の高速化

•他の行列計算への CSX600の適用