中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

2010年度理研シンポジウム「倍々精度RgemmのnVidia C2050上への実装と応用」

2011-02-18 17:49:43 | 日記
倍々精度RgemmのnVidia C2050上への実装と応用で発表しました。

倍々精度とはIEEE 754 4倍精度程度のもので、精度が高い計算です。この行列-行列積の高速な実装をnVidia C2050のGPU上で行いました。

高精度計算がなぜされてないかというと、非常に処理時間がかかるから、100倍などといいますが、それは実際は正しくありません。CPUは最適化が進んでいますが、高精度計算はそれほど最適化に注力されていなかったからです。

エクサスケールになると、一週間、ずっと計算すると、10^23の回数の演算をします。これはアヴォガドロ数であり、非常に大きな数です。微視的な量子論から巨視的なところまでをカバーするスケールです。そうなると16桁の倍精度では足りなくなったりします。なお小さくとも、半正定値計画法みたいに、最適解で、非常に難しくなる問題もあります。

結果は最大25GFlops程度と、非常に高速で、CPUのDGEMMでCore i7 920では、43GFlops程度なので、
CPUにさせるのと同じ程度の手軽さで、計算を行えます。DGEMMもレファレンス実装だと7GFlops程度だったので、下手すれば倍精度より高速です。

半正定値計画法にも実装し10倍程度の高速化を得ました。最大限にチューニングした倍精度での計算と比べるとまだまだ見劣りする場合もありますが、SeDuMiなどと比較するとむしろ倍々精度のほうが高速なこともあります。

論文が通ったら実装を公開する予定です。