平成22年度はほぼ当初の計画通りに研究が実施された。既存のFFTコードをライブラリソフトウェアの形態でまとめ、さらにNVIDIA社の最新アーキテクチャであるFermi世代のGPUに対応させることは問題なく完了した。CUDAのバージョンの違いに対処するために、自動チューニング機能によって自動生成されるGPU用プログラム記述に一部修正を加えた。またFermi世代ではGPUメモリにキャッシュ機能が搭載されており、各メモリアクセス時に最適なキャッシュ制御モードを明示的に指定することで高性能を実現している。最初のバージョンのライブラリソフトウェアを9月に一般公開し、その後2回の更新を行っている。現時点では、Fermi世代のGPU、サイズが2のべき乗、単精度浮動小数点数の1次元FFTの全ての条件が揃っている場合には各サイズ毎に手作業でチューニングを行ったコードを用いるNVIDIA社のCUFFTライブラリの方が高速であるが、その他の全ての場合にはNukadaFFTライブラリの方が高速である。 以上がCUDA環境に関する実施状況であるが、OpenCL環境に関しても平行して進めている。CUDA版と同様の方法で自動チューニングを行う機能はOpenCLが備えていることを確認した。OpenCLは数々のGPUやメニーコアプロセッサに対して統一されたプログラム記述を可能とはするものの、性能可搬性は一切保証していない。現状で利用可能なコンパイラなどの最適化が強力ではないという問題があるため高性能を実現可能なコードの生成方法を検討している段階である。
|