Mercurial > hg > Papers > 2015 > yuhi-master
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 |
rev | line source |
---|---|
7 | 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 | 17 |
18 \subsection{OpenCL による実装の機構} | |
19 \subsection{ベンチマーク} | |
20 | |
21 \section{CUDA} | |
22 \subsection{CUDA による実装の機構} | |
23 \subsection{ベンチマーク} | |
24 | |
25 | |
26 \section{データ並列} | |
27 \subsection{データ並列実行の機構} | |
28 \subsection{iterate API} | |
29 \subsection{ベンチマーク} |