1. ホーム
  2. リナックス

Ubuntu 18.04でNvidiaドライバとCUDA10.1 + CUDNNをインストールする。

2022-02-28 19:42:15
<パス

まず、UbuntuでNvidiaのグラフィックカードの詳細を表示する。

nvidia-smi

$ nvidia-smi
Fri Aug 16 08:46:25 2019     
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 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 940MX Off | 00000000:3C:00.0 Off | N/A |
| N/A 46C P0 N/A / N/A | 183MiB / 2004MiB | 3% Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
=============================================================================|
| 0 3038 G /usr/lib/xorg/Xorg 94MiB |
| 0 4709 G /usr/bin/gnome-shell 86MiB |
+-----------------------------------------------------------------------------+


    cat /usr/local/cuda/version.txt 
    or
    nvcc -V

$ cat /usr/local/cuda/version.txt 
CUDA Version 10.1.243


cudaのバージョンを表示する。

    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2


    lspci | grep -i nvidia
    #install without lspci
    apt install pciutils


cudnn版を表示する。

    lsmod | grep nouveau
    #install without lsmod
    apt install module-init-tools


上記のコマンドのいずれからも出力が得られない場合は、下を参照してください。

最初:Ubuntuの下でデュアルグラフィックノートパソコンにNVIDIAカードのドライバをインストールする方法

グラフィックカードドライバのインストール

コンピュータのGPUがCUDAに対応しているかどうかを確認します。

    sudo gedit /etc/modprobe.d/blacklist.conf


出力します。NVIDIA社製 GM108M [GeForce 940M] (rev a2)

nouveauを無効にして再起動 (Nvidiaグラフィックカード用の公式ドライバーのインストールと、システムに付属するnouveauドライバーのインストールは競合します)

    blacklist nouveau
    options nouveau modeset=0


nouveauがロードしている出力がある場合

使用不可リストを開く

    sudo update-initramfs -u
    reboot


開いているテキストの最終行に、追加します。

    lsmod | grep nouveau


更新、再起動

sudo yum -y install gcc-c++


ヌーボーが無効になっていないか再度確認する

sudo apt install build-essential


ハイライト
0. gccを先にインストールします。

$sudo apt-get remove nvidia-*
$sudo apt-get autoremove


または

sudo apt-get --purge remove nvidia-*
# sudo . /NVIDIA-Linux-x86_64-410.57.run -uninstall

sudo update-initramfs -u
sudo reboot now


1. 古いNVIDIAドライバを削除する。

	~$ sudo apt-get update


あるいは

ubuntu-drivers devices

qyh@qyh-mas$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:1d.0/0000:3c:00.0 ==
modalias : pci:v000010DEd0000134Dsv000017AAsd000039C8bc03sc02i00
vendor : NVIDIA Corporation
model : GM108M [GeForce 940MX]
driver : nvidia-driver-410 - third-party free
driver : nvidia-driver-415 - third-party free
driver : nvidia-driver-390 - third-party free
driver : nvidia-driver-430 - third-party free recommended
driver : xserver-xorg-video-nouveau - distro free builtin


2. システムソフトウェアレポジトリの一覧を更新する

	$ sudo apt-get install nvidia-settings nvidia-driver-430 nvidia-prime


3. 次のコマンドを使用して、お使いのシステムにインストールするために推奨されるNカードドライバのバージョンを確認します。

$ sudo ubuntu-drivers autoinstall



上の出力で推奨キーワードが見えますが、これはインストールする推奨のNカードドライバが "nvidia-driver-430"であることを示しています。
4. 4. インストールを推奨するバージョン(ここでは nvidia-driver-430)を選択し、次のコマンドで必要なコンポーネントをいくつかインストールします。

	~$ sudo add-apt-repository ppa:nilarimogard/webupd8
	~$ sudo apt-get update
    ~$ sudo apt-get install prime-indicator



私のお勧めは、nvidia-440バージョンのドライバをインストールし、コマンドラインに進み、タイプすることです。

~$ sudo reboot  


nvidia-440の推奨ドライバーは自動的にインストールされます。
5. デュアルグラフィックカードスイッチのインジケータを取り付ける

~$ lspci | grep VGA

00:02.0 VGA compatible controller: Intel Corporation .... (rev 09)

