tensorflow GPU训练环境布置
- 一、显卡驱动安装
- 1.1 如何处理**Failed to initialize NVML: Driver/library version mismatch的问题**
- 1.2 卸载旧的版本
- 1.3 驱动安装
- 1.3.1 利用apt 安装
- 1.3.2 手动安装
- 二、安装CUDA
- 2.1 确定CUDA版本
- 2.2 下载文件
- 1. 找匹配版本
- 2. 选合适的平台
- 2.3 安装文件
- 2.4 验证
- 2.4.1 下载cuda samples
- 2.4.2 编译
- 3.安装 cudnn
- 3.1 选择版本
- 3.2 下载
- 3.3 安装
- 3.4 验证
- 4.tensorflow测试
- 5 大功告成!!!!!!!!!!!!!!!!!!!!!!!!
一、显卡驱动安装
1.1 如何处理Failed to initialize NVML: Driver/library version mismatch的问题
运行如下命令:
nvidia-smi
在服务器上,刚开始测试的时候,驱动的时候,会报如下错误:
Failed to initialize NVML: Driver/library version mismatch
根据网上方法,尝试了各种:如重启、配置环境变量、卸载重新安装等。都没有起作用。根本原因在于:
我的服务器虚拟的,而且我无法控制宿主机
此时,需要查看是那两个版本不匹配:
dmseg |tail -n 10 #后面这个数字可以根据机器上的错误消息的大小进行调整。我在写这篇文章的时候,由于错误已经被处理了,消息内容很难找,我直接加到1000了
会显示如下的内容:
可以看到,我的当前版本内核中的驱动版是525.85.12,而运行在用户太的版是525.105.17
此时,网上有说直接让自动装,需要看当前最新的安装版本是不是与内核版一致。如果不一致,则需要将内核中的卸载掉。而我这个服务器是利用宿主直通的。所以没法卸载。我怀疑是宿主机的版本与内核的一致。而我无法修改宿主机的。所以只能让我能安装的部分与内核保持一致。
1.2 卸载旧的版本
卸载可以使用如下命令:
sudo apt purge nvidia*
卸载后,可以查看当前 apt支持的驱动版本是什么?
1.3 驱动安装
1.3.1 利用apt 安装
如果与你的内核一致或你能控制内核的版本,则可以直接安装,请跳到下节,安装CUDA部分
如果不一致。那么请继续往下看,阅读完本节。
查看可安装版本:
sudo apt list |grep nvidia-driver*
显示内容如下:
在最新的更新中,并没有我需要的版本,其中最后的一行,
在确定无法利用apt
` 安装的情况下,可以利用下面的方法来找合适的驱动版本。
1.3.2 手动安装
驱动查找地址:地址
下载完成之后,使用dpkg 进行安装:
sudo dpkg -i nvidia-driver-local-repo-ubuntu1804-525.85.12_1.0-1_amd64.deb
提示信息如下:
sudo cp /var/nvidia-driver-local-repo-ubuntu1804-525.85.12/nvidia-driver-local-CDA22FB5-keyring.gpg /usr/share/keyrings/
sudo apt update
此时,在apt中还看不到其更新信息,需要在 `/etc/apt/source.list.d/ `下面添加一个list文件:
再进行更新,就会看到以下信息:
sudo apt udpate
查找驱动:
sudo apt list |grep nvidia-driver
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BfjSQNkx-1683716939458)(https://pic2.imgdb.cn/item/645b6c9c0d2dde57778772ba.jpg)]
可以看到,在上图中,出现了想要安装的驱动。可以直接手动安装:
sudo apt install nvidia-driver-525 # 或者
sudo apt install nvidia-driver-local-repo-ubuntu1804-525.85.12
安装完成后,就不要再更新了,如果升级了,会导致开始进的问题。
此时,驱动已经安装完成了。
nvidia-smi
二、安装CUDA
2.1 确定CUDA版本
安装的CUDA要tensorflow能支持的版本。这一点很重要。如果你安装最新或最高支持的版本,但tensorflow不支持,也没啥用。
可以在以下的地址查看支持信息:地址
部分截图如下:
可以看见:最新版本的tensorflow-2.12.0也就最高支持11.8,所以即使你安装了cuda12.0也没法利用。
2.2 下载文件
下载地址
1. 找匹配版本
2. 选合适的平台
2.3 安装文件
利用给出的命令直接安装。如果之前安装过,就直接清理。
sudo apt purge cuda*
2.4 验证
2.4.1 下载cuda samples
地址
wget https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v11.8.tar.gz
tar -zxvf v11.8.tar.gz
cd Samples/1_Utilities/deviceQuery/
ls
2.4.2 编译
make
./deviceQuery
3.安装 cudnn
3.1 选择版本
同cuda,选择tensorflow支持的版本:8.6
3.2 下载
地址
需要注册一下,注册后,下载页面如下:
3.3 安装
下载完成后,直接利用dpkg
进行安装
sudo dpkg -i cudnn-local-repo-ubuntu1804-8.9.1.23_1.0-1_amd64.deb
这个会自动提示复制签名信息的,我已经安装过了,所以不再提示了。操作如下:
sudo cp /var/cuda-repo-ubuntu1804-11-8-local/cuda-7D65C20C-keyring.gpg /usr/share/keyrings/
更新:
sudo apt update
这三个挨个安装。
3.4 验证
cp -r /usr/src/cudnn_samples_v8 ~/src/
cd src/cudnn_samples_v8/mnistCUDNN/
make
./mnistCUDNN
上面只是部分截图信息,如果能运行,环境基本部署成功了。
4.tensorflow测试
import tensorflow as tf
tf.test.is_gpu_available()