Level-3 BLASに基づく特異値分解 アルゴリズムのSMP上での性能

Slides:



Advertisements
Similar presentations
HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
Advertisements

大規模な三角 Toeplitz 線形方 程式の高速解法とその応用 ○ 安村 修一(法政大学 4 年) 李 磊(法政大学) 日本応用数理学会「行列・固有値の解法とその応用」研究部会 第6回研究会.
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
※ 対称密行列の固有値分解は特異値分解と共通点が多い
Chapter11-4(前半) 加藤健.
Intel AVX命令を用いた並列FFTの実現と評価
Fill-in LevelつきIC分解による 前処理について
A Q R QR分解とは? → × ◆QR分解 QTQ = I (単位行列) ◆応用例 ◆主な計算方法 n m 今回はこの方法に注目
三重対角化アルゴリズムの性能評価 早戸拓也・廣田悠輔.
全体ミーティング (4/25) 村田雅之.
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
望遠鏡制御関係現状報告 ナノオプトニクス・エナジー ナノオプトニクス研究所 下農 淳司.
対角マトリックスを用いた3次元剛塑性有限要素法の並列計算 対角マトリックスを用いた剛塑性有限要素法
AllReduce アルゴリズムによる QR 分解の精度について
「データ学習アルゴリズム」 第3章 複雑な学習モデル 3.1 関数近似モデル ….. … 3層パーセプトロン
• Top-hat transformation(TH)による特徴抽出
時空間データからのオブジェクトベース知識発見
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
2. 共有メモリ型並列計算機での特異値分解の高速化
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
IT入門B2 ー 連立一次方程式 ー.
データ構造とアルゴリズム 分割統治 ~ マージソート~.
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 第5回 計算理工学専攻 張研究室 山本有作.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
正方行列向け特異値分解の CUDAによる高速化
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
非対称行列向けマルチシフトQR法の 性能予測方式
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
Level-3 BLASに基づく二重対角化 アルゴリズムとその性能評価
視点移動カメラにおけるカメラキャリブレーション
独立大学法人・電気通信大学 大学院情報システム学研究科 情報ネットワーク学専攻・並列処理学講座
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
仮想メモリを用いた VMマイグレーションの高速化
「R入門」  5.7 行列に対する諸機能  10月23日 (木) 発表者 大城亜里沙.
独立成分分析 (ICA:Independent Component Analysis )
知能システム論I(13) 行列の演算と応用(Matrix) 2008.7.8.
導電性高分子材料の電子状態計算に現れる連立一次方程式に対する 並列直接解法の高性能化
先進的計算基盤システムシンポジウム SACSIS2007併設企画 マルチコアプログラミングコンテスト 「Cellスピードチャレンジ2007」
目的:高速QR分解ルーチンのGPUクラスタ実装
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
Data Clustering: A Review
「ICAによる顔画像特徴量抽出とSVMを用いた表情認識」
全体ミーティング (5/23) 村田雅之.
社会の情報インフラストラクチャとして、高性能コンピュータおよびネットワークの重要性はますます増大しています。本研究室では、コンピュータおよびネットワークの高速化を狙いとする並列・分散情報処理の科学と技術に関する研究に取り組んでいます。効率のよいシステムの実現を目指して、下記の項目を追求しています。 ◇コンピュータアーキテクチャ.
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(Nlog2N)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似
メモリ使用量の少ないGCR法の提案 東京大学理学部情報科学科 工藤 誠 東京大学情報基盤センター 黒田 久泰
1ーQー18 音声特徴量抽出のための音素部分空間統合法の検討
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
密行列固有値解法の最近の発展 (I) - Multiple Relatively Robust Representation アルゴリズム - 2004年11月26日 名古屋大学 計算理工学専攻 山本有作 日立製作所の山本有作です。 「~」について発表いたします。
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
キャッシュマシン向け三重対角化 アルゴリズムの性能予測方式
長方行列向け特異値分解の 浮動小数点コプロセッサによる 高速化
密行列固有値解法の最近の発展(II) ー マルチシフトQR法 ー
目次 はじめに 収束性理論解析 数値実験 まとめ 特異値計算のための dqds 法 シフトによる収束の加速
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
分散メモリ型並列計算機上での行列演算の並列化
1-P-2 フィッシャー重みマップに基づく不特定話者音素認識の検討
2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛
Presentation transcript:

