在linux上安装nvidia driver/cuda/cudnn/tensorrt工具

在linux上安装nvidia相关工具,包括驱动,cuda,cudnn,tenssort;有包管理器和本地安装两种方式。 Modified: 2023-07-11 16:37:48 Created: 2023-07-08 13:37:26 Tags: #linux # nvidia driver # cuda # cudnn # tensorrt

本文介绍 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-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 相关工具的安装,介绍了包管理器安装和离线安装两种方式。