本年度はNvidia製汎用グラフィックカード(GPU)を搭載するPCを購入し、そこで、格子QCDのクォークソルバーの開発を行った。汎用グラフィックカードで用いたプログラミング言語はCUDAと呼ばれる言語である。当初の計画通り、CPU側で倍精度計算を行い前処理として単精度の計算をGPUで行わせる混合精度計算に成功した。 今回作成したプログラムは0(a)改良されたWilsonクォーク作用のクォーク伝播関数を計算する連立一次方程式を反復法で解くものである。 すべての計算をCPUで倍精度計算する場合に比べて、CPUとGPUを組み合わせた混合精度計算の場合、格子サイズが8^3x16から16^3x32までは計算速度が7倍速くなることを確認した。一方、格子サイズが4^3x8の場合、計算量が比較的小さいため、GPU上の全てのプロセッサーを使いきることができないため、CPUのみの計算に比べて却って計算時間は遅くなった。以上の結果から、GPUで計算するためには出来るだけ大量の計算をGPUに担当させる必要があることが分かった。GPUカードによる加速は非常にコストパフォーマンスが良いことが分かった。 今回の成果では1台のPC+GPUについての経験を得ることが出来た。次年度では、これらのことをふまえて、複数台のPC+GPUを用いた並列計算について研究を行う。
|