Level-3 BLASに基づく特異値分解 アルゴリズムのSMP上での性能 名古屋大学 計算理工学専攻 山本有作 日本応用数理学会年会 2006年9月18日 日立製作所の山本有作です。 「~」について発表いたします。

目次 1. はじめに 2. 従来の特異値分解アルゴリズムとその問題点 3. Level-3 BLAS に基づく特異値分解アルゴリズム 1. はじめに 2. 従来の特異値分解アルゴリズムとその問題点 3. Level-3 BLAS に基づく特異値分解アルゴリズム 4. 性能評価 5. まとめと今後の課題 本発表では,はじめに,研究の背景を述べてから,スパースソルバの概要,並列化手法,そして本研究で工夫した点の一つであるRISCプロセッサ向けの最適化についてご説明します。最後に,並列計算機SR2201上での性能評価とまとめを述べます。

1. はじめに 本研究で対象とする問題 応用分野 実正方行列 A の特異値分解 A = US VT A : n×n 密行列 1. はじめに 本研究で対象とする問題 実正方行列 A の特異値分解 A = US VT A : n×n 密行列 S : n×n 対角行列 U,V : n×n 直交行列 応用分野 統計計算 (主成分分析,最小2乗法) 信号処理 (独立成分分析など) 画像処理 (圧縮,ノイズ除去) 電子状態計算 ここでは特に,Aが実対称またはエルミートの密行列の場合を考える。

本研究の目的 共有メモリ型並列計算機(SMP)上で高性能を達成できる特異値分解ソルバを作成し,評価 背景 問題の大規模化 CPUのマルチコア化などによる SMP 環境の普及 デュアルコア Xeon Cell プロセッサ (1+8 コア)

2. 従来の特異値分解アルゴリズムとその問題点 2. 従来の特異値分解アルゴリズムとその問題点 密行列 A 計算内容 計算手法 U0TAV0 = B (U0, V0: 直交行列) ハウスホルダー法 二重対角化 二重対角行列 B QR法 分割統治法 MR3アルゴリズム I-SVDアルゴリズム 二重対角行列の 特異値・特異ベクトル計算 Bvi =σi xi BTxi =σi yi Bの特異値 {σi },   特異ベクトル {xi }{yi } 密行列Aをまず三重対角行列Tに相似変換してからTの固有値・固有ベクトルを求めるのが最も一般的な計算法。 三重対角化には,後に述べるハウスホルダー法を使う場合がほとんど。 三重対角行列の固有値・固有ベクトルの計算には,色々なアルゴリズムがある。 vi = V0 yi ui = U0 xi 逆変換 逆変換 Aの特異ベクトル {ui }, {vi }

各部分の演算量と実行時間 密行列 A 演算量 実行時間(全特異ベクトル) (8/3) n3 二重対角化 二重対角行列の n = 5000,Xeon 2.8GHz(1~4PU) LAPACK での実行時間(秒) (8/3) n3 二重対角化 二重対角行列の 特異値・特異ベクトル計算 O(n2) ~ O(n3) 密行列Aをまず三重対角行列Tに相似変換してからTの固有値・固有ベクトルを求めるのが最も一般的な計算法。 三重対角化には,後に述べるハウスホルダー法を使う場合がほとんど。 三重対角行列の固有値・固有ベクトルの計算には,色々なアルゴリズムがある。 4mn2 逆変換 (左右 m 本ずつの 特異ベクトル) ・二重対角化が実行時間の  大部分を占める ・速度向上率が低い Aの特異ベクトル {ui }, {vi }

二重対角化の性能が出ない原因 二重対角化の演算パターン 演算パターンに関する問題点 左右からのハウスホルダー変換による行・列の消去 A(k) := (I – a w wT ) A(k) 演算は level-2 BLAS(行列ベクトル積と rank-1 更新) ただしブロック化により半分は level-3 BLAS にすることが可能 演算パターンに関する問題点 Level-2 BLAS はデータ再利用性が低い。     キャッシュの有効利用が困難であり,単体性能が出にくい。     プロセッサ間のアクセス競合により,並列性能向上も困難 非ゼロ要素 ゼロにしたい部分 A(k) 右から の変換 左から の変換 影響を受ける部分 k

