さて、CUDAの開発環境の構築は昔から少々面倒で、多少のLinuxの知識と折れない心と英語力が必要です。
自分もこのたびわりと久しぶりに自宅PCにCUDA環境を構築したら、やり方も変わっていて躓いたので備忘録としてメモ。
環境
- GPU: GeForce GTX 670 (Kepler, GK104)
- OS: Linux Mint 17 (Ubuntu 13.10) x64, Kernel 3.13.0
- GCC: 4.8.2
- インストールするCUDA: 6.5
基本的にディスプレイドライバ周りは最初にOSインストールした後は何も変更もしてないです。
セットアップ方法
基本的には、下記公式ドキュメントから。
Getting Started Linux :: CUDA Toolkit Documentation
Xを殺害したほうがいいかも
ディスプレイドライバをいじくる操作になるので、Xを事前に殺したほうがいいかもしれません。
なお、これをするとブラウザとか全部死にます。
まず、Ctrl+Alt+F1あたりを押して仮想コンソールに入ります。
でXを殺害します。
% sudo stop mdm #(Linux Mintの場合) % sudo stop gdm #(Ubuntuの場合)
以後の作業は、このままコンソールを抜けずに続けます。
CUDAの導入
CUDA Downloadsより、debパッケージをダウンロード。このパッケージはとても小さくて、単にaptリポジトリを追加するだけです(sources.list.d/cuda.listがそいつです)。
% wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_6.5-14_amd64.deb % sudo dpkg -i cuda-repo-ubuntu1404_6.5-14_amd64.deb % sudo apt-get update % sudo apt-get install cuda
あとはひたすらまつのみ。ダウンロードする総量は約1GB。
およそ30分で完了しました。
続いて、PATHを通してやります。
下記のような設定を*shrcなり/etc/environmentなりに書きます。
$ export PATH=/usr/local/cuda-6.5/bin:$PATH $ export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH
完了したら、再起動。
確認
こんなかんじで出力されればOKです。
% nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2014 NVIDIA Corporation Built on Thu_Jul_17_21:41:27_CDT_2014 Cuda compilation tools, release 6.5, V6.5.12 % nvidia-smi Mon Jan 19 00:30:30 2015 +------------------------------------------------------+ | NVIDIA-SMI 340.29 Driver Version: 340.29 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 670 Off | 0000:01:00.0 N/A | N/A | | 30% 42C P8 N/A / N/A | 71MiB / 2047MiB | N/A Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Compute processes: GPU Memory | | GPU PID Process name Usage | |=============================================================================| | 0 Not Supported | +-----------------------------------------------------------------------------+
以上!
5.5とかの頃より遥かに導入がラクになっててすごい助かる。
非対話的にできるようになったので、環境構築の自動化が大変やりやすくなるのです。
ところでこういう環境構築系記事は書くのもラクなわりにPV稼げるしバージョンが新しくなる度に書き直せて記事数を稼げるのでずるいと思う。けど大事だと思う。まる。
もうすぐCUDA 7も出るしね!