Ubuntu Weekly Recipe

第456回 Ubuntu 16.04 LTSでCUDA 8.0を使用する

この記事を読むのに必要な時間:およそ 15 分

パッケージ版を使ってインストール

まずはパッケージ版をインストールする方法を紹介しましょう。デスクトップであれば,単純にウェブブラウザーからダウンロードリンクをクリックして,ダウンロードダイアログで「ソフトウェアのインストール」を選べばインストールが始まります。

「ソフトウェアのインストール」は使わずに,SSHログインしてインストールしたいなら次の手順でコマンドを実行していきましょう。まずはパッケージファイルをダウンロードします。

「deb (local)」の場合
$ wget https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb

「deb (network)」の場合
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.44-1_amd64.deb

以降の説明では,ファイル名は「deb (network)」で統一します。必要に応じて置き換えて読んでください。

パッケージファイルの中身はdpkg-debコマンドで確認できます。公式リポジトリの外からパッケージファイルをダウンロードする場合は,まずその中身を確認する習慣をつけておきましょう。ちなみに下記の内容であれば単にlessコマンドにパッケージファイルを指定するだけでも確認できます。

$ dpkg-deb --info cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
 新形式 debian パッケージ、バージョン 2.0。
 サイズ 2690 バイト: コントロールアーカイブ = 647 バイト。
      34 バイト、    1 行      conffiles
     289 バイト、   10 行      control
      89 バイト、    1 行      md5sums
     464 バイト、   14 行   *  postinst             #!/bin/sh
 Package: cuda-repo-ubuntu1604
 Source: cuda-repo
 Version: 8.0.44-1
 Architecture: amd64
 Maintainer: cudatools <cudatools@nvidia.com>
 Installed-Size: 37
 Section: multiverse/devel
 Priority: optional
 Description: cuda repository configuration files
  Contains repository configuration for cuda.

$ dpkg-deb --contents cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
drwxr-xr-x root/root         0 2016-09-24 10:18 ./
drwxr-xr-x root/root         0 2016-09-24 10:18 ./etc/
drwxr-xr-x root/root         0 2016-09-24 10:18 ./etc/apt/
drwxr-xr-x root/root         0 2016-09-24 10:18 ./etc/apt/sources.list.d/
-rw-r--r-- root/root        80 2016-09-24 10:18 ./etc/apt/sources.list.d/cuda.list
drwxr-xr-x root/root         0 2016-09-24 10:18 ./usr/
drwxr-xr-x root/root         0 2016-09-24 10:18 ./usr/share/
drwxr-xr-x root/root         0 2016-09-24 10:18 ./usr/share/doc/
drwxr-xr-x root/root         0 2016-09-24 10:18 ./usr/share/doc/cuda-repo-ubuntu1604/

「deb (network)」は単にパッケージリポジトリのファイルをインストールするだけであることがわかります※5⁠。⁠deb (local)」の方は,上記に加えてパッケージファイル一式を/var/cuda-repo-8-0-local/以下に保存します。

※5
実際はインストールしたあとにパッケージ管理スクリプトによってリポジトリ鍵の追加も行っています。管理スクリプトはdpkg-debコマンドの--controlオプションで展開できます。

内容に問題がなければ,パッケージをインストールしましょう。インストールが完了すれば「ソフトウェアのインストール」を使った場合と同じ状態になります。

$ sudo apt install ./cuda-repo-ubuntu1604_8.0.44-1_amd64.deb

パッケージのインストール後にapt-keyで確認すると,NVIDIAのサイトにあるリポジトリ鍵も追加されていることがわかります。

$ apt-key list
(中略)
pub   4096R/7FA2AF80 2016-06-24
uid                  cudatools <cudatools@nvidia.com>

リポジトリが追加されたのでパッケージリストを更新しましょう。⁠deb (local)」の場合もローカルのパッケージリストを参照することになるため,同様にリストの更新が必要です。

$ sudo apt update
(中略)
W: Release ファイル /var/lib/apt/lists/partial/developer.download.nvidia.com_compute_cuda_repos_ubuntu1604_x86%5f64_Release に無効な 'Date' エントリがあります

警告が出てしまいました。これはReleaseファイルのDateフィールドは,GMT以外のタイムゾーンの指定は許されていないにも関わらず,NVIDIAの提供するReleaseファイルには-0700が指定されているためです。

$ cat /var/lib/apt/lists/developer.download.nvidia.com_compute_cuda_repos_ubuntu1604_x86%5f64_Release | grep Date
Date: Fri, 23 Sep 2016 18:52:52 -0700

現時点ではこの警告は無視しても問題ありません。

最後にcudaパッケージをインストールしましょう。cudaパッケージはツールキットやサンプル,ドライバーなどすべてのパッケージをインストールするためのメタパッケージです。

$ apt show cuda
Package: cuda
Version: 8.0.44-1
Priority: optional
Section: multiverse/devel
Maintainer: cudatools <cudatools@nvidia.com>
Installed-Size: 25.6 kB
Depends: cuda-8-0 (>= 8.0.44)
Download-Size: 2,504 B
APT-Sources: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64  Packages
Description: CUDA meta-package
 Meta-package containing all the available packages required for native CUDA
 development. Contains the toolkit, samples, driver and documentation.

$ sudo apt install cuda
(中略)
アップグレード: 0 個、新規インストール: 674 個、削除: 0 個、保留: 0 個。
1,588 MB のアーカイブを取得する必要があります。
この操作後に追加で 3,380 MB のディスク容量が消費されます。
続行しますか? [Y/n]
(以下略)

Ubuntuサーバー上でcudaパッケージをインストールしようとすると,上記のように674個(1.6GB)のパッケージをダウンロードする必要があります。また,インストール後にはデスクトップ環境が立ち上がることになります。UbuntuサーバーにCUDAをインストールするなら,次のように--no-install-recommendsオプションを指定してください。

$ sudo apt install --no-install-recommends cuda
(中略)
アップグレード: 0 個、新規インストール: 227 個、削除: 0 個、保留: 0 個。
1,449 MB のアーカイブを取得する必要があります。
この操作後に追加で 2,789 MB のディスク容量が消費されます。
続行しますか? [Y/n]
(以下略)

Ubuntuデスクトップにインストールするなら大半はインストール済みのパッケージとなりますので,--no-install-recommendsをつけるかどうかは好みで判断すると良いでしょう。前述した通り上記リポジトリにはNVIDIA製ドライバーパッケージも含まれています。この方法を使うなら第454回のようにインストーラースクリプトを使わず,CUDAのインストーラーパッケージからドライバーをインストールしたほうが便利です。

パッケージ版のCUDAをアンインストールするなら,インストールしたパッケージを一通り削除した上で,以下の手順でリポジトリリストとリポジトリ鍵も削除しておきましょう。

$ sudo apt purge cuda-repo-ubuntu1604
$ sudo apt-key del 7FA2AF80
OK
$ sudo apt update

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。