annotate paper/chapter5.tex @ 10:1519674c30ab

dragon and firefly spec
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Sat, 31 Jan 2015 15:58:41 +0900
parents 8fa7b93195cf
children 6277bb3a73e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \chapter{GPGPUへの対応}
10
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
2 Cerium の新たな演算資源として GPU の使用を可能にした。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
3 現在、GPU のような異なる種類のアーキテクチャを搭載した CPU 、つまりヘテロジニアスな CPU が増えている。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
4 特定の計算に特化した Task の生成やスケジューリングを行い、 GPGPU により高い並列度を出す研究は様々な分野で行われている。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
5 本研究では Cerium を特定の計算に限らず、 GPU を用いて汎用計算を行えるフレームワークに改良する。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
6 \section{OpenCL}
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
7 OpenCL を用いた GPU 対応を行った。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
8 Scheduler と CpuThreads に対応させる形で GpuScheduler と GpuThreads を実装した。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
9 GpuScheduler 内で OpenCL の API を用いて GPU の制御を行っている。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
10
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
11 受け取った TaskList からメモリバッファを作成し、
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
12 clEnqueueuWriteBuffer、clEnqueueTask、clEnqueueReadBuffer の順に CommandQueue に Enqueueしていく。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
13 Task の投入は CommandQueue を2つ用意しパイプライン的に実行を行う。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
14
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
15 Task の終了は、clWaitForEvent によって検出し、TaskManager 間の通信を担当する同期キューである mail を使って通知する。
1519674c30ab dragon and firefly spec
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
16
7
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \subsection{OpenCL による実装の機構}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \subsection{ベンチマーク}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \section{CUDA}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \subsection{CUDA による実装の機構}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \subsection{ベンチマーク}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 \section{データ並列}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 \subsection{データ並列実行の機構}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 \subsection{iterate API}
786db8c94c6e Bitonic sort example
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 \subsection{ベンチマーク}