NVIDIA グラフィックス カード ドライバーのアップデート、NVIDIA ドライバー、CUDA ツールキット、cuDNN インストール ガイド

深層学習で使用されるグラフィックス カード ドライバーのみについて説明します。
NVIDIA-driver-515.105 と cuda-11.7 を例として取り上げます

1. グラフィックカードドライバーをアンインストールします

CentOS / RHEL

方法 1: 古いバージョンのグラフィックス カード ドライバーの .run ファイルを見つけます。

sh NVIDIA-Linux-x86_64-418.126.02.run --uninstall

方法 2: すべての nvidia 関連ファイルと依存関係をクリアする

yum remove nvidia-*

さらにクリーンアップします (すべての nvidia ドライバー関連コンポーネントをクリーンアップします)。

rpm -qa|grep -i nvid|sort
yum remove kmod-nvidia-*

クリアクーダ

yum remove "*nvidia*"
yum remove "*cublas*" "cuda*"

ドライバーをアンインストールして再起動する

sudo reboot

Ubuntu LTS

カーネルシステムの違いにより、採用されているコマンドメソッドが異なることに注意してください。apt
-getはubuntuに属し、Debianのパッケージ管理ツール
yumはRedhatに属し、Centosのパッケージ管理ツールは
削除に使用するコマンドを選択するときに使用します。まず自分自身のシステムが何であるかを決定する必要があります。
代わりsudo apt-get purge nvidia-*yum remove nvidia-*

sudo apt-get purge nvidia-*
sudo apt-get --purge remove cuda

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

基本知識

グラフィックス カード、グラフィックス ドライバー、nvcc、cuda ドライバー、cudatoolkit、および cudnn とは正確には何ですか? - Zhihu
おそらくいくつかの知識が追加されます。
CUDA ドライバー: CUDA ドライバーは、GPU との通信に使用されるソフトウェア コンポーネントであり、GPU のハードウェア リソースの管理と CUDA アプリケーションの実行を担当します。
CUDA Toolkit : CUDA Toolkit は、CUDA ドライバーと CUDA ランタイム ライブラリを含む CUDA アプリケーションを開発および最適化するためのソフトウェア パッケージです。
CUDA ランタイム ライブラリ: CUDA ランタイム ライブラリは、GPU 上で CUDA アプリケーションを実行するために使用されるソフトウェア コンポーネントであり、GPU メモリを管理し、CUDA カーネルを実行するための CUDA API 関数のセットを提供します。

前提条件

gcc、g++、tar、および make がシステムにインストールされているかどうかを確認します。インストールされていない場合は、インストール用に yum ソースを手動で構成します。
グラフィックス カードのバージョンを確認するコマンド:

# 查看自己的显卡信息
lspci | grep -i nvidia

# GPU驱动版本,driverAPI(支持的最高cuda版本)
nvidia-smi

# 动态监控显卡状态
watch -t -n 1 nvidia-smi

# cuda版本,timeAPI(运行时API)
nvcc -V

グラフィックス カード ドライバー、CudaToolkit、および cudnn の対応するバージョンを照会して選択します。NVIDIA
グラフィックス カードと cuda の間の対応するバージョン関係を照会します。NVIDIA CUDA Toolkit リリース ノート
ここに画像の説明を挿入します
PyTorch と cuda の間の対応するバージョン関係をクエリする以前のPyTorch バージョン

この記事では、NVIDIA-driver-515.105 と cuda-11.7 を選択します。

NVIDIA グラフィックス カード ドライバーをインストールする (NVIDIA ドライバー)

NVIDIA ドライバーをダウンロードします。オンラインの場合は、wget を使用してダウンロードするか、コピー アドレスを使用してダウンロードしてサーバーにコピーできます。
権限を付与してインストールします。

chmod +x NVIDIA-Linux-x86_64-515.105.01.run
./NVIDIA-Linux-x86_64-515.105.01.run -no-x-check

インストールプロセス中に質問が表示される場合がありますが、No続行を選択してください。
警告が表示された場合は、インストールが完了するまで無視して続行できます。

> Install NVIDIA's 32-bit compatibillity libraries?
>                   Yes             [No]

ここに画像の説明を挿入します

問題がある場合は、ドライバーをアンインストールするか、質問 1 を参照してください。./NVIDIA-Linux-x86_64-515.105.01.run -no-x-check

グラフィックス カード ドライバーが正常にインストールされているかどうかをテストします。

nvidia-smi

CUDAをインストールする

CUDA Toolkit のダウンロード アドレスをダウンロードするか、古いバージョンを検索してCUDA Toolkit の古いバージョンのダウンロード アドレスをダウンロードします。
権限を付与してインストールします。

chmod +x cuda_11.7.1_515.65.01_linux.run
./cuda_11.7.1_515.65.01_linux.run

