1
|
1 \section{はじめに}
|
|
2 GPU の普及と高性能化にともない、GPU の演算資源を画像処理以外の目的にも利用する GPGPU(GPU による汎目的計算)が注目されている。
|
2
|
3 GPU 以外にも Cell, SpursEngine, Xeon Phi など様々なプロセッサが存在する。
|
|
4 GPU や Cell はメモリ空間が異なるたデータ転送がを効率化しなければ性能向上に繋がらない。
|
|
5 また、それぞれのプロセッサを利用するにはそれぞれ異なる API を利用する必要があり、それらの対応に多くの時間を取られてしまいプログラムの性能改善に集中することができない。
|
|
6 様々なプロセッサを統合して扱えるフレームワークとして StarPU などがある。
|
|
7 StarPU はタスクベースの非同期フレームワークである。
|
|
8 StarPU にはパイプラインでの実行機構は入ってなく、パイプライン処理を行いたい場合は自分で実装するしかない。
|
|
9 しかし、パイプライン処理を書くことは非常に煩雑で難しい。
|
|
10
|
|
11 そこで、当研究室で開発・改良が行われている並列プログラミングフレームワーク Cerium を OpenCL, CUDA を用い GPGPU に対応させた。
|
1
|
12 Cerium は PS3 および Linux, MacOS X 上で動作する。
|
|
13
|
|
14
|
|
15 本論文では、まず OpenCL, CUDA について説明する。
|
|
16 その後、既存の Cerium の実装および新たに実装した GPU 実行の機構について説明する。
|
|
17 最後に WordCount, FFT を例題として測定し、評価を行う。
|