80 likes | 212 Views
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング. 第 3 回 計算理工学専攻 張研究室 山本有作. 典型的なマイクロプロセッサのメモリ階層. データ転送速度 非常に大. レジスタ. 演算器に近い記憶装置ほど高速だが,容量は小さい。 演算器と主メモリの速度差は,年々大きくなっている。. 演算器. 8 ~ 128 ワード. データ転送速度大. キャッシュ. 数 100K バイト ~ 数 M バイト. データ転送速度小. 主メモリ. 数 100M バイト ~ 数 G バイト. ATLAS の性能.
E N D
応用数理工学特論線形計算とハイパフォーマンスコンピューティング応用数理工学特論線形計算とハイパフォーマンスコンピューティング 第3回 計算理工学専攻 張研究室 山本有作
典型的なマイクロプロセッサのメモリ階層 データ転送速度 非常に大 レジスタ • 演算器に近い記憶装置ほど高速だが,容量は小さい。 • 演算器と主メモリの速度差は,年々大きくなっている。 演算器 8~128 ワード データ転送速度大 キャッシュ 数100Kバイト ~ 数Mバイト データ転送速度小 主メモリ 数100Mバイト ~ 数Gバイト
ATLASの性能 • n=1000のとき,ピーク性能の95%以上を達成している。
共有メモリ型並列計算機向けの高性能化手法 キャッシュ PU0 PU1 PU2 PU3 • PU間の負荷分散均等化 • 各PUの処理量が均等になるよう 処理を分割 • PU間同期の削減 • 同期には通常,数百サイクルの時間が必要 • 並列粒度の増大による同期回数の削減が性能向上の鍵 • キャッシュメモリの有効利用 • 演算順序の変更等により,キャッシュ中のデータの再利用性を向上 • 同時にPU間でのアクセス競合を削減し,メモリアクセスを高速化 バス メモリ
BLASの利用による高性能化 • BLASとは • Basic Linear Algebra Subprograms の略 • 個々のマシン向けにチューニングした基本行列演算のライブラリ • BLASの種類 • BLAS1: ベクトルとベクトルの演算 • 内積 c := x t y • AXPY演算 y: = ax + yなど • BLAS2: 行列とベクトルの演算 • 行列ベクトル積 y := Ax • 行列のrank-1更新 A := A + xyt • BLAS3: 行列と行列の演算 • 行列乗算 C := ABなど A × = A A × = + B C A × =
BLASにおけるデータ再利用性と並列粒度 • BLAS1 • 演算量: O(N), データ量: O(N) • データ再利用性: なし • 並列粒度: O(N/p) (N: ベクトルの次元,p: プロセッサ台数) • BLAS2 • 演算量: O(N2), データ量: O(N2) • ベクトルデータのみ再利用性あり • 並列粒度: O(N2/p) • BLAS3 • 演算量: O(N3), データ量: O(N2) • O(N)回のデータ再利用が可能 • 並列粒度: O(N3/p) 演算をできる限り BLAS2,3で行うことが高性能化のポイント A × = A A = × + B C A = ×
現在利用可能な最適化BLAS • プロセッサメーカーの提供するBLAS • Intel MKL,AMD ACML,IBM ESSL など • メーカーによっては共有メモリ向け並列化版もあり。 • ATLAS(Automatically Tuned Linear Algebra Subprograms) • 対象プロセッサに合わせて自動的に性能を最適化するBLAS • http://math-atlas.sourceforge.net/ より入手可能 • 共有メモリ向け並列化版もあり。 • GOTO BLAS • テキサス大学オースチン校の後藤和茂氏によるBLAS • http://www.cs.utexas.edu/users/flame/goto/ より入手可能 • この3種のBLASの中では,多くの場合最高速 • 共有メモリ向け並列化版も(一部)あり。
行列乗算を用いたガウスの消去法の性能 • n=1000のとき,ピークの65%以上の性能を達成