インストール中にドライバー(ドライブ)をダウンロードするかどうかを尋ねられますが、通常はダウンロードしないで「いいえ」を選択してください。
キャンセル
ここに画像の説明を挿入します

インストール後、以下が表示されます。

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.7/

Please make sure that
 -   PATH includes /usr/local/cuda-11.7/bin  
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.7/lib64, or, add /usr/local/cuda-11.7/lib64 to /etc/ld.so.conf and run ldconfig as root  
  
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-11.7/bin  
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-11.7/doc/pdf for detailed information on setting up CUDA.  
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 515.105 is required for CUDA 11.7 functionality to work.  
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:  
    sudo <CudaInstaller>.run -silent -driver  

環境変数を構成し、次の内容を~/.bashrcファイルに追加します。
ファイルを開く

vim ~/.bashrc

ファイルの最後に次の 2 行を追加して、cuda バージョン 11.7 をインストールされているバージョン ( など) に置き換えますcuda-12.2

export PATH=/usr/local/cuda-11.7/bin${
    
    PATH:+:${
    
    PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

次のコマンドを使用して~/.bashrc構成ファイルを更新し、構成を有効にします。

source ~/.bashrc

nvcc バージョンをテストおよびクエリして、インストールが成功したかどうかを確認します。

nvcc -V

cudnn をインストールする

cuDNN ダウンロード アドレスをダウンロードします

rpm -i cudnn-local-repo-rhel7-8.9.2.26-1.0-1.x86_64.rpm

3. Docker グラフィックス カードの適応

ソフトウェア バージョン:
Docker: Docker バージョン 20.10.9、ビルド c2ea9bc
CUDA: NVIDIA-SMI 515.105.01 ドライバー バージョン: 515.105.01 CUDA バージョン: 11.7
システム: CentOS-7

バージョン 19.03 以降、docker はグラフィック カードをサポートするために nvidia-docker を個別にインストールする必要がなくなりました。docker と CUDA 環境を構成するだけで済みます。現在、グラフィック カードの呼び出しをサポートする docker をサポートするために、NVIDIA コンテナーをインストールする新しい方法が使用されています。
Nvidia-Docker のインストールには、Docker-CE と NVIDIA Container Toolkit の 2 つの部分のインストールが必要です。つまり、Docker-CE は必要なくなります。

NVIDIA コンテナ ツールキット アーキテクチャ

NVIDIA の公式 Web サイトのアーキテクチャの概要は、 Chrome に組み込まれている Web ページ トランスレータを使用してじっくり読むことができますが、この記事では簡単に紹介します。
NVIDIA コンテナの主なコンポーネントにはインストール時に事前にインストールする必要がある 、 が含まれます。nvidia-container-runtimeバージョン3.6.0 以降、ランタイム パッケージはパッケージにのみ依存するパッケージになります (nvidia CUDA ツールキットではなくコンテナ ツールキットを指します)。公式ウェブサイトでも指摘されていますが、一般的な用途であれば、ほとんどのニーズを満たすことができます。nvidia-container-toolkitlibnvidia-containerCUDA驱动
toolkitnvidia-container-toolkit
ここに画像の説明を挿入します

パッケージの依存関係をインストールする

公式サイトのドキュメント依存関係図は以下の通りです。

├─ nvidia-container-toolkit (version)
│    ├─ libnvidia-container-tools (>= version)
│    └─ nvidia-container-toolkit-base (version)
│
├─ libnvidia-container-tools (version)
│    └─ libnvidia-container1 (>= version)
└─ libnvidia-container1 (version)

nvidia-container-toolkit-base は nvidia-container-toolkit に含まれるようになり、nvidia-container-runtime をインストールする必要がなくなりました。(以前の nvidia-docker では、さらに 2 つのパッケージ、nvidia-container-runtime と nvidia-docker2 のインストールが必要でした。)

上記の依存関係に従って、3 つのソフトウェア パッケージを次の順序でインストールします。

libnvidia-container1 -> libnvidia-container-tools -> nvidia-container-toolkit

オフラインでのダウンロードとインストール

オフラインでインストールするには、ここからインストール パッケージをダウンロードします。
公式 Web サイトには GitHub リンクが用意されています。
1.nvidia-container-toolkitインストール パッケージのダウンロード アドレス
システム バージョンに対応するインストール パッケージのダウンロードを見つけます。
たとえば、私が使用している CentOS7 システムでは、nvidia-container-runtime/stable/centos7/x86_64/以下のディレクトリにnvidia-container-toolkit-1.5.1-2.x86_64.rpmインストール パッケージをダウンロードできます。

2.システムのバージョンに対応するインストール パッケージのダウンロード アドレスをlibnvidia-container1見つけます。同様に、私が使用している CentOS7 システムでは、以下のディレクトリからインストール パッケージをダウンロードできます(ファイルをクリックすると、右上隅に RAW ファイルをダウンロード ボタンがあります。応答がない場合は、ネットワークが正常に動作しているかどうかを確認してください)。科学的につながっている)libnvidia-container-tools

nvidia-container-runtime/stable/centos7/x86_64/nvidia-container-toolkit-1.5.1-2.x86_64.rpm

3 つのパッケージをすべてダウンロードしたら、それらをシステムにインポートし、対応するフォルダーにインストールすることを選択します。
rpm パッケージのインストール方法、インストールフォルダー内のすべての rpm インストール パッケージ

rpm -ivh *.rpm

debパッケージのインストール方法

dpkg -i *.deb

インストール後、docker サービスを再起動します。

systemctl restart docker
systemctl status docker

成功!--gpus allコンテナを起動して、コンテナが GPU を正常に使用するかどうかをテストできます。

4. テスト

docker run --gpus allコンテナを起動し、コンテナ内に入り、GPU が正常に使用されているかどうかをテストするために使用します。
Python でのチェックは、GPU が利用可能かどうかを確認するために最も一般的に使用される方法でもあります (ただし、実際には使用されない可能性があります)。

import torch
torch.cuda.is_available()

# setting device on GPU if available, else CPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print('Using device:', device)
print()

#Additional Info when using cuda
if device.type == 'cuda':
    print(torch.cuda.get_device_name(0))
    print('Memory Usage:')
    print('Allocated:', round(torch.cuda.memory_allocated(0)/1024**3,1), 'GB')
    print('Cached:   ', round(torch.cuda.memory_reserved(0)/1024**3,1), 'GB')

5. エラーの概要

1.エラー: X サーバーを実行しているようです。インストールする前に X を終了してください。詳細については、…

このエラーは、NVIDA ドライバーのインストール時に発生します。主に、リモート コントロール lightgm のインストールにより X サーバーが起動することが原因です。
解決:

sudo chmod +x NVIDIA-Linux-X86_64-515.105.run
sudo ./NVIDIA-Linux-X86_64-515.105.run -no-x-check

-no-x-checkXserverにチェックを入れずに最後にコマンドを追加すればインストール成功です!

その他のパラメータ:
--no-opengl-files: ドライバー ファイルのみがインストールされ、OpenGL ファイルはインストールされないことを示します。このパラメータは省略できません。省略しないと、ログイン インターフェイスで無限ループが発生します。英語では、一般に「ログイン ループ」または「ログインのスタック」と呼ばれます。
--no-x-check: ドライバーのインストール時に X サービスがチェックされず、必須ではないことを示します。
--no-nouveau-check: ドライバーのインストール時に nouveau がチェックされないことを示します (必須ではありません)。
-Z、--disable-nouveau: nouveau を無効にします。nouveau は以前に手動で無効にされているため、このパラメータは必要ありません。
-A: より高度なオプションを参照してください。

方法 2: 実行レベルをテキスト モードに変更する: nvidia ドライバーをアップグレードする - EchoZQN - Blog Park

2.デーモンからのエラー応答: 機能: [[gpu]] のデバイス ドライバー「」を選択できませんでした

Nvidia Docker のインストール後、イメージを使用してコンテナーを作成するとエラーが発生します。エラー メッセージは次のとおりです。

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

インストールする必要があります: NVIDIA Container Toolkit
サーバー nvidia ドライバーがインストールされており、GPU の使用に問題はありませんが、Docker が GPU を使用できない場合は、NVIDIA Container Toolkit がインストールされているかどうかを確認する必要があります。NVIDIA Container Toolkit を使用すると、ユーザーは GPU で高速化された Docker コンテナー (Docker バージョン 19 以降、18 より前は nvidia-docker コマンドを使用) を構築して実行できるため、これをインストールした後でのみ Docker 内で GPU を使用できます。
お使いのシステムに応じて、公式 Web サイトで対応するインストール コマンドを見つけてください。
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
公式 Web サイトは非常に詳しく説明されているので、手順に従ってください。
第3章はとても詳しく書かれています

3.libnvidia-container1-1.13.5-1.x86_64 のインストールからのファイル /usr/lib64/libnvidia-container.so.1 は、ファイル形式パッケージ libnvidia-container1-1.0.0-0.1.beta.1.x86_64 と競合します。

このエラーは、既にインストールされているパッケージ「libnvidia-container1-1.0.0-0.1.beta.1.x86_64」内のファイル「/usr/lib64/libnvidia-container.so.1」が、これからインストールするパッケージと異なることを意味します。 「libnvidia-container1-1.13.5-1.x86_64 内の同じ名前のファイルと競合します。」
これは、パッケージ マネージャーが、既存のパッケージ内のファイルと競合するファイルを含む新しいバージョンのパッケージをシステムにインストールしようとしたことが原因である可能性があります。この競合を解決する 1 つの方法は、古いバージョンのパッケージをアンインストールするか、競合するファイルを更新または置換して更新することです。
次のコマンドを使用して競合の解決を試みます。

sudo yum remove libnvidia-container1-1.0.0-0.1.beta.1.x86_64

4.エラー: Nouveau カーネル ドライバーは現在システムで使用されています。このドライバーは NVIDIA ドライバーと互換性がないため、続行する前に無効にする必要があります。NVIDIA ドライバーの README および Linux ディストリビューションのドキュメントを参照してください。

この問題は、現在 Nouveau グラフィックス ドライバーを使用しているシステムが原因で発生します。NVIDIA ドライバーは Nouveau ドライバーと互換性がありません。この問題を解決するには、Nouveau ドライバーを無効にする必要があります。

方法 1: ブラックリストに登録して Nouveau ドライバーを無効にする
1) /usr/lib/modprobe.d/dist-blacklist.conf に 2 行を追加します。

