@techreport{oai:ipsj.ixsq.nii.ac.jp:00103179, author = {今村俊幸 and 椋木大地 and 山田進 and 町田昌彦}, issue = {14}, month = {Sep}, note = {対称行列ベクトル積 (SYMV) は行列の対称性を利用して要求バンド幅を半減できる演算である.適切な最適化技法を利用することで,一般行列ベクトル積 (GEMV) よりも 2 倍の性能を示すことが期待される.本研究では,対称性を利用する際に考慮しなくてはならない複数スレッドによるベクトルデータへの書き込み競合に対して,アトミック演算を用いた mutex の実装を工夫することによりアクセス順制御を実現している.これにより,CUBLAS 等で指摘されている 「実行毎に丸め誤差の範囲で演算結果が異なる」 という現象を回避できる.また,既存研究ではスレッドブロック形状が 1 次元であったものを 2 次元に拡張し,計算コア数を増加させることができるようになった.本研究のもう一つのポイントは自動チューニング技術 (AT) による最適パラメタ探索により高性能カーネルの構築を実現していることにある.2 次元ブロック化によって広範囲に分布するパラメタ空間から自動で最適パラメタ値を探索し,少々時間を要するものの最適化された高性能 SYMV を GPU アーキテクチャ毎にビルドすることができる.実際,最適化された SSYMV (単精度版 SYMV) カーネルが,GeForce GTXTitan Black 上で 211GFLOPS (対最大バンド幅 62.8%) を記録している.さらに,実数 (単精度や倍精度) 以外の数値フォーマットである複素数 (単精度,倍精度) ならびに疑似四倍精度 DD(double-double) フォーマットに対しても,同様のアプローチにより SYMV カーネル (CHEMV,ZHEMV,WSYMV) の実装に成功し,高い実行性能を確認している.}, title = {CUDA-xSYMVの実装と評価}, year = {2014} }