3
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?

GPU(nvidia-drtiver cuda)環境の再インストール

Last updated at Posted at 2024-01-30

前提

歴代のnvidia-driverが混在していて動かなくなったので、きれいさっぱりにして動くようにしたい。

役立ったコマンド

作業中によく使ったコマンド
飛ばしてかまわない。

dpkg -l | grep nvidia
dpkg -l | grep cuda
cat /usr/local/cuda/version.txt
cat /usr/bin/nvcc -V
watch -n 0.1 df -h
sudo du -sh | sort -rn | head -10

過去のnvidia関係のライブラリをすべて削除

sudo apt-get --purge remove nvidia*
sudo apt-get --purge remove cuda*
sudo apt-get --purge remove cudnn*
sudo apt-get --purge remove libnvidia*
sudo apt-get --purge remove libcuda*
sudo apt-get --purge remove libcudnn*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get update
sudo rm -rf /usr/local/cuda*

新しいversionのインストール

新しいnvidia-driverとcudaをサイトからversionを選んでダウンロードする。
12.3 Update 2の場合は以下のようになる。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-ubuntu2004-12-3-local_12.3.2-545.23.08-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-3-local_12.3.2-545.23.08-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3
sudo apt-get install -y cuda-drivers-545
#sudo apt-get install -y nvidia-kernel-open-545  <- これやっちゃだめっぽいdocker動かない

この状態でnvidia-smiが叩けるか確認。
叩けなければrebootする。

nvcc -Vはまだ打てないと思うので、

sudo apt install nvidia-cuda-toolkit

でインストールを行う。

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Wed_Nov_22_10:17:15_PST_2023
Cuda compilation tools, release 12.3, V12.3.107
Build cuda_12.3.r12.3/compiler.33567101_0

となれば完了。
versionが古いままの時は下を参照

この作業をやっても/usr/loacalにcudaが現れない時がある。
その時はdev(net)を選んでインストールを行う。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3

ここまで打てばcudaが入ってnvcc -Vが叩けるようになっているはず。

なぜかversionが更新されない

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

新しいcudaを入れたはずなのになぜか更新されなかった。

$ which nvcc
/usr/bin/nvcc

$ cat /usr/bin/nvcc
#!/bin/sh
exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc "$@"

参照元が /usr/lib/nvidia-cuda-toolkit/bin/nvccになっているので、

/usr/bin/nvcc
#!/bin/sh
exec /usr/local/cuda-12/bin/nvcc "$@"

に書き換えるとうまくいく。

localでpytorchが使えるか確認

import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name())

Dockerでエラーが出た

version: "3.2"
services:
  ubuntu:
    image: hogehoge
    # build:
    #   context: .
    #   dockerfile: Dockerfile
    shm_size: '4gb'
    container_name: "hoge"
    network_mode: host
    volumes:
      - /dev/bus/usb:/dev/bus/usb
      - ./workspace:/workspace
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
      - DISPLAY=$DISPLAY
    tty: true

docker compose up -d で以下のエラーが出たら

Error response from daemon: could not select device driver "" with capabilities: [[gpu]]

以下を実行してnvidia-container-runtimeを入れなおす

sudo apt-get install nvidia-container-runtime
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey |   sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list |   sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
sudo apt-get install nvidia-container-runtime
service docker restart
3
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
3
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?