機械学習等でRTXシリーズなどのGPUを利用したい場合に必要となるドライバを導入します
参考
動作確認環境
Ubuntu 24.04 LTS, Ubuntu 22.04.3 LTS
Ubuntu環境にNvidiaのドライバを導入した後、Cudaドライバのインストールを行います
すでにドライバ導入済みで更新する場合 (アンインストール方法)
まずは、aptパッケージのアップデートをします
sudo apt update次に、Ubuntuのデフォルトのグラフィクスドライバ (nouveau) を無効にします
echo 'blacklist nouveau' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.confecho 'options nouveau modeset=0' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.confcat /etc/modprobe.d/blacklist-nouveau.confsudo update-initramfs -u
インストールするNvidiaドライバのバージョンを確認します
sudo add-apt-repository ppa:graphics-drivers/ppasudo apt updateubuntu-drivers devices
例えば、以下のように表示されます
== /sys/devices/pci0000:00/0000:00:03.1/0000:0d:00.0 ==modalias : pci:v000010DEd00002204sv000019DAsd00001613bc03sc00i00vendor : NVIDIA Corporationdriver : nvidia-driver-545 - third-party non-freedriver : nvidia-driver-465 - third-party non-freedriver : nvidia-driver-550-open - third-party non-freedriver : nvidia-driver-460 - third-party non-freedriver : nvidia-driver-535-server - distro non-freedriver : nvidia-driver-455 - third-party non-freedriver : nvidia-driver-550 - third-party non-freedriver : nvidia-driver-535-open - distro non-freedriver : nvidia-driver-470 - third-party non-freedriver : nvidia-driver-555-open - third-party non-free recommendeddriver : nvidia-driver-535 - third-party non-freedriver : nvidia-driver-495 - third-party non-freedriver : nvidia-driver-470-server - distro non-freedriver : nvidia-driver-545-open - third-party non-freedriver : nvidia-driver-515 - third-party non-freedriver : nvidia-driver-555 - third-party non-freedriver : nvidia-driver-525 - third-party non-freedriver : nvidia-driver-510 - third-party non-freedriver : nvidia-driver-535-server-open - distro non-freedriver : nvidia-driver-520 - third-party non-freedriver : xserver-xorg-video-nouveau - distro free builtin
この中で最新のものを選択すると良いのですが、経験上 -open を選択すると、Cuda関係のドライバを導入する際にトラブルになりがちだったので、recommended になっていても避けることが多いです
Cudaのバージョンとの関連
Cudaとの対応関係を知りたい場合は Cuda Toolkitのリリースノート を見つつ選択すると良いと思います
例えば、Cuda12.x を使いたい場合、執筆時にLinuxの場合は >=525.60.13 となっていたので 525 以上を選択すれば問題ないです
今回は、この中で最新の nvidia-driver-555 をインストールすることにします
sudo apt install nvidia-driver-555セキュアブートが有効になっている場合
セキュアブートが有効になっている場合は、インストール時にMOK(マシン所有者キー)を入力する必要があります
以下のような画面の後、適当なパスワードを設定する必要があります

以下の手順で説明する再起動後に Perform MOK management が立ち上がると思うので Enroll MOK を選択して、そこで設定したパスワードを入力する必要があります
インストールが完了したら、再起動を行います
sudo reboot再起動後、以下のコマンドでドライバが正常にインストールされているか確認します
nvidia-smi正常にインストールされていれば、以下のような画面が表示され、接続されているGPUの情報が表示されます 🎉
+-----------------------------------------------------------------------------------------+| NVIDIA-SMI 555.42.02 Driver Version: 555.42.02 CUDA Version: 12.5 ||-----------------------------------------+------------------------+----------------------+| 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 RTX 3090 Off | 00000000:0D:00.0 Off | N/A || 0% 38C P8 15W / 350W | 32MiB / 24576MiB | 0% Default || | | N/A |+-----------------------------------------+------------------------+----------------------++-----------------------------------------------------------------------------------------+| Processes: || GPU GI CI PID Type Process name GPU Memory || ID ID Usage ||=========================================================================================|| 0 N/A N/A 1270 G /usr/lib/xorg/Xorg 9MiB || 0 N/A N/A 1411 G /usr/bin/gnome-shell 6MiB |+-----------------------------------------------------------------------------------------+
以下のようになる場合は、何かしら失敗している可能性があるので、一度アンインストールして再度試してください
セキュアブートが無効な状態でインストールし、再度有効にしても以下のようなエラーが出ることがあります
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installer and running.まずは、aptに追加するキーのダウンロードを行います
バージョンによって ubuntu2404 の部分が異なるので、適宜変更してください
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.debこのダウンロードしたキーをaptに追加します
sudo dpkg -i cuda-keyring_1.1-1_all.debsudo apt update
執筆時点では Cuda 12.5 が最新版だったので、これをインストールします
sudo apt install -y cuda-12-5 cuda-toolkit-12-5最後にNvidia-Cuda-Toolkitを認識させるために、パスを .bashrc に追加します
echo "export PATH=/usr/local/cuda:/usr/local/cuda/bin:$PATH" >> .bashrcecho "export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH" >> .bashrcsource ~/.bashrc
導通確認として nvcc -V を実行して、バージョンが表示されれば成功です 🎉
nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2024 NVIDIA CorporationBuilt on Wed_Apr_17_19:19:55_PDT_2024Cuda compilation tools, release 12.5, V12.5.40Build cuda_12.5.r12.5/compiler.34177558_0
Docker ContainerからもGPUを使う (nvidia-container-toolkit)
おわりに
ドライバが古いと新しいCudaが使えないことがあるので、参考にしてもらえればと思います 🐶