UbuntuにGPUを導入する際のTips
準備
GPUが正しく動くには、各階層で正しいドライバが動いている必要がある
BIOS(UEFI)でIntel Graphicsを無効にする
nouveauを無効にする
code: bash
# Check nouveau is loaded
lsmod | grep nouveau # Information will be displayed if nouveau is active
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
# #Add following two lines # blacklist nouveau
# options nouveau modeset=0
sudo update-initramfs -u
nouveauを無効にするには、grubレベルで、Intelグラフィックス機能を無効にするのでもOK。
code:bash
sudo vim /etc/default/grub
############
# GRUB_CMDLINE_LINUX=""
GRUB_CMDLINE_LINUX="nomodeset" # Disable Intel Graphics
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
############
sudo update-grub
ライブラリのインストール
code:bash
sudo apt install build-essential
sudo apt install pkgconf
sudo apt install libglvnd-dev
ドライバのバージョンを決定
使用したいソフトに合わせてバージョンを決定する。上位ソフトから順に考えるのが良い。
例えば、
なので、以下のような構成とする。
かならず、Driverをインストールした後とCUDAをインストールした後に再起動してnvidia-smiが正常に起動することを確認すること。
table: Compatibility
Driver nvidia-driver-515.86
CUDA CUDA 11.7
Pytorch 1.13.1
ドライバの状態確認
code: bash
$ nvidia-smi
# 失敗した場合
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
# 成功した場合
Thu Nov 28 22:21:11 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.36 Driver Version: 440.36 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 2060 Off | 00000000:04:00.0 On | N/A |
| 43% 38C P8 19W / 160W | 437MiB / 5926MiB | 20% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1991 G /usr/lib/xorg/Xorg 28MiB |
| 0 2035 G /usr/bin/gnome-shell 51MiB |
| 0 2306 G /usr/lib/xorg/Xorg 230MiB |
| 0 2569 G /usr/bin/gnome-shell 103MiB |
+-----------------------------------------------------------------------------+
GPUの確認
code:bash
$ sudo update-pciids
$ lspci -k | grep -EA3 'VGA|3D|Display' # PCIデバイスとして確認 (複数ある場合はVGAがディスプレイに使用されている)
$ sudo lshw -numeric -C display # PCIデバイスより一段抽象的なハードウェアとして確認
$ glxinfo | grep -i vendor #
コンパイラのバージョンが古くてコンパイルに失敗する場合
code:text
# /var/log/nvidia-installer.log
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
You are using: cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
code:bash
sudo apt install g++-12
export CC=gcc-12
./NVIDIA-Linux-x86_64-525.147.05.run