OpenCLの環境構築
Ubuntu 16.04 LTS で OpenCL の環境構築の方法を紹介します。
特に、NVIDIA の古いグラフィックボード(グラフィックチップ)を利用している人向けの内容です。
環境の構築には、基本的に apt コマンドのみを利用します。
まず、使っている Ubuntu の環境を調べます。
以降の操作は、ターミナル(端末)から行います。
Ubuntu のバージョンなどは、以下のコマンドで調べます。
$ lsb_release -a
$ uname -a
利用しているグラフィックボードやグラフィックチップは、以下のコマンドで調べます。
$ lspci
$ sudo lshw
NVIDIA のグラフィックボードを利用していて、特にドライバを変更してない場合、nouveau ドライバを利用していると思います。
これは、以下のコマンドで調べることができます。
$ dmesg | grep -i nouveau
apt コマンドで、NVIDIA 系のソフトウェアをインストールするわけですが、apt で利用できるソフトウェアパッケージ等は以下のコマンドで調べることができます。
$ apt list | grep -i nvidia
$ sudo apt search nvidi
これらを見ると、私の環境では、304, 331,340, 346, 352, 361, 367, 375, 384のバージョンのドライバが apt コマンドで利用できることがわかりました。
次が肝心な調査になりますが、デバイスで利用可能なドライバを、以下のコマンドで調べます。
$ sudo ubuntu-drivers devices
このコマンドを実行すると私の環境では、以下のように表示されました。
model : C79 [GeForce 9400M] vendor : NVIDIA Corporation
driver : nvidia-304 – distro non-free
driver : xserver-xorg-video-nouveau – distro free builtin
driver : nvidia-340 – distro non-free recommended
この場合、nvidia-340 のバージョンのドライバが推奨(recommend)されていることがわかったので、以下のコマンドで、バージョン 340 のドライバをインストールします。
$ sudo apt install nvidia-340
OpenCL で開発を行いたいので、以下のコマンドで、OpenCL の開発環境をインストールします。
$ sudo apt install nvidia-340-uvm nvidia-opencl-dev nvidia-modprobe
※ nvidia-340-uvm のバージョン番号は、インストールしたドライバのバージョンに合わせて下さい。
NVIDIA のグラフィックボードで、OpenCL を入れたとなれば、CUDA も入れたいとなるところです。
以下のコマンドで、CUDA もインストールできるようですが、最新バージョンのドライバも一緒にインストールされてしまい、うまく動作しませんでした。
$ sudo apt install nvidia-cuda-toolkit (古いチップには推奨せず)
リブート後、動作確認を行うため、clinfo をインストールして、実行します。
$ sudo apt install clinfo
$ clinfo
GPU の環境が表示されれば、正常に動作していると思います。
OpenCLインストールで紹介したようなテストプログラムを用意し、コンパイルして、実行してみます。
$ gcc -o test test.c -lOpenCL
$ ./test