二重対角化アルゴリズムの性能評価

Download Report

Transcript 二重対角化アルゴリズムの性能評価

二重対角化アルゴリズムの性能評価
2008年 7月17日
応用数理工学特論 期末発表
鈴木綾華,程飛
2008/7/17
1
目次
❂ はじめに
❂ 従来法とその問題点
❂ Level-3 BLASに基づく二重対角化アルゴリズ
ム
❂ 数値実験
❂ まとめ
2008/7/17
2
はじめに
二重対角化とは
特異値分解計算の前処理
特異値分解とは
実正方行列 A の特異値分解 A = UΣVT
A : n×n 密行列
Σ : n×n 対角行列
U,V : n×n 直交行列
2008/7/17
3
従来の特異値分解アルゴリズム
手順
密行列 A
HN-2L ・・・ H1L A H1R ・・・ HN-1R = B
U0TAV0 = B
二重対角化
(U0, V0: 直交行列)
二重対角行列の
特異値・特異ベクトル計算
B yi =σi xi
BTxi =σi yi
(B =XΣYT )
逆変換
ui = U0 xi
v i = V0 y i
(A=(U0X)Σ(V0Y) T)
2008/7/17
4
従来法の問題点
実行時間
(秒)
原因
ハウスホルダー変換
A(k) := (I – a w wT ) A(k)
行列ベクトル積
Rank-1更新
Level-2 BLAS
キャッシュの有効利用が困難
アクセス競合による並列性低下
二重対角化が実行時間の
大部分を占める
2008/7/17
(CPU数)
Level-3 BLASを使いたい
5
Level-3BLASに基づく二重対角化
アルゴリズム
次数 n
・ Bischofのアルゴリズム
1. 密行列Aを帯幅Lの下三角帯行列Cに変換
2. 行列Cを更に下二重対角行列Bに変換
BCA
00
00
帯幅 L
・ メリット
- 1.はLevel-3 BLASのみを使用
- 2.の演算量はO(n 2L)
キャッシュの有効利用
メモリ競合の影響軽減
2008/7/17
6
下三角帯行列化のアルゴリズム
鏡像変換
ブロック鏡像変換
TT
H:=
H:= I –a
–WwAwW
ブロックベクトル
ベクトル
与えられたブロックベクトルを上三角行列
に変換
2008/7/17
左からH
左からH
を乗算
を乗算
帯幅 L
7
特異ベクトルの計算手法
n
0
L
0
A
A の特異ベクトル
{ui }{vi }
0
C
2mn2
0
O(n 2L)
C の特異ベクトル
{zi }{wi }
特異値
{σi }
B
2mn2
B の特異ベクトル
{xi }{yi }
逆変換の分の計算量が増える
2008/7/17
8
性能評価
・ 計算機環境
- Xeon(2.8GHz×2),1~4PU
- BLAS Intel Math Kernel Library
- LAPACK Intel Math Kernel Library
- ピーク性能:5.6GFLOPS/CPU
・ 評価条件
2008/7/17
問題サイズ:2500,5000,7500
帯幅:25,50,100
CPU数:1,2,4,8
従来法はLAPACKのルーチンを使用
9
数値実験
Xeonでの実行時間
n=2500
n=5000
n=7500
実
行
時
間
(
秒
)
CPU数
結果
◆ LAPACK
▲ Level-3 帯幅50
■ Level-3 帯幅25
× Level-3 帯幅100
適正な帯幅を設定すると、Level-3の実行時間がCPU数に応じて減少
帯幅を100としたとき,従来法(LAPACK)より高速になる
2008/7/17
10
数値実験
LAPACKとLevel-3BLASの比較(1)
n=2500,帯幅=100
実
行
時
間
(
秒
)
CPU数
LAPACK
Level-3BLAS
結果
LAPACKは並列化ができない二重対角化部分が計算の大半を占める
Level-3は全ての部分がCPU数に応じて順調に減少、並列効果が高い
逆変換1(村田法の逆変換)が計算量が大きい
改善が必要
2008/7/17
11
数値実験
LAPACKとLevel-3BLASの比較(2)
n=7500,帯幅=100
実
行
時
間
(
秒
)
CPU数
LAPACK
Level-3BLAS
結果
LAPACKはn=2500の時よりも二重対角化の割合が大きい
Level-3は順調に減少するが逆変換1が計算量が大きい
2008/7/17
12
数値実験
帯幅を変えたときの実行時間
n=2500
n=5000
n=7500
実
行
時
間
(
秒
)
CPU数
結果
今回,帯幅が大きいほど,全行列サイズにおいてより速い
今後の課題として、帯幅と実行時間の関係を解明する必要
2008/7/17
13
まとめ
・ 本発表のまとめ
- 特異値分解のLevel-3 BLASに基づく二重対角化
アルゴリズムの性能を評価した
- Level-3 BLASの計算時間は帯幅の変更により
大きく影響を受ける
- LAPACKよりLevel-3 BLASの方が高速に計算できる
可能性が大きい
・ 問題点及び今後の課題
- 最適な帯幅の設定,及び特徴の分析
- 他の計算機環境での実験
2008/7/17
14
ありがとうございました
2008/7/17
15