OpenCL on Ubuntu + ATI

ぼちぼち OpenCL なんぞをはじめてみようとおもいたち、ハードは適当なものをそろえてみた。
(AMD系のオンボードチップでもいいのかどうか少々不安ではあるが)

手元のハードとしては
オンボードチップ Radeon HD 4520
・ GeForce 450 GTS
のもの二つありまして、とりあえずは ATI RADEON の方でためしてみます。

に手順がのっているので、それをフォローしてみましょう。UbuntuをインストールしてほっておくとATIのドライバを入れろといってくるので入れておきます。

上記ホームページでは icd-registration.tgz をダウンロードしろとあるが、パッケージに含まれています。

ダウンロードしたパッケージを適当な所に展開します。


$ sudo tar zxvf hogehoge.tgz -C /opt

ATI_Stream_SDK_Installation_Note.pdf が含まれているので、それに従ってセットアップします。
システムワイドで設定するもよし、ユーザ毎に .bashrc を弄るもよし。

export ATISTREAMSDKROOT=/opt/ati-stream-sdk-v2.3-lnx64
export LD_LIBRARY_PATH=${ATISTREAMSDKROOT}/lib/x86_64:${LD_LIBRARY_PATH}

icd-registration.tgz を展開します。


$ sudo tar zxvf icd-registration.tgz -C /

サンプルコード

にあることを試してみる。
コンパイルには、以下の環境変数の設定が必要


export OPENCL_INCLUDE_DIR=${ATISTREAMSDKROOT}/include
export OPENCL_LIBRARIES=${ATISTREAMSDKROOT}/lib/x86_64

コンパイル

上記を設定しておけば、cmakeでMakefileが出来て、makeも正常終了。

実行

実行してみるが OpenCL デバイスがみつからずアボート。さらにはシステムを巻き込んで、システム停止?

というわけで、ATI Catalyst 最新バーションをインストールしてみる

が、状況はかわらず。ビルトインだとうまく動かん?

ならば原点に立ち戻って、

SDKの中にあるsampleコードをコンパイルしてみると、無事コンパイルが通る。
そこで HelloCL を動かしてみると、こちらも問題なく起動・終了。

つうことは、使えているってことかいな。



CUDA + sample code

それなら GeForce 450 GST でやってみようということで、 CUDAとsample codeをダウンロード。
SDKの設定もすませて、サンプルコードをコンパイル。 ライブラリが欠如しているのでaptで入れてコンパイルもOK。ワーニングがたくさんでるのが気持ち悪いがしょうがない。

出来た実行ファイルを動かしてみると、問題なし。

よし、CUDAでOpenCLを学ぼうかな。