当前位置:网站首页>解决1.tensorflow运行使用CPU不使用GPU 2.tensorflow环境下的GPU版本号 3.tensorflow和cuda以及cudnn版本对应问题 4.查看cuda和cudnn版本
解决1.tensorflow运行使用CPU不使用GPU 2.tensorflow环境下的GPU版本号 3.tensorflow和cuda以及cudnn版本对应问题 4.查看cuda和cudnn版本
2022-08-09 10:42:00 【模糊包】
这个文章主要针对下面三个问题,十分钟弄懂后,什么类似问题都是相同的:
- 查看
tensorflow环境下的GPU版本号 - 解决
tensorflow运行使用CPU不使用GPU tensorflow和cuda以及cudnn版本对应问题
这三个问题的解决方法,要从问题一出发解决。
并且我们假定你会使用Anaconda的虚拟环境以及安装tensorflow-gpu,也会安装CUDA和CUDNN
安装Anadonda
安装tensorflow-gpu
安装CUDA和CUDNN
问题一:查看版本
查看CUDA和CUDNN版本
# 查看cuda版本
$ nvcc -V
$output ==>
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
# 查看cudnn版本
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
$output ==>
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
'''7.6.5'''
重点来了:查看tensorflow环境下的GPU版本号如下方式即可查看你的目前环境(可能虚拟环境可能本环境)
$ ipython
In [1]: import tensorflow as tf
In [2]: gpu_device_name = tf.test.gpu_device_name()
'''output==>'''
.............省略..........................
name: GeForce GTX 1060 6GB major: 6 minor: 1 memoryClockRate(GHz): 1.7085
pciBusID: 0000:27:00.0
问题二:GPU不工作
如果你的tensorflow不能使用GPU只能使用CPU(注解:如何知道用的cpu,通过NVIDIA-SMI有没有负载就行了)
其实这时候你会发现通过上面的方法,你会发现你的显卡下面有这些话:
2019-12-29 12:10:23.761412: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761455: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761493: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcufft.so.10.0'; dlerror: libcufft.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761532: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcurand.so.10.0'; dlerror: libcurand.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761571: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcusolver.so.10.0'; dlerror: libcusolver.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761609: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcusparse.so.10.0'; dlerror: libcusparse.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.764661: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7
2019-12-29 12:10:23.764728: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1663] Cannot dlopen some GPU libraries. Skipping registering GPU devices...
全是没有找到这些文件,所以才会使用gpu而不是cpu
解决方法
注意:如果是找不到so.9.0就更改为so.9.0,其他版本另改。
我们更改出软链接即可如下:
- libcudart
# cuda是cuda-版本的软链接,下面一样
sudo ln -s /usr/local/cuda/lib64/libcudart.so.10.1 /usr/local/cuda/lib64/libcudart.so.10.0
- libcufft
sudo ln -s /usr/local/cuda/lib64/libcufft.so.10.1.168 /usr/local/cuda/lib64/libcufft.so.10.0
- libcurand
sudo ln -s /usr/local/cuda/lib64/libcurand.so.10.1.168 /usr/local/cuda/lib64/libcurand.so.10.0
- libcusolver
sudo ln -s /usr/local/cuda/lib64/libcusolver.so.10.1.168 /usr/local/cuda/lib64/libcusolver.so.10.0
- libcusparse
sudo ln -s /usr/local/cuda/lib64/libcusparse.so.10.1.168 /usr/local/cuda/lib64/libcusparse.so.10.0
- libcublas
# 这里10.1版本是这样的
sudo ln -s /usr/lib/x86_64-linux-gnu/libcublas.so.10.2.0.168 /usr/local/cuda/lib64/libcublas.so.10.0
注意:这里如果是10.0版本及以下的,如果/usr/lib/x86_64-linux-gnu/目录下没有libcublas库,可以在/usr/local/cuda10.1/targets/x86_64-linux/lib/查找libcublas库。
问题三:匹配问题
我们通过问题1就发现:如果不匹配,就会出现报错,这种报错往往都是不匹配的原因,而且还会告诉你版本对应是多少。你就可以解决这个问题了~
边栏推荐
猜你喜欢
随机推荐
numpy库中的函数 bincount() where() diag() all()
mongodb学习笔记
分类预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多特征分类预测
用Word写代码
使用pip成功安装某个库,但pycharm中找不到,此问题的解决方案
强化学习 (Reinforcement Learning)
OpengGL绘制立方体的三种方法
SQL Server查询优化
Shell script combat (2nd edition) / People's Posts and Telecommunications Press Script 1 Find programs in the PATH
自启服务mock联调跨域问题
相伴成长,彼此成就 用友U9 cloud做好制造业数智化升级的同路人
Restful WebServices 学习笔记
1003 我要通过! (20 分)
一天半的结果——xmms on E2
真香!肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer
UNIX Environment Programming Chapter 15 15.6 XSI IPC
踩坑scrollIntoView
Oracle数据库:for update 和for update nowait的区别
unix环境编程 第十四章 14.8 存储映射I/O
WUSTOJ:n个素数构成等差数列