3. Level-3 BLAS に基づく特異値分解アルゴリズム 2段階の二重対角化アルゴリズム(Bischof et al., ’93) 密行列 A をまず帯幅 L の下三角帯行列 C に変換 次にこの帯行列を下二重対角行列 B に変換 二重対角化を2段階で行うことの利点 前半の変換は,level-3 BLAS (行列乗算)のみを使って実行可能   キャッシュの有効利用が可能 後半の変換は level-2 BLAS が中心だが,演算量は O(n2L) 前半部に比べてずっと小さい。 次数 n 下三角 帯行列化 村田法 の拡張 約 (8/3)n3 O(n2L) A C B 帯幅 L

下三角帯行列化のアルゴリズム ブロック鏡像変換によるブロック列の消去 ブロック鏡像変換 H = I – WαWT Hは直交行列 ブロックベクトル ブロック鏡像変換によるブロック列の消去 ブロック鏡像変換 H = I – WαWT Hは直交行列 与えられたブロックベクトルを上三角 行列(正確には右上三角部分のみ 非零でそれ以外が零の行列)に変形 第 K ステップでの処理 左からH を乗算 左からHKL を乗算 右からHKR を乗算 非ゼロ要素 ゼロにしたい部分 影響を受ける部分

下三角帯行列化のアルゴリズム(続き) 本アルゴリズムの特徴 [Step 1] K = 1からN /L–1まで以下の[Step 2] ~ [Step 6]を繰り返す。  [Step 2] A(K, K:N) を上三角行列に変形する鏡像変換      HKR = I – WKR aKR (WKR)T の計算  [Step 3] 行列・ブロックベクトル積: P := A(K:N, K:N) WKR aKR  [Step 4] 行列のrank-L更新:  A(K:N, K:N) := A(K:N, K:N) – P(WKR)T  [Step 5] A(K+1:N, K) を上三角行列に変形する鏡像変換      HKL = I – WKL aKL (WKL)T の計算  [Step 6] 行列・ブロックベクトル積: QT := aKL (WKL)T A(K+1:N, K:N)  [Step 7] 行列のrank-L更新:       A(K+1:N, K:N) := A(K+1:N, K:N) – WkLQT すべて level-3 BLAS(行列乗算) 本アルゴリズムの特徴 演算が level-3 BLAS 中心のため,キャッシュの有効利用が可能 SMPにおけるメモリ競合の影響を低減可能

本アルゴリズムの長所と短所 長所 短所 Level-3 BLAS の利用により,二重対角化の性能を向上可能 同様のアイディアに基づく三重対角化アルゴリズムでは,高い単体性能・並列性能を確認済み 短所 特異ベクトル計算のための計算量・記憶領域が増大 2段階の逆変換あるいは帯行列の特異値分解が必要 詳しくは次のスライドで説明 二重対角化の高速化効果が大きければ,計算量増大を考慮しても全体としては高速化できると予想 特に,求める特異ベクトルが少ない場合は効果が大きいはず。

特異ベクトルの計算手法 方法1: 下三角帯行列の特異ベクトルを直接計算 長所 短所 A C B 固有ベクトルの逆変換は1段階のみ 逆変換の演算量は 4mn2 (従来法と同じ) 短所 特異ベクトル計算のための実用的な手法は帯行列用逆反復法のみ 直交化が必要であり,演算量は O(mnL2+m2n) n L QR法 dqds法 mdLVs法 二分法 帯行列用 逆反復法 A C B 4mn2 O(mnL2+ m2n) A の特異ベクトル {ui }{vi } C の特異ベクトル {zi }{wi } 特異値 {σi }

SMP 上での level-3 BLAS の高速性を鑑み,方法2を採用 特異ベクトルの計算手法(続き) 方法2: 二重対角行列の特異ベクトルを計算して2回逆変換 長所 二重対角行列の特異値・特異ベクトルを求める任意の手法が適用可能 短所 逆変換の演算量が 8mn2 (従来法の2倍)。ただし level-3 化可能 村田法の変換をすべて記憶するため,n2 の記憶領域が余計に必要 n L 特異値 {σi } QR法 DC法 MR3 I-SVD A C B 4mn2 4mn2 A の特異ベクトル {ui }{vi } C の特異ベクトル {zi }{wi } B の特異ベクトル {xi }{yi } SMP 上での level-3 BLAS の高速性を鑑み,方法2を採用

