16.04でもnvidia公式リポジトリのおかげでかなり楽になっていましたが、18.04ではcuda9.0がubuntuリポジトリに上がっており、ドライバごとaptから導入できます。
最新版 は9.1が出ているっぽいですが。
(というかUbuntu16.04でcudaインストールが大変だった問題の、諸悪の根源はバラバラな方法が検索上位にいくつも上がってくるqiitaのような。昔のように最初から公式ドキュメントを読めばよかった。とはいえ本記事もalphaのこの時点ではうまく行ったという話なので信憑性は似たりよったり...閑話休題。)
# インストール
リポジトリ追加すら必要ありませんでした。ドライババージョン等は、まだalphaなので、最新版が登場したり取り下げられたりするかもしれませんが。
```
sudo apt install nvidia-driver-390 libcuda1-384 libcufft9.0 nvidia-cuda-toolkit
```
(※02/28時点のalphaで下記cuda導入コマンド実行後に後からnvidiaドライバを導入しようとしたらUbuntuが壊れました。report中。)
```
sudo apt install libcuda1-384 libcufft9.0 nvidia-cuda-toolkit
```
libcufft9.0はなんとなく入れただけです。今回は動作確認していません。
nvidia-cuda-toolkitはnvccが入っています。ビルドに必要です。
この時点で、libcufft9.0のバージョンを信じるならば9.0? って感じでした。
とりあえず単純なソースをビルドして実行するだけならば、ドライバライブラリへシンボリックリンクを手作業で貼り直したり、.bashrcにパスを設定したりする必要はありません。ubuntu16.04の頃を思うと、感動的に楽です。
# 確認
まずはコマンドで、次にビルドおよびバイナリの動作によりcuda環境の動作を確認。## コマンド
```$ nvidia-smi
Mon Feb 26 00:32:06 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.111 Driver Version: 384.111 |
|-------------------------------+----------------------+----------------------+
| 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 105... Off | 00000000:27:00.0 On | N/A |
| 45% 33C P5 ERR! / 75W | 964MiB / 4035MiB | 2% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1522 G /usr/lib/xorg/Xorg 57MiB |
| 0 1569 G /usr/bin/gnome-shell 47MiB |
| 0 1938 G /usr/lib/xorg/Xorg 534MiB |
| 0 2086 G /usr/bin/gnome-shell 321MiB |
+-----------------------------------------------------------------------------+
$nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
$ which nvcc
/usr/bin/nvcc
$ ldconfig -p | grep cuda
libicudata.so.60 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicudata.so.60
libcudart.so.9.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so.9.0
libcudart.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so
libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so
```
## サンプルソース・アプリ動作
https://gist.github.com/dpiponi/1502434で確認しました。ダウンロードしてビルドして実行したところ、動いているようです。
```
$ nvcc example.cu && ./a.out
```
以上です。
0 件のコメント:
コメントを投稿