知己知彼百战不殆,我们在开始这些重要程序软件的安装之前,一定要对自己的电脑有所了解。知道自己电脑,服务器的配置来选择安装程序软件的版本
uname -m && cat /etc/*release
知晓操作系统的信息,这次使用的是–64位的Ubuntu 18.04.6系统
lspci | grep -i nvidia
查看可用的nvidia设备
由于驱动问题无法显示显卡的具体型号,在下面的网址输入2216,可以看到显卡型号是GeForce RTX 3080。
点这里可以查询
uname -r
linux内核版本----5.4.0-84-generic
sudo cp /etc/apt/sources.list /etc/apt/sources_back
sudo vim /etc/apt/sources.list
替换apt 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ bionic stable
# deb-src [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ bionic stable
替换apt 中科大
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
替换apt
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb [arch=amd64] https://apt.releases.hashicorp.com bionic main
# deb-src [arch=amd64] https://apt.releases.hashicorp.com bionic main
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
然后执行
sudo apt-get update
禁用nouveau
安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
编辑文件blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
之后需要重新启动
启动后,验证nouveau是否已禁用
lsmod | grep nouveau
安装前先进行GPU检查,通过命令nvidia-smi
这时就出现问题了,一直显示no devices were found,或者出现其他的报错。这里我是重新安装了nvidia驱动。
sudo apt-get purge nvidia*
下面这个命令有时候不用也可以#这个命令有时候不用也可以
sudo apt-get autoremove
sudo ubuntu-drivers devices
sudo apt-get install nvidia-driver-460 nvidia-settings nvidia-prime
我是想安装470的,他一直报错E: 无法定位软件包:nvidia-470,然后我又试了一下460成功了(之前也是460)。
这个时候输入nvidia-smi 还是没有输出,就需要重新启动一下服务器了。
sudo reboot
nvidia-smi查出来的CUDA Version显示是11.2,之后安装了11.1也没有改变,可能是其实是因为CUDA 有两种API,分别是 运行时 API 和 驱动API,即所谓的 Runtime API 与 Driver API。nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API的型号,这里是 11.0。而nvcc的结果是对应 CUDA Runtime API。
进入官网 https://developer.nvidia.com/cuda-downloads ,选择对应的版本后,下面会出现一行链接,进入这个链接下载runfile,大约2.5G,得到文件cuda_11.1.0_455.23.05_linux.run
输入最下面的那两行命令,$ 。
终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。
Ubuntu的nouveau禁用方法:
在/etc/modprobe.d中创建文件blacklist-nouveau.conf 输入命令:$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf 利用编辑器编辑和保存文件)
在文件中输入一下内容:blacklist nouveau options
nouveau modeset=0执行: $ sudo update-initramfs -u
再执行: $ lsmod | grep nouveau 若无内容输出,则禁用成功,若仍有内容输出,请检查操作,并重复上述操作。我执行以上操作后,还是有输出,reboot重启后,无输出了。
到下载cuda的位置,执行安装命令。这里图的版本不一样是因为我已经安装过了,图是在另外一个服务器上截的其他都是一样的。
sudo sh cuda_***_linux.run
由于我之前已经安装了Nvidia的显卡驱动,这里不安装driver,那么只需要移动到Driver,按enter键,将"[]"中的X去掉即是不选择.
sudo gedit ~/.bashrc
然后会弹出来一个文档,在这个文档的末尾添加下面三句话。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
export PATH=$PATH:/usr/local/cuda-11.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.1
最后使其生效
source ~/.bashrc
输入nvcc -V,查看CUDA版本信息
nvcc -V
watch -n 1 nvidia-smi #实时查看GPU的使用情况
就是需要注册一个账号:https://developer.nvidia.com/rdp/cudnn-archive
根据官网,和CUDA11.1配套的是CUDNN8.0.4
下载下来的是一个tar文件,那么首先需要解压这个文件,解压之后得到一个cuda文件夹,里面有lib64、include还有一个不知道什么用的文档
tar -xvf cudnn-***.tgz
将解压缩的文件放入对应cuda项目下,并设上只读权限。
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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
查看cudnn版本信息:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #应该不可用
应该会出现安装的版本号,但是我在运行时并没有输出,查看了include文件里面的文件后,发现新版本的版本信息放在了cudnn_version.h,可以把1.将cudnn_version.h文件放到usr/local/cuda/include目录下 .
2.在执行下面面命令.
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
至于安装docker,官方文档已经很完善了。。。
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:4 http://repo.mysql.com/apt/ubuntu bionic InRelease [19.4 kB]
Err:4 http://repo.mysql.com/apt/ubuntu bionic InRelease
The following signatures were invalid: EXPKEYSIG 8C718D3B5072E1F5 MySQL Release Engineering <mysql-build@oss.oracle.com>
Hit:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:2 https://www.rabbitmq.com/debian testing InRelease
Hit:7 http://archive.ubuntu.com/ubuntu bionic-security InRelease
Reading package lists... Done
W: GPG error: http://repo.mysql.com/apt/ubuntu bionic InRelease: The following signatures were invalid: EXPKEYSIG 8C718D3B5072E1F5 MySQL Release Engineering <mysql-build@oss.oracle.com>
E: The repository 'http://repo.mysql.com/apt/ubuntu bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
对策
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C718D3B5072E1F5
在Ubuntu20.04 18.04下,按nvidia-docker官方安装指南安装nvidia-docker时,遇到了如标题所示的两个问题,所以在安装时apt无法定位nvidia-docker2。
gpg: 找不到有效的 OpenPGP (源于指令:curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -)
E: 无法定位软件包 nvidia-docker2 (源于指令:curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list)
分析:
这两个问题都在于无法访问nvidia.github.io这个网页,一开始我以为是科学上网才能解决,后面发现不是,应该是ip地址的问题。
解决办法:
打开ipaddress,搜索查找nvidia.github.io,即可得到对应的ip地址:
# nvidia.github.io
185.199.108.153 nvidia.github.io
185.199.109.153 nvidia.github.io
185.199.110.153 nvidia.github.io
185.199.111.153 nvidia.github.io
然后将上面的信息写入host文件即可:可在命令行输入sudo vi /etc/hosts,然后将上面的内容复制在文件下方,保存退出即可。
这时候重新打开终端,再按安装指南一步一步操作的时候,就不会出现上面的问题了。
https://nvidia.github.io/nvidia-docker/ubuntu20.04/nvidia-docker.list 的内容:
deb https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/$(ARCH) /
#deb https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/$(ARCH) /
#deb https://nvidia.github.io/nvidia-container-runtime/experimental/ubuntu18.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-docker/ubuntu18.04/$(ARCH) /
其实安装还是很简单的,难的是中途的各种报错,版本不匹配等等。几乎所有的报错之前的大佬们都经历过了,百度都能找到解决方案。