2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛

Slides:



Advertisements
Similar presentations
大規模な三角 Toeplitz 線形方 程式の高速解法とその応用 ○ 安村 修一(法政大学 4 年) 李 磊(法政大学) 日本応用数理学会「行列・固有値の解法とその応用」研究部会 第6回研究会.
Advertisements

Level-3 BLASに基づく特異値分解 アルゴリズムのSMP上での性能
データ解析
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
※ 対称密行列の固有値分解は特異値分解と共通点が多い
Fill-in LevelつきIC分解による 前処理について
点対応の外れ値除去の最適化によるカメラの動的校正手法の精度向上
A Q R QR分解とは? → × ◆QR分解 QTQ = I (単位行列) ◆応用例 ◆主な計算方法 n m 今回はこの方法に注目
三重対角化アルゴリズムの性能評価 早戸拓也・廣田悠輔.
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
AllReduce アルゴリズムによる QR 分解の精度について
時空間データからのオブジェクトベース知識発見
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
2. 共有メモリ型並列計算機での特異値分解の高速化
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
Paper from PVLDB vol.7 (To appear in VLDB 2014)
PCクラスタ上での 連立一次方程式の解の精度保証
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
半正定値計画問題に対する 行列補完理論の高速実装
理学部情報科学科 金田研究室 指導教官 金田 康正 工藤 誠
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
(ラプラス変換の復習) 教科書には相当する章はない
応用数理工学特論 第5回 計算理工学専攻 張研究室 山本有作.
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
正方行列向け特異値分解の CUDAによる高速化
スペクトル・時系列データの前処理方法 ~平滑化 (スムージング) と微分~
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
非対称行列向けマルチシフトQR法の 性能予測方式
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
独立成分分析 1.問題は何か:例:解法:全体の見通し 2007/10/17 名雪 勲.
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
Level-3 BLASに基づく二重対角化 アルゴリズムとその性能評価
東京海洋大産学官連携研究員/技術コンサルタント 高須 知二 Tomoji TAKASU
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
6. ラプラス変換.
「R入門」  5.7 行列に対する諸機能  10月23日 (木) 発表者 大城亜里沙.
知能システム論I(13) 行列の演算と応用(Matrix) 2008.7.8.
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
バイトコードを単位とするJavaスライスシステムの試作
パターン認識特論 担当:和田 俊和 部屋 A513 主成分分析
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
資料 線型変換のイメージ 固有値、固有ベクトル 平賀譲(209研究室) 資料
4. システムの安定性.
B03 量子論理回路の 最適化に関する研究 西野哲朗,垂井淳,太田和夫,國廣昇 電気通信大学 情報通信工学科.
データ解析 静岡大学工学部 安藤和敏
Data Clustering: A Review
データマイニングって何だろう? 新美研究室 m 大都宣弥.
「ICAによる顔画像特徴量抽出とSVMを用いた表情認識」
1:Weak lensing 2:shear 3:高次展開 4:利点 5:問題点
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 音声特徴量抽出のための音素部分空間統合法の検討
行列 一次変換,とくに直交変換.
密行列固有値解法の最近の発展 (I) - Multiple Relatively Robust Representation アルゴリズム - 2004年11月26日 名古屋大学 計算理工学専攻 山本有作 日立製作所の山本有作です。 「~」について発表いたします。
キャッシュマシン向け三重対角化 アルゴリズムの性能予測方式
長方行列向け特異値分解の 浮動小数点コプロセッサによる 高速化
密行列固有値解法の最近の発展(II) ー マルチシフトQR法 ー
目次 はじめに 収束性理論解析 数値実験 まとめ 特異値計算のための dqds 法 シフトによる収束の加速
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
分散メモリ型並列計算機上での行列演算の並列化
各種荷重を受ける 中空押出形成材の構造最適化
Presentation transcript:

2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛 二重対角化アルゴリズムの性能評価 2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛 二重対角化アルゴリズムの性能評価について,張研究室鈴木と程が発表します. 2008/7/17

目次 はじめに 従来法とその問題点 Level-3 BLASに基づく二重対角化アルゴリズム 数値実験 まとめ 2008/7/17 目次  はじめに 従来法とその問題点 Level-3 BLASに基づく二重対角化アルゴリズム 発表はこのように進めます。 まず,本発表の背景を述べ,従来法による解法とその問題点を述べ,その問題を解決する提案手法に述べ,その有効性を確かめるための実験について述べ,最後にまとめます。   数値実験 まとめ 2008/7/17

