0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【WSL, Docker対応】UbuntuのCUDAのバージョンをドライバーを更新せずに変更する方法

Posted at

はじめに

機械学習でGPUを使用するとき、CUDAのバージョンやドライバーの更新などかなり面倒くさいですよね
本記事では、CUDAのバージョン変更の最も簡単な方法を紹介します。

環境

Ubuntu OS
Ubuntu on WSL
Ubuntu on Docker
様々な環境で対応することができます。

本記事で使用する環境

本記事ではUbuntu OS 20.04を使用します

$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| 32%   47C    P2    39W / 151W |   1153MiB /  8192MiB |     10%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1227      G   /usr/lib/xorg/Xorg                 59MiB |
|    0   N/A  N/A      1999      G   /usr/lib/xorg/Xorg                339MiB |
|    0   N/A  N/A      2140      G   /usr/bin/gnome-shell               50MiB |
|    0   N/A  N/A      5415      G   ...078913938099486096,262144       71MiB |
|    0   N/A  N/A      9540      G   ...RendererForSitePerProcess       55MiB |
|    0   N/A  N/A     14676      G   gzclient                           16MiB |
|    0   N/A  N/A     14685      G   gzserver                            5MiB |
|    0   N/A  N/A     15225      G   .../ros/noetic/lib/rviz/rviz        4MiB |
|    0   N/A  N/A     16556      C   python3                           528MiB |
+-----------------------------------------------------------------------------+

最新のNvidia-DriverとCUDA12.0が認識されています。

今回はドライバは変更せず、CUDA11.7を使用できるようにします。

ステップ① : 使用したいCUDAをダウンロードとインストール

Nvidia Developerの公式サイトから使用したいCUDAのランタイムファイルをダウンロードします。

今回の例ではCUDA11.7をダウンロードします。
Screenshot from 2023-10-31 15-20-10.png

選択をすると、インストールコマンドが表示されます。
Screenshot from 2023-10-31 15-21-57.png

ここで、runfile をインストールするコマンドを下記のように変更します。

$ sudo sh cuda_11.7.0_515.43.04_linux.run --toolkit --silent --override

何をしているかというと、CUDAのインストールパスを /usr/local/ に変更しています。

正しくインストールされているか確認してみましょう。

$ ls /usr/local
bin/  cuda@  cuda-11.7/  etc/  games/  include/  lib/  man@  sbin/  share/  src/

cuda-11.7 が確認できれば成功です。

ステップ② : インストールしたCUDAにPATHを通す

あとは、使用するCUDAにPATHを通せば完成です。
zshrcbashrc に下記を追加します。

export PATH="/usr/local/cuda-11.7/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH"

上記のcuda-11.7の箇所を使用したいバージョンに切り替えていくことで任意のCUDAのバージョンに変更することが可能です

確認として下記コマンドで使用したいCUDAが表示されるか確認しましょう

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0

ちなみに、nvidia-smi ではCUDA12.0のままになっていますよ。

終わりに

CUDAのバージョンを一番簡単に変更できる方法でした。
よき機械学習ライフを!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?