问题:cuda10.1不支持sm_80算力,所以需要重装一系列,使cuda是11.0。
环境:Centos 7 有Anaconda、python36
最好复制个环境再折腾,免得最后一团糟。
目录
一、卸载tensorflow-gpu 2.1.0
二、卸载cuda和cudnn
三、tensorflow-gpu 2.4.0 (python36)
四、cuda 11.0
五、cudnn 8.0(cudnn 8.0及以后和之前的安装略有不同)
六、遇到的问题
pip uninstall tensorflow-gpu==2.1.0
1、在/usr/local/cuda-xx/bin里面找到cuda-uninstaller文件,复制路径,然后:
sudo /usr/local/cuda-xx/bin/cuda-uninstaller
全选,确认,卸载,这个时候也是卸载了cudnn。
sudo rm -rf /usr/local/cuda-x.x #清除残留文件夹
下载地址:Links for tensorflow-gpu
教程安装:(由于缺少依赖,缺啥包补啥包,在pypi里面找缺少的包需要的版本whl文件,上传,然后一个个pip安装,安装了十个左右就可以成功安装tensorflow-gpu)
pip install xxxx.whl
下载地址:CUDA Toolkit 11.0 Update 1 Downloads | NVIDIA Developer
https://developer.download.nvidia.com/compute/cuda/11.0.1/local_installers/cuda_11.0.1_450.36.06_linux.run
1、安装(下载的是run文件)
#首先cd到放".run"文件的目录下
chmod +x cudaxxxxxx.run #下载的CUDA 文件
sudo sh cuda_xxxxxxx.run
#进入安装
accept
#下一步不安装driver和simples
Install
2、环境变量
sudo vim ~/.bashrc
#i是insert插入,可以编辑内容
#在最后写上环境变量
export PATH=/usr/local/cuda-11.0/bin:$PATH
export CUDA_HOME=/usr/local/cuda-11.0/bin:$CUDA_HOME
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
#esc退出插入, :Wq! 保存退出
source ~/.bashrc #立即生效
nvcc -V #测试是否安装成功,成功会有版本,11.0
下载地址:cuDNN Archive | NVIDIA Developer
安装:
1、下载的是压缩包,首先解压
#cp到压缩包的目录
tar -xvf xxxx.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda-xx.x/include # #如果是8以前的版本,就是cudnn.h
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-xx.x/lib64 #复制到local/cuda-xx.x/lib64下面
sudo chmod a+r /usr/local/cuda-xx.xx/include/cudnn*.h #如果是8以前的版本,就是cudnn.h
sudo chmod a+r /usr/local/cuda-xx.xx/lib64/libcudnn*
2、检查版本
# cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 这是8之前的版本的查看方式
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 #8以及之后的版本
#成功会显示#define CUDNN_MAJOR 8版本,不成功啥也没有或者报错
1、最开始的时候安装的是tensorflow-gpu 2.1.0和cuda10.1,在运行代码的时候卡了好久,结果报错说什么sm80,还运行起来了,准确率巨低,上网查了之后才发现cuda10.1不支持sm_80算力,起码得安装个cuda11.0,所以就全部重装。
2、两次遇到错误(记不清了):could not load dynamic library libcudart.so.11.0 xxxxx
一是cuda的环境变量没有配置;
二是cudnn.h在复制的时候,cudnn 8以及之后应该复制cudnn*.h,不要忘记 *,包括后面的chmod语句也是cudnn*.h
3、因为tensorflow的版本问题,代码也需要略微改动,一个是keras前面要加上tensorflow.,都变成tensorflow.keras.xxx,要不然就安装个keras2.4.3,也是在pypi下载whl文件,pip安装
还有一个错误:Debug | (‘Keyword argument not understood:‘, ‘input‘)
链接:Debug | (‘Keyword argument not understood:‘, ‘input‘)_买猫咪的小鱼干的博客-CSDN博客 (input改成inputs)
5.重新进入要设置这个才可以运行!!!!
source ~/.bashrc #立即生效
4.Failed to get convolution algorithm:nvidia-smi 看看是不是占满了,用这个杀进程
kill -9 (PID号码)