漢なら Parallella で OpenCL ですね!
Parallella(epiphany core)用 OpenCL SDK である CORPTHR をインストールして Parallella で OpenCL をたしなみましょう.
インストール
から Parallella build を落とします(ver 1.6.0)
適当に展開してインストールスクリプトを実行して /usr/local/browndeer にインストールします.
$ tar -zxvf coprthr-1.6.0-parallella.tgz
$ sudo sh ./browndeer/scripts/install_coprthr_parallella.sh
.bashrc あたりに
export PATH=$PATH:/usr/local/browndeer/bin
export LD_LIBRARY_PATH=/usr/local/browndeer/lib
としてパスを通します.
$ clcc
としてなにか反応があるのを確認しておきます.
サンプル
Parallella 用のサンプルコードが, tgz を展開した browndeer/examples/parallella にあります.
$ cd browndeer/examples/parallella/hello_stdcl
Makefile の OPENCL_INCS あたりを適当に編集して直しておきます.
(サンプル全部が正しくコンパイルして実行できるようではないようです. 安定するにはもう少し待ちでしょうか)
ビルドして実行してみます.
$ make
$ ./hello_stdcl.x
coprthr-1.6.0 (Freewill)
[13971] clmesg WARNING: command_queue.c(39): __do_create_command_queue_1: cmdq exists
[13971] clmesg info: cmdsched.c(86): cmdqx1: run
[13971] clmesg WARNING: ocl_enqueue.c(893): clEnqueueNDRangeKernel: ignoring global_work_offset
[13971] clmesg info: sl_engine.c(112): sl_engine_startup: nengines=2
[13971] clmesg WARNING: ocl_flush.c(35): clFlush: warning: unsupported
0 0.000000 0.000000
1 2.200000 3000.800049
2 4.400000 6001.600098
3 6.600000 9002.400391
4 8.800000 12003.200195
5 11.000000 15004.000000
6 13.200001 18004.800781
7 15.400001 21005.601562
8 17.600000 24006.400391
9 19.800001 27007.203125
10 22.000000 30008.000000
11 24.200001 33008.800781
12 26.400002 36009.601562
13 28.600000 39010.398438
14 30.800001 42011.203125
15 33.000000 45012.000000
Voila!
eCore で OpenCL カーネルが動いた瞬間です. 素晴らしいですね.
Happy OpenCL coding!