OpenCL は、CPU や GPU など様々なプラットフォームを抽象化して並列計算に用いるためのフレームワーク。 今回は Ubuntu 18.04 LTS + NVIDIA Tesla T4 の環境に OpenCL の NVIDIA CUDA ランタイムをインストールしてみる。
使った環境は次の通り。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS" $ uname -r 4.15.0-1033-gcp $ nvidia-smi Tue Jun 4 13:22:36 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 418.67 Driver Version: 418.67 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla T4 On | 00000000:00:04.0 Off | 0 | | N/A 58C P8 10W / 70W | 0MiB / 15079MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
下準備
利用できる OpenCL のランタイムを確認するために clinfo
パッケージをインストールしておく。
$ sudo apt-get update $ sudo apt-get -y install clinfo
最初の状態では、次の通り利用できるランタイムが存在しない。
$ clinfo
Number of platforms 0
NVIDIA CUDA をインストールする
実は OpenCL は NVIDIA CUDA をインストールすると自動的に使えるようになる。 なので NVIDIA CUDA をインストールしていく。
NVIDIA CUDA のインストール用 deb ファイルは以下から取得できる。
ちなみに、使う GPU のアーキテクチャ (Compute Capability) によってサポートされている CUDA のバージョンが異なる点に注意しよう。
Web サイトからファイルをダウンロードする。
$ sudo apt-get -y install wget
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.168-1_amd64.deb
システムに CUDA のリポジトリを登録する。
$ sudo dpkg -i cuda-repo-ubuntu1804_10.1.168-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo apt-get update
CUDA をインストールする。
$ sudo apt-get -y install cuda
インストールが終わったらマシンを再起動する。
$ sudo shutdown -r now
マシンが再起動してきたら、nvidia-smi
コマンドで GPU の状況が確認できるはず。
$ nvidia-smi Tue Jun 4 13:20:22 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 418.67 Driver Version: 418.67 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla T4 On | 00000000:00:04.0 Off | 0 | | N/A 76C P0 32W / 70W | 0MiB / 15079MiB | 6% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
また、clinfo
コマンドを実行すると次のようにプラットフォームが認識されるはず。
現時点での OpenCL の最新バージョンは 2.1 なので、それに比べると 1.2 はちょっと古い。
$ clinfo | grep "Number of platforms" -A 3 Number of platforms 1 Platform Name NVIDIA CUDA Platform Vendor NVIDIA Corporation Platform Version OpenCL 1.2 CUDA 10.1.152
とはいえ、これで OpenCL を使った並列計算が NVIDIA の GPU を使って実行できる。
いじょう。
- 作者:もみじあめ
- 発売日: 2020/02/29
- メディア: Kindle版