最近公司买了台RTX5000的服务器,裸机一台,需要安装显卡驱动,CUDA,CUDNN,tensorflow-gpu-1.8, 以前没有装过,导致安装过程中遇到好多坑,最初安装随便搜的个教程安装完后,发现RTX5000自带的驱动高,CUDA是11.2, 以为安不了CUDA9.0,搜索了好久以为只能自己下载tensorflow-1.8的包编译,后边又搜寻了挺多博客,发现一开始就陷入了误区,所以特此记录一下
环境配置如下:
Linux:ubuntu-16.0.4
CUDA: 9.0
Driver Version: 460.39
首先明确以下几个问题:
-
不同型号的显卡有其匹配的驱动,这个是固定的,显卡和驱动的匹配关系可以通过Download Drivers | NVIDIA 该网站查看,按显卡的具体型号去查询驱动
-
CUDA驱动版本是向下兼容的,所以只要自己的驱动版本很高,CUDA对应的任何低版本或者高版本是都可以安装的,例如如下CUDA和Driver Version的对应关系中,当你Driver Version是455.23时,CUDA9 - CUDA11.1之间的版本是都可以安装的
具体的安装步骤:
-
Linux环境准备
因为我目的是安装tensorflow-gpu-1.8(老版本项目需要), 所以Linux服务器系统只能选择ubuntu16.04或者17.04
2. 安装显卡驱动
下载链接:NVIDIA 驱动程序下载
填写合适的信息,然后,点击搜索,接着点击下图的Download,在新页面右键复制下载链接
服务器上使用wget命令下载驱动,然后参考链接:Ubuntu16.04安装NVIDIA驱动+CUDA9.0+cuDNN7.0_mtllyb的博客-CSDN博客, 安装驱动,安装中可能遇到一些nouveau相关的报错,参考链接解决即可
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/470.86/NVIDIA-Linux-x86_64-470.86.run
chmod +x NVIDIA-Linux-x86_64-470.86.run
sh NVIDIA-Linux-x86_64-470.86.run
-
安装完这个驱动后, 我试了下,其实在linux是可以直接使用GPU的,但是CUDA版本是这个驱动自带的11.2,所以还需要再单独安装CUDA 9.0, 这个时候/usr/local下是没有cuda-9.0文件夹的,所以按有些安装cudnn的博客安装cudnn的时候会报错,执行第三步:安装CUDA后, 可以发现/usr/local文件夹生成了
-
安装CUDA
使用如下链接下载CUDA Toolkit:
CUDA9.0 Toolkit 下载链接:CUDA Toolkit 9.0 Downloads | NVIDIA Developer
其它CUDA Toolkit 版本下载地址:CUDA Toolkit Archive | NVIDIA Developer
下载完成后使用 sudo sh cuda_9.0.176_384.81_linux.run 命令安装即可,过程中要输入一些指令,参考(Ubuntu16.04安装NVIDIA驱动+CUDA9.0+cuDNN7.0_mtllyb的博客-CSDN博客)。
安装完CUDA后,tensorflow1.8可直接使用GPU了,但是遇到个 failed to run cuBLAS routine cublasSgemm_v2的报错,参考(解决 failed to run cuBLAS routine cublasSgemm_v2: CUBLAS_STATUS_EXECUTION_FAILED_厚积而薄发-程序员宝宝 - 程序员宝宝)多按了个cuda9.0的升级包解决了
4.CONDA环境指定CUDA
参考链接(【引路帖】【conda虚拟环境】【cuda】多个cuda版本路径切换_一苇以航丶的博客-程序员宅基地 - 程序员宅基地),为虚拟环境指定具体的CUDA,或者配置CUDA全局环境变量应该也可以,没尝试
5..安装CUDNN
CUDNN下载地址: cuDNN Archive | NVIDIA Developer
# 登陆后, 下载指定版本的cudnn工具包, 解压完后, 执行如下指令
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*
一些实用的命令:
-
Tensorflow中查看gpu是否可用
import tensorflow as tf tf.test.is_gpu_available()
-
实时监控显卡使用情况
watch --color -n1 gpustat -cpu --color watch -n 1 nvidia-smi
-
查看NVRM版本()
cat /proc/driver/nvidia/version
-
查看pytorch当前使用的cuda, cudnn 版本
import torch
torch.version.cuda
torch.version # PyTorch version
torch.version.cuda # Corresponding CUDA version
torch.backends.cudnn.version() # Corresponding cuDNN version
torch.cuda.get_device_name(0) # GPU type
参考链接:
服务器安装NVIDIA显卡驱动:服务器安装nvidia显卡驱动 - 简书https://www.jianshu.com/p/6af89da53455
Ubuntu16.04安装NVIDIA驱动+CUDA9.0+cuDNN7.0:Ubuntu16.04安装NVIDIA驱动+CUDA9.0+cuDNN7.0_mtllyb的博客-CSDN博客https://blog.csdn.net/mtllyb/article/details/79505012
CUDA Driver 对应关系: Pytorch版本、CUDA版本与显卡驱动版本的对应关系_kelly若的博客-CSDN博客https://blog.csdn.net/kellyroslyn/article/details/109668001
关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题:关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题_小肥柴不是小废柴的博客-CSDN博客_cuda版本向下兼容吗https://blog.csdn.net/xs11222211/article/details/84782046
Tensorflow中查看gpu是否可用:Tensorflow中查看gpu是否可用_sunshine2124ch的博客-CSDN博客https://blog.csdn.net/sunshine2124ch/article/details/103127551
conda虚拟环境 cuda多个cuda版本路径切换:【引路帖】【conda虚拟环境】【cuda】多个cuda版本路径切换_一苇以航丶的博客-程序员宅基地 - 程序员宅基地https://cxyzjd.com/article/Mr__George/106984574
Pytorch 使用不同版本的 cuda:Pytorch 使用不同版本的 cuda - yhjoker - 博客园https://www.cnblogs.com/yhjoker/p/10972795.html
linux下cuda安装:Linux 下的 CUDA 安装和使用指南 - 知乎https://zhuanlan.zhihu.com/p/79059379
ubuntu 16.04 nvidai cuda cudnn 安装: ubuntu 16.04 nvidai cuda cudnn 安装,正确的教程, 失败的经历_longteng_guo的博客-程序员宝宝_ubuntu安装cudnn失败 - 程序员宝宝https://www.cxybb.com/article/weixin_44010117/104639125