view paper/cerium_gpu.tex @ 5:208ca954df56

fix
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Wed, 06 Nov 2013 21:46:55 +0900
parents 9e88a388ec83
children
line wrap: on
line source

\section{GPU上での実行の機構} \label{cerium_gpu}
Scheduler と CpuThreads に対応させる形で、GpuScheduler 、GpuThreads を実装した。
TaskList からメモリバッファを作成し、EnqueueWriteBuffer, EnqueueTask, EnqueueReadBuffer の順に 
CommandQueue に enqueue する。
Task の投入は CommandQueue を2つ用意しパイプライン的に実行を行う。Task の終了は、
clWaitForEvent によって検出し、TaskManger 間の通信を担当する
同期キューである mail を使って通知する(図:\ref{fig:createTask})。

GpuScheduler 内で platform や device の ID の取得、context の生成、
kernel の build と load 、等も行っているため並列計算のみに集中できる。

現在は kernel の記述は、CPU 上で実行する場合と GPU 上で実行する場合のファイルは異なるものを用いる。
両者はほとんど同じであるが、若干形式が異なる。
これらは将来的には自動変換などを行うのが望ましいと考えられる。