本文介紹 nvidia 相關工具的安裝,包括: driver/cuda/cudnn/tensorrt。通常有兩種方式安裝:

  • 在網路比較順暢的地方可以使用包管理,可以避免很多環境變數的手工設定
  • 而在網路不通暢的地方則要提前下載安裝包後,手工安裝,需要進行一些環境變數的設定工作;對於離線安裝,需要先準備一個通暢的機器(如 vps)提前下載好相關安裝包

本文會兩種方式都介紹,實際按照其中一種操作就行。本文執行的硬體是 GTX 1030,linux 發行版是 RedHat 9.2。

1. nvidia driver 安裝

driver 是最基本的。沒有 driver,作業系統沒有辦法正確對 gpu 進行操作。

1.1 yum/dnf 安裝 driver

參考了nvidia driver 安裝教程,這裡記錄一下安裝指令碼。


sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y

# For RedHat 9 only
subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms
subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms

sudo rpm --erase gpg-pubkey-7fa2af80*
sudo dnf clean expire-cache

sudo dnf module install nvidia-driver:latest-dkms

安裝完成之後執行nvidia-sminvidia_smi

1.2 driver 離線安裝

如果網路並不太通暢,則需要提前下載 nvidia 顯示卡的 driver,到下載網站挑選合適的驅動檔案。

select_nvidia_driver

下載完成之後得到這麼一個檔案NVIDIA-Linux-x86_64-535.54.03.run

chmod +x NVIDIA-Linux-x86_64-535.54.03.run
sudo ./NVIDIA-Linux-x86_64-535.54.03.run

2. cuda 安裝

2.1 dnf/yum 安裝 cuda

安裝教程在這裡。首先源設定:

# sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-$distro.repo # `$distor/$arch = rhel9/x86_64`
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo

正式安裝:

sudo dnf install cuda -y

安裝完成後設定環境變數:

echo 'export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}}' >> ~/.zshrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.zshrc

機器用的是 zsh,所以寫入了~/.zshrc,如果你用的是 bash,則要寫入~/.bashrc。寫入之後更新環境變數:source ~/.zshrc,檢視nvcc狀態:

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jun_13_19:16:58_PDT_2023
Cuda compilation tools, release 12.2, V12.2.91
Build cuda_12.2.r12.2/compiler.32965470_0

2.1.2 離線安裝 cuda

這裡下載安裝包,按照作業系統等進行選擇:

cuda_download

選完之後,下面會自動出一個執行的程式碼:

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run

在安裝的過程中,只選擇 toolkit,不要選擇 example。

1.3 cudnn 安裝

1.3.1 yum/dnf 安裝 cudnn

cudnn 安裝教程,這裡記述一下要點:

OS=rhel9
sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.repo

sudo yum clean all

cudnn_version=8.9.2.*
cuda_version=12.2
sudo yum install libcudnn8-${cudnn_version}-1.${cuda_version}
sudo yum install libcudnn8-devel-${cudnn_version}-1.${cuda_version}
验证cudnn安装是否成功 为了验证安装是否成功,这里安装cudnn-example来测试:
sudo yum install libcudnn8-samples-${cudnn_version}-1.${cuda_version}

編譯 minicudnn

cp -r /usr/src/cudnn_samples_v8/ $HOME
cd  $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN

如果編譯成功,則會有:

Test passed!

1.3.2 離線安裝 cudnn

需要到這裡下載 cudnn,選擇對應的版本。這裡選擇: cudnn_download

下載完成之後解壓

tar -xvf cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz

# copy to place
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

1.4 安裝 tensorrt

tensorrt 是一個執行時的庫。需要先安裝 cudnn。

1.4.1 yum/dnf 安裝 tensorrt

找到tensorrt 安裝教程,搜尋 yum 或者 dnf,定位 redhat 安裝部分。

tensorrt 需要下載一個 repo 的 rpm,這個需要註冊一個賬戶。這裡找到登陸,走註冊流程:

register_nvidia_account

有賬號後登陸下載:

os="rhel9"
tag="8.9.2-cuda-12.2"
sudo rpm -Uvh nv-tensorrt-local-repo-${os}-${tag}-1.0-1.x86_64.rpm
sudo yum clean expire-cache

或者直接用 wget 下載:

wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/local_repos/nv-tensorrt-local-repo-rhel8-8.6.1-cuda-12.0-1.0-1.x86_64.rpm

sudo dnf install ./nv-tensorrt-local-repo-rhel8-8.6.1-cuda-12.0-1.0-1.x86_64.rpm

安裝好 repo 之後,需要執行

sudo dnf install tensorrt -y

此時就會自動安裝 tensorrt 相關包。

1.4.2 離線安裝

參考這裡

總結

本文介紹了 nvidia 相關工具的安裝,介紹了包管理器安裝和離線安裝兩種方式。