blacklist nouveau
options nouveau modeset=0

2) 現在のイメージのバックアップを作成します。

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

3) 新しい画像を作成する

dracut /boot/initramfs-$(uname -r).img $(uname -r)

4) 再起動

sudo init 6

方法 2: パラメーターを追加する
パラメーターを追加する--no-opengl-files

./NVIDIA-Linux-x86_64-515.105.01.run --no-opengl-files

5.docker: デーモンからのエラー応答: OCI ランタイムの作成に失敗しました:container_linux.go:380: コンテナープロセスの開始が原因: process_linux.go:545: コンテナーの初期化が発生しました: フック #0 の実行中:: フック実行中のエラー: 終了ステータス 1、標準出力: 、stderr: nvidia-container-cli: 初期化エラー: ドライバー rpc エラー: タイムアウト: 不明。

--gpus all非常に奇妙なエラーです。コンテナの起動時にグラフィックス カードをロードするとエラーが報告されます。このリンクで答えが得られます。その理由は、グラフィックス カード リソースが永続モードをオンにしていないためです。

多くの情報を調べた結果、インターネット上の優れた専門家が NVIDIA に相談したことがわかりました。NVIDIA の説明は次のとおりでした。「グラフィック カード リソースが永続モードをオンにしていません。」次のコマンドを入力して問題を解決してください。

