長方行列向け特異値分解の 浮動小数点コプロセッサによる 高速化

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
大規模な三角 Toeplitz 線形方 程式の高速解法とその応用 ○ 安村 修一(法政大学 4 年) 李 磊(法政大学) 日本応用数理学会「行列・固有値の解法とその応用」研究部会 第6回研究会.
Level-3 BLASに基づく特異値分解 アルゴリズムのSMP上での性能
CPU/GPUを協調利用する ソフトウェア開発環境
在庫管理問題の動的計画法による 解法とCUDA を用いた高速化
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
CPUについて HN:セシル.
※ 対称密行列の固有値分解は特異値分解と共通点が多い
Chapter11-4(前半) 加藤健.
Intel AVX命令を用いた並列FFTの実現と評価
Fill-in LevelつきIC分解による 前処理について
A Q R QR分解とは? → × ◆QR分解 QTQ = I (単位行列) ◆応用例 ◆主な計算方法 n m 今回はこの方法に注目
2000年 3月 10日 日本電信電話株式会社 三菱電機株式会社
三重対角化アルゴリズムの性能評価 早戸拓也・廣田悠輔.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
全体ミーティング (4/25) 村田雅之.
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
対角マトリックスを用いた3次元剛塑性有限要素法の並列計算 対角マトリックスを用いた剛塑性有限要素法
AllReduce アルゴリズムによる QR 分解の精度について
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
2. 共有メモリ型並列計算機での特異値分解の高速化
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
分散遺伝的アルゴリズムによる各種クラスタのベンチマーク
PCクラスタ上での 連立一次方程式の解の精度保証
画像処理ボード上での 高速テンプレートマッチングの 実装と検証
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 第5回 計算理工学専攻 張研究室 山本有作.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
組み込み向けCPU 小型デバイスに搭載されるCPU 特徴 携帯電話,デジタルカメラ,PDA,センサデバイスなど 小型 低消費電力 多機能
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
正方行列向け特異値分解の CUDAによる高速化
アクセラレータを用いた 大規模へテロ環境における Linpack
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
OpenMPハードウェア動作合成システムの検証(Ⅰ)
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
非対称行列向けマルチシフトQR法の 性能予測方式
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
Level-3 BLASに基づく二重対角化 アルゴリズムとその性能評価
AMR法フレームワークの様々なアーキテクチャへ向けた発展 研究背景と研究目的 Xeon Phi対応に向けた拡張
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
コンピュータの歴史 〜計算速度の進歩〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
東京海洋大産学官連携研究員/技術コンサルタント 高須 知二 Tomoji TAKASU
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.
「コアの数なんて どうでもいい」 五島 正裕(東大).
GPUを用いた疎行列の格納形式による行列ベクトル積の評価
目的:高速QR分解ルーチンのGPUクラスタ実装
コンピュータアーキテクチャ 第 9 回.
高精細計算を実現するAMR法フレームワークの高度化 研究背景と研究目的 複数GPU間での袖領域の交換と効率化
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(Nlog2N)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似
メモリ使用量の少ないGCR法の提案 東京大学理学部情報科学科 工藤 誠 東京大学情報基盤センター 黒田 久泰
コンピュータアーキテクチャ 第 9 回.
密行列固有値解法の最近の発展 (I) - Multiple Relatively Robust Representation アルゴリズム - 2004年11月26日 名古屋大学 計算理工学専攻 山本有作 日立製作所の山本有作です。 「~」について発表いたします。
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
情報論理工学 研究室 第1回:並列とは.
キャッシュマシン向け三重対角化 アルゴリズムの性能予測方式
密行列固有値解法の最近の発展(II) ー マルチシフトQR法 ー
目次 はじめに 収束性理論解析 数値実験 まとめ 特異値計算のための dqds 法 シフトによる収束の加速
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
分散メモリ型並列計算機上での行列演算の並列化
並列処理プロセッサへの 実数演算機構の開発
2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛
Presentation transcript:

長方行列向け特異値分解の 浮動小数点コプロセッサによる 高速化 2007年1月18日 HPCS2007 深谷 猛,山本 有作 (名古屋大学) 畝山 多加志 (京都大学) 堀 玄,梅野 健 (理化学研究所)

概要 背景と目的 CSX600のアーキテクチャと性能 長方行列の特異値分解アルゴリズム CSX600向けの高速化手法 性能評価 まとめと今後の課題

数万×数千以上の行列の特異値分解 高速化が必要 1. 背景と目的 長方行列の特異値分解 応用 画像処理 電子状態計算 (Filter Diagonalization Method) 文書検索 (Latent Semantic Indexing) 各種統計計算 (主成分分析,最小二乗法) A :m×n 密行列 U : m×n 列直交行列 V : n×n 直交行列 S : n×n 対角行列 = × × 数万×数千以上の行列の特異値分解    高速化が必要

高い浮動小数点能力を持つ専用プロセッサの登場 Cell 1個の汎用CPUコア + 8個の専用コア 256GFLOPS (単精度) GRAPE-DR 512個の演算コア 512GFLOPS(単精度) 384GFLOPS(倍精度) ClearSpeed CSX600 1個の汎用コア + 96個の演算コア 48GFLOPS (倍精度)