01:00.0 VGA compatible controller: NVIDIA Corporation .... (rev ff)


6. 再スタート

~$ lspci | grep NVI

qyh@qyh-mas:$ lspci | grep NVI
3c:00.0 3D controller: <font color="#EF2929"><b>NVI</b></font>DIA Corporation GM108M [GeForce 940MX] (rev a2)
qyh@qyh-mas: $ lspci | grep VGA
00:02.0 <font color="#EF2929"><b>VGA</b></font> compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)


新しいブート後に右上隅にグラフィックカードのインジケータが表示されます, デフォルトはNvidiaのアイコンです, Nカードが現在使用されていることを示す, このアイコンをクリックして選択 "Quick switch graphics...", 確認を押すと、自動的にデスクトップを再起動します, この時点でIntelのグラフィックカードに切り替えます, アイコンがも Intelに変更されました.

2つのグラフィックカードを切り替えてみて、次のコマンドで切り替えが成功するかどうかを確認し、そのパフォーマンスをテストすることができます。

Intelカードに切り替えた後、Nカードの電源が切れているかどうかを確認し、Nカードの末尾が(rev ff)であれば、Nカードの電源が正常に切れ、Iカードが使用中、ffで終わっていなければ、Nカードが使用中であることを確認します

~$ glxspheres64 


上記のコマンドでNVIDIAカードが表示されない場合は、以下のコマンドで直接Nカードの状態を確認することができます。

$:sudo wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run

$:sudo sh cuda_10.1.243_418.87.00_linux.run


次のコマンドを使用して、グラフィックカードの性能をテストし、数字が大きいほど、グラフィックカードの性能が良い、このコマンドは明らかにNカードがIカードよりも優れていることを示しています。

vi ~/.bashrc


CUDA 10.1のインストール

1. CUDA 10.1 を http://developer.nvidia.com/cuda-downloads上下载安装包 からインストールします。
自分でフォルダを作り、その中に上記2つのコマンドを入力すればよい。

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


2. 以下の画面が表示されるまで、表示されるプロンプトからcontinueとacceptを選択します。
すでにNvidiaのグラフィックドライバをインストールしているので、ここではドライバのインストールはせず、Driverに移動してエンターキーを押し、選択されていない"[ ]"からXを削除するだけです。それからInstallで、CUDAを呼び出すだけで、CUDAのプログラムを書いているわけではないので、Samplesもインストールしないを選択できます。
3. インストールは正常に終了しました。
4. 環境変数の追加

source ~/.bashrc


ファイルの末尾に

cd /usr/local/cuda-10.1/samples/1_Utilities/deviceQuery
sudo make
. /deviceQuery


最後にそれを動作させるために

    watch -n 1 nvidia-smi


5. 端末入力

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ 
sudo chmod a+r /usr/local/cuda/include/cudnn.h 


その結果は図のようになります。
結果 = PASS は、インストールが成功したことを意味します。

6. ターミナルでコマンドを入力し、GPUの使用率をリアルタイムで確認します。

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2


CUDNNのインストール

1. cuDNN v7.6.1 (2019年6月24日)、CUDA 10.1用をダウンロードする。
https://developer.nvidia.com/rdp/cudnn-archive
解凍したcudnnディレクトリに移動すると、cudaフォルダが表示されます。

# mv /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/ nouveau/nouveau.ko.org


インターフェイスのない環境では、Linux用のcuDNNライブラリをダウンロードしてください。
cudnnのバージョンを見る

# update-initramfs -u


<イグ
上から順に7 6 4と出力され、cudnn7.6.4となる。

注意事項
どうしてもnouveauドライバで不具合や解決策が見つからない場合
Nvidiaグラフィックカード用の公式ドライバーをインストールすると、nouveauドライバーの競合が発生します。オンラインの方法でインストールしてmodprob.d/blacklist.confの変更をいろいろ試したが、再起動してもnouveauドライバはうまく無効化されず

ようやく方法が見えてきました。

このドライバを直接削除する(バックアップアウト)

# mv /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/ nouveau/nouveau.ko.org


再読み込みする

# update-initramfs -u


再起動すると、フォントが大きくなっており、アンインストールが成功していることがわかります。