nvidia-smi -pm ENABLED

上記のコマンドで Enter キーを押した後にプロンプ​​トが表示された場合は、プロンプトに従ってインストールし、インストールが完了した後、上記のコマンドを再度実行すれば問題ありません。

参考内容

NVIDIA ドライバーのダウンロード アドレス.cn
NVIDIA ドライバーのダウンロード アドレス.com
NVIDIA ドライバーと CUDA Toolkit の互換性のあるバージョンと最小バージョン要件
CUDA Toolkit のダウンロード アドレス
CUDA Toolkit の古いバージョンのダウンロード アドレス
CUDA Toolkit 11.7.1 のダウンロード アドレス
cuDNN のダウンロード アドレス

CentOS.7 のアンインストールとインストール Nvidia Driver_centos nvidia driver のアンインストール_Aaron_Qin Feng のブログ - CSDN ブログ
Linux Centos7 のインストールと更新 GPU ドライバーと cuda:_linux upgrade cuda version_Big data lsy のブログ - CSDN ブログの
アップグレード nvidia driver-EchoZQN -
How to downgrade the cuda version -
ubuntu16.04+nvidia396.37+cuda9.2+cudnn7.1.4_tudou880306 のブログを構築するための Python テクノロジー ステーション openpose 環境 - CSDN ブログ

Linux でバージョン情報を確認する方法 - linux の運用と保守 - PHP 中国語 Web サイト
cuda、cudnn、cudatoolkit 全バージョン ダウンロード URL_cudnn download_QT-Smile のブログ - CSDN ブログ
python グラフィックス カード情報を確認する python GPU を確認する
Docker オフライン インストール Nvidia-container-toolkit GPU の実装コンテナ内での呼び出し_NekoTom のブログ - CSDN ブログ

docker: デーモンからのエラー応答: 機能を持つデバイス ドライバー "" を選択できませんでした: [[gpu]]エラー報告_–gpus all エラー報告_毎日横になりたいニャーのブログ-CSDN BlogError: x サーバーを実行しているように見えます
。インストールする前に x を終了してください。詳細については、_エラー:プロセス中に問題が発生しているようです_ソフトウェア アプリケーション_購入する価値があるものは何ですか?

おすすめ

転載: blog.csdn.net/aiaidexiaji/article/details/131973342