はじめに 二重対角化とは 特異値分解計算の前処理 特異値分解とは 実正方行列 A の特異値分解 A = UΣVT A : n×n 密行列 はじめに  二重対角化とは 特異値分解計算の前処理 実正方行列 A の特異値分解 A = UΣVT A : n×n 密行列 Σ : n×n 対角行列 U,V : n×n 直交行列 特異値分解とは 本発表の中心である,二重対角化は,主に,特異値分解計算の前処理として用いられます. 特異値分解は,実正方行列Aをこのような形に分解することなのですが,それぞれ,下記のような 条件を持っています.Σの対角成分に入っているものが特異値となっています. 2008/7/17

従来の特異値分解アルゴリズム 手順 密行列 A = B ・・・ HN-1R HN-2L H1L A H1R U0TAV0 = B (U0, V0: 直交行列) 二重対角化 二重対角行列の 特異値・特異ベクトル計算 B yi =σi xi BTxi =σi yi 実際に、どのように特異値分解の中で二重対角化が使われているかを説明します。 このような密行列Aに対して,ハウスホルダー変換を右から作用させ,この部分のベクトルをゼロクリアします. 同様に左側からハウスホルダー変換を作用させると,こちら側も同様にゼロクリアされます. これをこのように繰り返すことにより、行列Aは二重対角化されたBとなります. ここで、各Hは直交行列なので,それをかけたものも直行行列となり、Bはこのように書けます。 このBを特異値分解すると、Bの特異値、特異ベクトルを得ます。ここで重要なのが、特異値はAと同じですが、特異ベクトルはBのみの値であると言うことです。 そこで、Aの特異ベクトルを求めるための逆変換という作業が必要となります。 以上が従来の2重対角化を用いた特異値分解アルゴリズムとなっています。 (B =XΣYT ) ui = U0 xi vi = V0 yi (A=(U0X)Σ(V0Y) T) 逆変換 2008/7/17

従来法の問題点 実行時間 A(k) := (I – a w wT ) A(k) 原因 ハウスホルダー変換 行列ベクトル積 Rank-1更新 Level-2 BLAS ハウスホルダー変換 キャッシュの有効利用が困難 アクセス競合による並列性低下 (秒) 先程の手法で実際に特異ベクトルを求めると,計算機の実行時間の内訳はこのようになります. このように二重対角化が実行時間の大部分を占めることがわかります。 原因は、二重対角化のために行われるハウスホルダー変換がこのように計算のほとんどをレベル 2ブラスで行ってしまうためです。 授業で習ったように、レベル2ブラスはこのような理由により性能の向上が難しいです。 そこで、その問題点を解決するために、演算にレベル3ブラスを適用することを考えます。 Level-3 BLASを使いたい (CPU数) 二重対角化が実行時間の 大部分を占める 2008/7/17

Level-3BLASに基づく二重対角化アルゴリズム 次数 n ・ Bischofのアルゴリズム B 帯幅 L C A 1. 密行列Aを帯幅Lの下三角帯行列Cに変換 2. 行列Cを更に下二重対角行列Bに変換 ・ メリット レベル3ブラスによる二重対角化アルゴリズムとしてビチョフのアルゴリズムを紹介します。 このアルゴリズムは簡単にいうと2重対角化をする前に行列を帯行列化しその後で2重対角化を行うという2段階式になっています。 このアルゴリズムのメリットとして、この帯行列化の部分はほとんどがレベル3ブラスを使っていることであり、また、帯行列からの2重対角化にはほとんど演算量がかからないと言う点があります。 よって、少ないコストでレベル3ブラスを使えるようになることによりこのような利点が生まれ、計算が高速化できることが期待できます。 1.はLevel-3 BLASのみを使用 2.の演算量はO(n 2L) キャッシュの有効利用 メモリ競合の影響軽減 2008/7/17

