diff paper/cerium_gpu.tex @ 0:9e88a388ec83

first commit
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 05 Nov 2013 23:18:04 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cerium_gpu.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,14 @@
+\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 上で実行する場合のファイルは異なるものを用いる。
+両者はほとんど同じであるが、若干形式が異なる。
+これらは将来的には自動変換などを行うのが望ましいと考えられる。