目录
3.3 CUDA 与 cudnn 与 tensorflow-gpu版本匹配
4.3 补充:对anaconda中环境中的pip和python尽量用绝对路径去使用pip和python命令
Part I: 问题与原因
最近在用tensorflow做一个3D物体检测模型, 遇到3D object detection内存溢出(out of memory)问题,网上以及找人都没有现成的解决方案,前后花了将近一个月才彻底解决。
总结下来, 主要有三方面问题:
1. cudnn 没有正确安装---涉及cudnn版本是否支持对应的tensorflow-gpu版本, 是否替换掉原来的旧版本, 以及cudnn是否与安装的cuda匹配;
2. tensorflow-gpu版本是否正确安装 --- 是否与 cuda, cudnn 版本匹配, 是用pycharm直接装还是用所在环境的pip安装(/home/ubuntu/anaconda3/envs/object_detection/bin/pip)
3. anaconda 中的cudnn用的是老版本(安装cudnn时并没有像多数帖子上说的那样放到/usr/local/cuda/include/, 而是装到anaconda 路径下面 可以用 sudo find -name "libcudnn*" 和 sudo find -name "cudnn.h" 找到安装路径)
Part II: 参考配置
当前的版本配置为(显卡 RTX 2080Ti):
软硬件 | 版本 |
显卡 | RTX 2080Ti |
NVIDIA Driver Version | 410.104 |
CUDA | release 10.0, V10.0.130 |
cudnn | 7.4.2.24 |
Tensorflow-gpu | 1.14.0 |
其中NVIDIA Driver Version 410.104 是long lived version, 所以采用该版本。
以下将从显卡驱动到tensorflow-gpu总结各个环节版本匹配问题, 具体安装方式参考另一篇帖子:
https://blog.csdn.net/bmwlwg/article/details/100795413
Part III: 当前版本查看
查看GPU版本(N卡)
lspci | grep -i nvidia
查看nvidia驱动版本
cat /proc/driver/nvidia/version
# 或采用如下方式
nvidia-smi
查看CUDA版本
cat /usr/local/cuda/version.txt
nvcc -V # nvidia 编译器版本
# 或
nvcc --version
查看cuDNN版本