下三角帯行列化のアルゴリズム H:= I –a w wT H:= I –W AWT ブロック鏡像変換 鏡像変換 ブロック鏡像変換  左からH を乗算 ブロックベクトル H:= I –W AWT 与えられたブロックベクトルを上三角行列に変換 鏡像変換  H:= I –a w wT 左からH を乗算 ベクトル  帯行列化の手法について少し詳しく述べます。 先程まではベクトルにハウスホルダー変換を行うことで、ベクトルをゼロクリアし、このように1行ずつ2重対角化をしていました。 今回は、ベクトルをまとめてこのようなブロックで考え、このブロックをこのような上三角行列にするような行列をかけていきます。 先程と同様にこのブロックに対して右から作用させるとこのようになります。これを左からも作用させ、繰り返すことで行列は帯行列化します。 2008/7/17 帯幅 L

特異ベクトルの計算手法 逆変換の分の計算量が増える O(n 2L) 特異値 {σi } A C B 2mn2 2mn2 A の特異ベクトル O(n 2L) 特異値 {σi } A C B 2mn2 2mn2 A の特異ベクトル {ui }{vi } C の特異ベクトル {zi }{wi } B の特異ベクトル {xi }{yi } つまり、全体の流れとしては、まずこのような密行列Aを帯行列にしてから2重対角化し、特異値と特異ベクトルを求めます。 帯行列化までの演算量が従来法と同じなので、この2重対角化の部分の分演算量が増えますが、オーダーが違うのでほとんど気になりません。 しかしここで、重要なのが、先程も言ったとおり求めた特異ベクトルはBに対するものなので行列Aの特異ベクトルを求めるため逆変換をする必要があります。 更に、本手法では途中段階で帯行列を作成しているので、このように2段階の逆変換が必要になります。 この逆変換は各同演算程度なので、逆変換の演算量は単純に2倍に増えることになります。 したがって、ビチョフのアルゴリズムを使う際には、レベル3ブラス使用のメリットと逆変換の演算量増加によるデメリットを考える必要があります。 この性能を評価するため数値実験を行います。 逆変換の分の計算量が増える 2008/7/17

性能評価 ・ 計算機環境 - Xeon(2.8GHz×2),1~4PU - BLAS Intel Math Kernel Library - LAPACK Intel Math Kernel Library - ピーク性能:5.6GFLOPS/CPU ・ 評価条件 - 問題サイズ:2500,5000,7500 - 帯幅:25,50,100 - CPU数:1,2,4,8 - 従来法はLAPACKのルーチンを使用 2008/7/17 2008/7/17 9 9

数値実験 Xeonでの実行時間 結果 適正な帯幅を設定すると、Level-3の実行時間がCPU数に応じて減少 n=2500 n=5000 実行時間(秒) CPU数 ◆ LAPACK      ■ Level-3 帯幅25 ▲ Level-3 帯幅50  × Level-3 帯幅100 結果  適正な帯幅を設定すると、Level-3の実行時間がCPU数に応じて減少  帯幅を100としたとき,従来法(LAPACK)より高速になる 2008/7/17 2008/7/17 10 10

数値実験 LAPACKとLevel-3BLASの比較(1) n=2500,帯幅=100 実行時間(秒) CPU数 LAPACK Level-3BLAS 結果  LAPACKは並列化ができない二重対角化部分が計算の大半を占める  Level-3は全ての部分がCPU数に応じて順調に減少、並列効果が高い  逆変換1(村田法の逆変換)が計算量が大きい    改善が必要 2008/7/17 2008/7/17 11 11

数値実験 LAPACKとLevel-3BLASの比較(2) n=7500,帯幅=100 実行時間(秒) CPU数 LAPACK Level-3BLAS 結果  LAPACKはn=2500の時よりも二重対角化の割合が大きい  Level-3は順調に減少するが逆変換1が計算量が大きい 2008/7/17 2008/7/17 12 12

数値実験 帯幅を変えたときの実行時間 結果 n=2500 n=5000 n=7500 実行時間(秒) CPU数  今回,帯幅が大きいほど,全行列サイズにおいてより速い  今後の課題として、帯幅と実行時間の関係を解明する必要 2008/7/17 2008/7/17 13

まとめ ・ 本発表のまとめ 特異値分解のLevel-3 BLASに基づく二重対角化 アルゴリズムの性能を評価した  アルゴリズムの性能を評価した Level-3 BLASの計算時間は帯幅の変更により 大きく影響を受ける LAPACKよりLevel-3 BLASの方が高速に計算できる可能性が大きい ・ 問題点及び今後の課題 最適な帯幅の設定,及び特徴の分析 他の計算機環境での実験 2008/7/17 2008/7/17 14 14

ありがとうございました