メモリネックを軽減できるアルゴリズムが性能向上の鍵 専用プロセッサの特徴 多数の浮動小数点演算器 極めて高いGFLOPS値 メモリアクセス性能は相対的に低下 バンド幅はあまり大きくなっていない PCIバス経由でコプロセッサとして使う場合は,特に顕著   メモリネックを軽減できるアルゴリズムが性能向上の鍵

Level-3 BLASの利用 行列乗算 C:=C+AB = C A B 演算量に比べ,データ量は O(1/N) キャッシュをうまく使うことで,メモリネックを軽減可能 行列乗算を効率的に使えれば,一般のアルゴリズムも高速化可能 (LAPACKの基本的な考え方) = × + C A B データ量: O(N 2) 演算量:  O(N 3) ※行列ベクトル積( y := y + Ax)では,データ量・演算量ともにO(N 2)

本研究の目的 長方行列の特異値分解アルゴリズムをCSX600を利用して高速化する 性能評価を行い,更なる高速化に向けての課題を明らかにする

2. CSX600のアーキテクチャと性能 CSX600 チップ ClearSpeed Advance ボード 1個の主プロセッサ 96個の演算専用プロセッサ 64ビット 倍精度2演算/サイクル 128B レジスタファイル 6KB SRAM 250MHz で動作 ピーク性能: 48GFLOPS ClearSpeed Advance ボード 2個の CSX600 プロセッサ 1GB DRAM PCI-X バスにより PC 本体と接続 ピーク性能: 96GFLOPS

CSX600の利用環境 Software Development Kit CSXL ライブラリ CSFFT ライブラリ コンパイラ: Cn 言語によるチップ内並列プログラミング デバッガ シミュレータ CSXL ライブラリ ClearSpeed Advance ボード用の BLAS 行列データを PC の主メモリ上に置いてコール PC ⇔ ボード間の転送はライブラリ内で実行 公称性能: DGEMM(行列乗算)で sustained 50GFLOPS 現状では非常に制約が多い 使用可能なルーチンは DGEMM と DGETRF のみ DGEMM では,M,N,K ≧ 448 でないと動かない CSFFT ライブラリ 今回はこれを利用

CSXL DGEMMの性能 (1) サイズパラメータのうち2個が450の場合 C += A B 性能は最大でも 11GFLOPS 程度 他の2個が450の場合でも,ほぼ同じ結果 N K C += A × B M 性能(MFLOPS) ・ M = K = 450 ・ 1000 ≦ N ≦ 6000 N CSX600の性能が活かせない

CSXL DGEMMの性能 (2) サイズパラメータのうち1個のみが450の場合 C += A B M = N が大きい場合,性能は 40GFLOPS 以上 他の2個が大きい場合でも,ほぼ類似の性能 N K C += A × B 性能(MFLOPS) M ・ K = 450 ・ 1000 ≦ M = N ≦ 6000 N 性能を引き出すには,サイズパラメータのうち少なくとも2個を 大きい値にとる必要あり

3. 長方行列の特異値分解アルゴリズム = QR分解 A=QR 2mn2 二重対角化 (8/3)n3 特異値分解 O(n2) ~ O(n3) 3. 長方行列の特異値分解アルゴリズム m×n 密行列 A QR分解 A=QR 2mn2 n×n 上三角行列 R 二重対角化 (8/3)n3 二重対角行列 B 特異値分解   O(n2) ~ O(n3) Bの特異値・特異ベクトル (B と R の特異値は同じ) 逆変換  2n3 ~ 4n3 R の左特異ベクトル R の右特異ベクトル = Qの乗算  4mn2 A の左特異ベクトル A の右特異ベクトル

M >> N の場合の実行時間 M = 40000 の場合 QR分解とQの乗算の時間が支配的 環境 ・ Xeon 3.2GHz ・ g77 -O3 + Intel MKL 各部分のアルゴリズム(詳細は後述) ・ QR分解: ブロック化 + 再帰的QR ・ 二重対角化: Bischof + 村田法 ・ 特異値分解: 分割統治法 実行時間(秒) QR分解とQの乗算の時間が支配的

4. CSX600向けの高速化手法 高速化の方針 QR分解とQの乗算 二重対角化および逆変換 二重対角行列の特異値分解 行列乗算を効率的に利用できるようアルゴリズムを変更 CSXLで実行 二重対角化および逆変換 二重対角化はBischof のアルゴリズムと村田法を利用 CSXLは利用しない(CPUのみで実行) 二重対角行列の特異値分解 行列乗算中心のアルゴリズムである分割統治法を利用 LAPACKのDBDSDCを利用(CSXLが使える部分は使う)

ハウスホルダー変換によるQR分解 ハウスホルダー変換による列の消去 H1 A = ( I – t1 y1 y1T ) A = A(1) level-2 BLAS CSXLを使えない 上三角化とQR分解 Hn・・・ H2 H1 A = A(n) A = H1 H2・・・ Hn A(n) = QR ・・・ A A(1) A(2) A(n) = R

