本研究の目的は,並列処理やGPGPUに関する知識が無い一般的なプログラマでもGPUの高性能を容易に利用可能とするために,逐次C言語で記述されたMapReduceプログラムを効率の良いGPGPUプログラムに自動変換するコンパイラを開発することである.この目的の達成のために,(1)逐次C言語によるMapReduceプログラム記述のためのAPIの設計,(2)(1)で設計したAPIを用いて記述されたMapReduceプログラムをそのまま逐次Cプログラムとして実行するためのライブラリの開発,(3) MapReduceプログラムをソースプログラムの修正無しにそのままマルチコアCPU上で並列実行するためのライブラリの開発,をまず行い,いくつかのアプリケーションを用いて評価実験を行いつつ,GPGPUに関するこれまでの研究経験を活かしてこれらを徐々に発展させる形で, (4)単一GPU用コンパイラの開発,(5)単一PC上の複数GPU用コンパイラの開発,(6)GPUクラスタ用コンパイラの開発,を行う. 平成28年度は,まず,昨年度にやり残した,GPUのVRAM容量を超えるデータを取り扱えるように昨年度試作したコンパイラの小改善を行った.昨年度のコンパイラがVRAM容量を超えるデータを取り扱えなかった理由は,CUDAのUnified Memoryの機能の制限のためであるが,今年度初めに発売された新しいPascalアーキテクチャに基づくGPUから,この制限が取り払われた.このため昨年度末に計画した,CUDAに代わってOpenCLの仮想共有メモリを用いたコンパイラの試作は中止し,引き続きCUDAを用いることにした. 平成28年度は,次に複数GPUに対応したコンパイラの試作を行った.
|