当前位置:网站首页>解决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就发现:如果不匹配,就会出现报错,这种报错往往都是不匹配的原因,而且还会告诉你版本对应是多少。你就可以解决这个问题了~
边栏推荐
猜你喜欢

RTP

【原创】解决阿里云oss-browser.exe双击没反应打不开,提供一种解决方案

【原创】JPA中@PrePersist和@PreUpdate的用法

想了解API接口,这一篇就够了

Shell script combat (2nd edition) / People's Posts and Telecommunications Press Script 2 Validate input: letters and numbers only

Transformer+Embedding+Self-Attention原理详解

BERT预训练模型(Bidirectional Encoder Representations from Transformers)-原理详解

研发需求的验收标准应该怎么写? | 敏捷实践

分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测

MNIST机器学习入门
随机推荐
好久没上博客了,好长时间没有进展了
shell脚本实战(第2版)/人民邮电出版社 脚本2 验证输入:仅限字母和数字
【原创】解决阿里云oss-browser.exe双击没反应打不开,提供一种解决方案
15.8 the semaphore Unix environment programming chapter 15
[华为云在线课程][SQL语法分类][数据操作][学习笔记]
[相机配置] 海康相机丢包配置环境
Transformer+Embedding+Self-Attention原理详解
2021-01-11-雪碧图做表情管理器
AQS同步组件-FutureTask解析和用例
unix环境编程 第十五章 15.7消息队列
How to quickly get through the mirror release process?
unix环境编程 第十五章 15.3 函数popen和pclose
Unix Environment Programming Chapter 14 14.4 I/O Multiplexing
真香!肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer
xmms播放器加了播放列表的管理功能
xmms已经发布到v1.3了,好久没写博客了
1004 成绩排名 (20 分)
Win7 远程桌面限制IP
阿里神作!吃透这份资料入厂率高达99%
unix环境编程 第十五章 15.8信号量