アルゴリズムの全体像 2段階の二重対角化と2段階の逆変換 二重対角行列の特異値分解には分割統治法を使用 特徴 A C B 演算量が O(n3) となる部分はすべて level-3 BLAS で実行可能 SMP 向け並列化は,基本的に並列版 level-3 BLAS の使用により実現 村田法は OpenMP によるパイプライン型の並列化 分割統治法 (LAPACK DBDSDC) (8/3)n3 O(n2L) level-3 level-2 A C B O(n2) ~ O(n3) level-3 4mn2 4mn2 A の特異ベクトル {ui }{vi } C の特異ベクトル {zi }{wi } B の特異値 {σi } 特異ベクトル {xi }{yi } level-3 level-3

村田法の並列化 パイプライン型の並列化 第1列の二重対角化処理と第2列の二重対角化処理の並列性 一般の場合の並列性 第1列に対する bulge-chasing の第 k ステップ 第2列に対する bulge-chasing の第 k–2 ステップ 第3列に対する bulge-chasing の第 k–4 ステップ ・・・   が同時に実行可能 第1列のbulge-chasing における,右側からの 第3の直交変換で更新 される要素 第2列のbulge-chasing における,右側からの 第1の直交変換で更新 される要素 第1列による二重対角化は,今後  より右の要素にのみ影響を及ぼす。 第1列の計算が右下まで行くのを待たずに,第2列の計算を開始できる。

4. 性能評価 評価環境 評価対象・条件 Xeon (2.8GHz), 1~4PU 4. 性能評価 評価環境 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 評価対象・条件 Level-3 BLAS に基づくアルゴリズムと LAPACK の性能を比較 n = 1200 ~ 20000 の乱数行列の特異値分解(全特異ベクトルを計算) Level-3 アルゴリズムにとっては一番不利な条件 Level-3 アルゴリズムの L(半帯幅)は各 n ごとに最適値を使用

Xeon での実行時間 プロセッサ数を変えたときの実行時間 結果 Level-3 アルゴリズムでは PU 数に応じて実行時間が順調に減少 4PU の場合は level-3 アルゴリズムが従来法より高速 n = 1200 n = 2500 n = 5000 実行時間(秒) PU数

HPC2500 での実行時間 プロセッサ数を変えたときの実行時間 結果 Level-3 アルゴリズムは従来法に比べて最大3.5倍高速 プロセッサ数が多いとき加速率が鈍るのは,非並列化部分(ブロック鏡像変換の作成など)の影響と思われる。 n = 5000 n = 10000 n = 20000 実行時間(秒) 3.5倍 PU数

両手法の実行時間の内訳 Xeon,n=5000の場合 考察 Level-3 アルゴリズムでは,どの部分の実行時間も順調に減少 逆変換1(村田法の逆変換)の占める時間が大きい。      この部分について,さらに高速化が必要 必要な特異ベクトルの本数が少ない場合,level-3 アルゴリズムはさらに有利

両手法の実行時間の内訳 HPC2500,n=10,000の場合 考察 Level-3 アルゴリズムでは,どの部分の実行時間も順調に減少 従来法は,二重対角化の部分の加速が鈍い。 ただし,32PUで6倍程度は加速 メモリバンド幅が大きいためと思われる。

5. まとめと今後の課題 本研究のまとめ 今後の課題 SMP 向けに,level-3 BLAS に基づく特異値分解ソルバを開発した。 5. まとめと今後の課題 本研究のまとめ SMP 向けに,level-3 BLAS に基づく特異値分解ソルバを開発した。 Xeon と HPC2500 で評価した結果,PU 数が多い場合は従来法より高い性能が得られた。 特に,求める特異ベクトルの本数が少ない場合は効果が大きい。 今後の課題 性能の改善 より効率の良い並列化 村田法の逆変換の高速化 I-SVD,MR3 の適用 より多様なマシン上での性能評価 マルチコアプロセッサ 専用チップ (Cell,Clear Speed など) 自動チューニング手法の適用(最適な L の自動決定) 応用プログラムへの組み込み