【tf.keras】Linux 非 root 用户安装 CUDA 和 cuDNN
推荐使用 conda 安装 TensorFlow,安装 GPU 版本的 TensorFlow 时会同时安装对应的 CUDA 和 cuDNN。下面的问题也就不会产生。
TensorFlow 2.0 for Linux 使用时报错:(cuDNN 版本低了)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:319] Loaded runtime CuDNN library: 7.4.1 but source was compiled with: 7.6.0. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library. If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.
...
tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]
解决方法:升级 cuDNN。TF 2.0 和 CUDA 10.0、cuDNN 7.6.4 是匹配的。(如果是用 conda,那么以下都不需要,直接删除 cudnn 再安装对应版本)
root 用户
Linux 服务器的用户如果有 root 权限,那直接删除原来的 cuDNN,然后再重装新版本。
删除已有的 cuDNN:
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
进入 cuDNN 解压后的 cuda 文件夹,安装新版本:
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
建立软连接:(以 7.6.4 版本为例)
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.6.4
sudo ln -sf libcudnn.so.7.6.4 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
非 root 用户
如果没有 root 权限,一种做法是自己重新装 CUDA 和 cuDNN。
在用户目录下安装 CUDA
从官网 https://developer.nvidia.com/cuda-10.0-download-archive 下载 ubuntu 使用的 cuda_10.0.130_410.48_linux.run,安装指令 sh cuda_10.0.130_410.48_linux.run,之后:
# 按q退出协议说明.
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: no
Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: yes
# 改成自己的用户名
Enter Toolkit Location
[ default is /usr/local/cuda-10.0 ]: /home/wuliyttaotao/cuda-10.0
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n
Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: y
# 使用默认路径,回车
Enter CUDA Samples Location
[ default is /home/wuliyttaotao ]:
配置 cuDNN
下载完 cuDNN,可能发现后缀是 .solitairetheme8,直接将这个后缀改成 .tgz 即可解压。
复制 cuDNN 文件到 CUDA 安装目录:(cuDNN 解压到 ~/cuda 目录了,~/cuda-10.0 为自己设定的 CUDA 安装目录,~ 代表 /home/wuliyttaotao)
cp ~/cuda/include/cudnn.h ~/cuda-10.0/include
cp ~/cuda/lib64/lib* ~/cuda-10.0/lib64
chmod a+r ~/cuda-10.0/include/cudnn.h ~/cuda-10.0/lib64/libcudnn*
建立软连接:
cd ~/cuda-10.0/lib64
ln -sf libcudnn.so.7.6.4 libcudnn.so.7
ln -sf libcudnn.so.7 libcudnn.so
ldconfig -v
配置用户环境变量
修改 ~/.bashrc 文件,将下面两行加进去:(将 wuliyttaotao 改成自己的用户名)
export PATH=/home/wuliyttaotao/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/home/wuliyttaotao/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存 ~/.bashrc 文件后,source ~/.bashrc 使其生效。
References
Linux之cudnn升级方法 -- ZONG_XP
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)-- 随性拂尘倾心
【tf.keras】Linux 非 root 用户安装 CUDA 和 cuDNN的更多相关文章
- 非root用户安装cuda和cudnn
1.根据自己的系统在官网下载cuda (选择runfile(local)) https://developer.nvidia.com/cuda-downloads 2.进入下载目录,并执行 sh cu ...
- linux非root用户安装jdk1.8
如题,先到 Oracle 官方网站 下载1.8版本的 JDK 压缩包(jdk-8u221-linux-x64.tar.gz)到本地(如D盘的soft目录),然后开始进入linux的非root用户(如w ...
- linux非root用户安装ncurses-devel依赖
很明显,如果我们通过yum或rpm下载安装,始终无法绕开root用户,除非我们不用yum或rpm.嗯,我们直接用源码安装.下载源码包,到http://ftp.gnu.org/gnu/ncurses/我 ...
- linux非root用户安装nginx
先到官网http://nginx.org/en/download.html下载最新稳定版源码包,目前是1.16.1: 下完后通过rz上传至wlf用户soft目录下,退回上一级目录解压: $ cd so ...
- linux非root用户安装rabbitmq
因为rabbitmq是用erlang语言写的,所以装rabbitmq前第一步得先装erlang. 我们到erlang官网https://www.erlang.org/downloads下载安装包,最新 ...
- linux非root用户安装4.0.14版本redis
先到官网https://redis.io/download下安装包,现在最新是5.0.5版本,可惜点击下载后被windows禁了,那就下4版本的,往下看Other versions的Old(4.0), ...
- linux非root用户安装5.7.27版本mysql
先下安装包,到mysql官网https://dev.mysql.com/downloads/mysql/选好安装包版本.操作系统类型(默认是最新版本,点击右边链接Looking for previou ...
- Linux非root用户安装jdk和tomcat
转载自:http://blog.csdn.net/wuyigong111/article/details/17410661,进行部分修改 创建一个用户 sgmm,并在其用户目录里面安装 jdk和tom ...
- linux 非root用户安装nginx
第一步:首先下载依赖包 下载地址 pcre(www.pcre.org),zlib(www.zlib.org),openssl(www.openssl.org) 第二步:上传那个nginx的安装包 下载 ...
随机推荐
- Android本地数据存储: Reservoir
一:前言 今天做项目,准备使用本地存储,把一些数据存在本地磁盘上,比如用户名.密码这样的.其实大家都知道,这种情况最常用的就是SharedPreferences了,我也不例外,脑子里第一个想到的就是用 ...
- H3C 以太网流量控制
- java 多线程安全问题的解决方法
三种方法: 同步代码块: synchronized(obj) { //obj表示同步监视器,是同一个同步对象 /**..... TODO SOMETHING */ } 同步方法 格式: 在方法上加 ...
- Capistrano:自动完成多台服务器上新版本的同步更新,包括数据库的改变
https://baike.baidu.com/item/Capistrano/6844928?fr=aladdin Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署we ...
- Ultra-QuickSort——[归并排序、分治求逆序对]
Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...
- 常见DOS操作
D: 去往D盘 cd.. 返回上一级目录 cd 文件名 目录切换到该文件名(子目录)下 cd \ 直接回根目录 dir 当前根目录下的文件目录 dir /s 所有目录
- H3C配置文件的显示与维护
- LeekCode解题记录
昨天晚上有个LeekCode的比赛,两个半小时解五题,轻松解决前两题后,卡在第三题,还剩半小时时放弃,开始解第五题,解完但未验证通过,第四题只看了下题目. 排名第一的大佬只用了36分钟全部写完. 差距 ...
- Delta Lake源码分析
目录 Delta Lake源码分析 Delta Lake元数据 snapshot生成 日志提交 冲突检测(并发控制) delete update merge Delta Lake源码分析 Delta ...
- 游戏《Minecraft》或其他应用程序 实现 自动更新 客户端版本
本渣又来写(水)博客了. 先说一下,我这个解决方案的安全性并不是企业级的,咱们就是一群穷开服的Minecraft玩家. 如果你要投入到企业级应用(容易被黑客攻击的场景),请自己写,思路凑合看看.不然安 ...