特定バージョンのCUDAのインストールおよびアップグレード手順

機械学習でよく使われるTensorflowやPyTorchでは,GPUすなわちCUDAを使用して高速化を図ります.

ライブラリのバージョンごとにCUDAおよびcuDNNのバージョンが指定されています.最新のTensorflowやPyTorchをインストールしようとすると,対応するCUDAをインストールしなければなりません.

例えば,PyTorch 1.13.1をインストールする場合,CUDAが11.6, 11.7を導入する必要があります.

この記事では,CUDA 10.1.105をインストール済みのマシンをCUDA 11.7にアップグレードした際の手順を残しておきます.

目次

環境

  • OS:Ubuntu 18.04
  • GPU:NVIDIA GeForce RTX 2080 Ti

アップグレード前の古いバージョンは下記の通りでした.


cat /usr/local/cuda/version.txt
CUDA Version 10.1.105

インストールおよびアップグレード方法

手順

インストールする場合もアップグレードする場合も手順は同様で,下記の通りです.

  • 古いドライバやライブラリを削除
  • CUDA ToolkitのダウンロードとCUDAをインストール

古いライブラリやドライバがインストールされているとコンフリクトを起こしてしまいます.

古いドライバやライブラリの削除

この時のCUDAの最新バージョンは12.1.0でした.

インストールしたいバージョンは11.7のため,apt-get install cuda-11-7のようにバージョンを指定します.


apt clean
apt update
apt purge cuda* nvidia-*
apt autoremove

CUDA ToolkitのダウンロードとCUDAをインストール

CUDA Toolkitのダウンロード

下記URLにCUDAのアーカイブがあります.インストールしたいバージョンのURLに飛びます.

https://developer.nvidia.com/cuda-toolkit-archive

CUDA 11.7のページにアクセスし,OS,アーキテクチャなどを指定します.

今回はaptでインストールするので,Installer Typeはdeb(network)としました.

手順に沿ってインストール作業を行います.

パッケージを追加し,CUDA 11.7をインストールします.


wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring*.deb
apt-get update 
apt-get install cuda-11-7

注意点として,apt-get install cudaを実行すると最新バージョンがインストールされるため,apt-get install cuda-11-7のようにバージョン指定する必要があります.

インストール後は再起動が必要です.


reboot

再起動後にCUDAのバージョンがアップグレードされていることを確認できれば,作業完了です.


/usr/local/cuda/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Jun__8_16:49:14_PDT_2022
Cuda compilation tools, release 11.7, V11.7.99
Build cuda_11.7.r11.7/compiler.31442593_0

付録

失敗例

古いドライバやライブラリを削除せずにCUDA Toolkitをインストールしようとした際の失敗例を戒めとして残しておきます.


apt install cuda
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda : Depends: cuda-12-1 (>= 12.1.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

複数のCUDAバージョンのインストールして,特定バージョンをデフォルトにする

最新版(12.1)もインストールしてみました.

最新版をインストールすることで,デフォルトのCUDAバージョンがアップグレードされてしまいます.


/usr/local/cuda/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0

今回は11.7をデフォルトとして使いたいので,デフォルトのCUDAバージョンを下記コマンドで変更します.

11.7の優先度が高くなっていることが確認できます.


update-alternatives --config cuda
There are 2 choices for the alternative cuda (providing /usr/local/cuda).

  Selection    Path                  Priority   Status
------------------------------------------------------------
* 0            /usr/local/cuda-11.7   200       auto mode
  1            /usr/local/cuda-11.7   200       manual mode
  2            /usr/local/cuda-12.1   121       manual mode

nvccの結果も同様です


/usr/local/cuda/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Jun__8_16:49:14_PDT_2022
Cuda compilation tools, release 11.7, V11.7.99
Build cuda_11.7.r11.7/compiler.31442593_0
よかったらシェアしてね!
目次