複数のハウスホルダー変換の合成 Compact WY representation Hn・・・ H2 H1 = ( I – tn yn ynT ) ・・・ ( I – t2 y2 y2T )( I – t1 y1 y1T ) = I – Yn Tn YnT ただし, Yn = [ y1 | y2 | ・・・ | yn] (m×n 行列)       Tn: n×n 下三角行列 I – ・・・ I – = I – × × × × × × 複数のハウスホルダー変換の作用を,行列乗算として まとめて実行可能

QR分解における行列乗算の利用法 Ⅰ 単純なブロック化(LAPACKで使用) L ブロックのQR分解はlevel-2 BLAS I – Y1T1Y1T I – Y2T2Y2T I – Y3T3Y3T 分解 更新 H1 H2 H3 H3H2H1= I – Y1T1Y1T ブロックのQR分解はlevel-2 BLAS 演算量: L (ブロック幅) << n のとき 2mn2 CSXLを使うにはL≧450 ⇒ level-2 BLASの演算量の増加

QR分解における行列乗算の利用法 Ⅱ 再帰的QR分解 ほぼ全ての演算が行列乗算 演算量: 3mn2 I – YR TR YRT I – YL TL YLT 分解 更新 合成 (I – YL TL YLT ) ×(I – YR TR YRT ) = I – Y T YT I – YL TL YLT I – Y’L T’L Y’LT ほぼ全ての演算が行列乗算 演算量: 3mn2

QR分解における行列乗算の利用法 Ⅲ 本研究で採用した方法 L ほぼ全ての演算が行列乗算 演算量:Ⅰ(2mn2)とⅡ(3mn2)の中間 I – Y1T1Y1T I – Y2T2Y2T I – Y3T3Y3T 分解 更新 I – Y1 T1 Y1T ほぼ全ての演算が行列乗算 演算量:Ⅰ(2mn2)とⅡ(3mn2)の中間 ブロック幅Lを適切に選ぶことで,他の2方法より高速になる可能性がある

Q の乗算 Ⅰ(単純なブロック化)・Ⅲ(本研究で採用した方法)の場合 Q = ( I – Yn/L Tn/L Yn/LT ) ・・・ (I – Y1 T1 Y1T ) L I – × ・・・ I – × × × Ⅱ(再帰的QR分解)の場合 Q = I – Y T YT × I – n 行列サイズの大きいⅡの方がCSXLの性能を引き出せる Ⅰ・Ⅲの方が使用するメモリの量が少ない

5. 性能評価 評価環境 評価例題 評価項目 Xeon 3.2GHz,メモリ2GB 5. 性能評価 評価環境 Xeon 3.2GHz,メモリ2GB g77 -O3 + Intel Math Kernel Library ClearSpeed Advance ボード 評価例題 [-0.5,0.5] の一様乱数を要素とする m×n 乱数行列の特異値分解 10000 ≦ m ≦ 40000,1000 ≦ n ≦ 3000 評価項目 ClearSpeed ボードでの3種のQR分解法の性能比較 特異値分解全体の ClearSpeed ボードによる高速化効果 精度評価

ClearSpeed ボードでの3種のQR分解法の性能比較 実行時間(秒) L=500 L=1000 m = 10000,n = 3000 L=500 L=1000 m = 20000,n = 3000 方法ⅠはQR分解が極めて遅い 方法ⅡはQの乗算が最高速 方法ⅢはLを適切に選ぶことで,全体として最高速になる

特異値分解全体の ClearSpeed ボードによる高速化効果 実行時間(秒) m = 10000 n = 1000 n = 2000 m = 40000 n = 1000 n = 2000 QR分解は最大で2倍程度高速化 Qの乗算は最大で5倍程度高速化 特異値分解全体としては最大で2.3倍高速化

m,n による加速率の変化 特異値分解全体の加速率 nによる性能変化(m=30000) n 性能(MFLOPS) 加速率 m n m / n の増加: 特異値分解全体に対してCSXLを使える部分の割合が増加 n の増加  : QR分解・Qの乗算の部分におけるCSXLの性能が向上      ただし, CSXLを使わない部分(Rの特異値分解)の演算量も増加

精度評価 ∥US VT – A∥F ∥UTU – I∥F 左特異ベクトルの直交性 残差 左特異ベクトルの直交性,残差ともCSの方が精度が悪い m : n : 1000 2000 3000 m : n : 1000 2000 3000 左特異ベクトルの直交性,残差ともCSの方が精度が悪い 悪化の程度は一桁以下

6. まとめと今後の課題 本研究のまとめ 今後の課題 6. まとめと今後の課題 本研究のまとめ ClearSpeed Advance ボードと CSXL を用いて,長方行列向け特異値分解の高速化を行った QR分解のアルゴリズムを行列乗算を効果的に使う形に改良することで, ボードによる高速化の効果を高めた 特異値分解全体では, 40000×2000 程度の行列においてボードを使うことで2.3倍の高速化が得られた 行列の規模が大きくなるほど高速化が期待できる 今後の課題 より大規模な行列で性能評価 SDKの使用による高速化 他の行列計算アルゴリズムへのCSX600の適用