minisoba blog

プログラミングと株式投資

Ubuntu 22.04LTSにCUDAをインストールする

株価分析に機械学習を応用したかったのでCUDAのインストールを試みたのですが、いきなり失敗、再起動したら黒画面でフリーズ!調べてみると、UbuntuでCUDAの設定トラブルが結構出てきたので、クリーンインストールすることにしました。

Step 1: BIOSチェック
  • Secure Bootがオフになっているか確認
Step 2: リカバリモードで再起動 (新規インストールでは不要)
  • GRUBコンソールを起動
  • 「Advanced options for Ubuntu」を選択し、"e" (エディット)キーを押す
  • linuxの最後に、"rw init=/bin/bash"を記述
  • Control-Xキーを押して、シングルユーザーモードで起動
Step 3: NVIDIAライブラリを削除
$ sudo apt-get remove --purge '^nvidia-.*'
$ sudo apt-get remove --purge '^libnvidia-.*'
$ sudo apt-get remove --purge '^cuda-.*'
Step 4: 再起動
Step 5: NVIDIA GPUドライバの確認
$ sudo ubuntu-drivers devices
[sudo] password for maron: 
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001CBAsv00001028sd0000087Dbc03sc02i00
vendor   : NVIDIA Corporation
model    : GP107GLM [Quadro P2000 Mobile]
driver   : nvidia-driver-510 - distro non-free recommended
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-510-server - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin
Step 6: NVIDIA GPUドライバをインストール
$ sudo apt install --no-install-recommends nvidia-driver-510
$ sudo apt install nvidia-prime
$ sudo apt install nvidia-cuda-toolkit
Step 7: 再起動
Step 8: インストールの確認

ブートが成功したら、GPUの業態確認
(失敗した場合は、Step 2に戻ってリカバリモードで再起動後、NVIDIAライブラリを削除)

$ prime-select query
nvidia
$ nvidia-smi
Sun Jun  5 15:27:56 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.73.05    Driver Version: 510.73.05    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   68C    P0    N/A /  N/A |    765MiB /  4096MiB |      6%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      3826      G   /usr/lib/xorg/Xorg                500MiB |
|    0   N/A  N/A      4633      G   ...ome-remote-desktop-daemon        1MiB |
|    0   N/A  N/A      4684      G   /usr/bin/gnome-shell              118MiB |
+-----------------------------------------------------------------------------+

最後に、NVIDIA GPU、CUDAトラブルで検索すると色々なケースが出てくるので一概にこれという解決方法はないようです。カーネルモジュールとかドライバとか結構OS低レベルでハマることが多いので、Linuxにあまり興味がない人はWindowsもしくはMac上で環境構築したほうが無難かもしれません。

ちなみに、本ブログで紹介する自作システムは、特別な注意書きがない限りクロスプラットフォームで動作します。