TensorFlow 1.14.0未使用GPU

时间:2019-06-27 08:09:56

标签: python tensorflow

我在Ubuntu 19.04笔记本电脑上使用pip install --user tensorflow-gpu设置了TensorFlow。像CUDA,CUDNN之类的所有依赖项均已安装并正常工作。但是仍然,当导入TensorFlow并检查tf.test.is_gpu_available()时,我的判断是False。我已尝试完全卸载并重新安装TensorFlow,但该方法无效。 tf.test.is_gpu_available()的输出:

  

2019-06-27 14:06:18.359739:我   tensorflow / core / platform / cpu_feature_guard.cc:142]您的CPU支持   TensorFlow二进制文件未编译使用的指令:AVX2   FMA 2019-06-27 14:06:18.611194:我   tensorflow / core / platform / profile_utils / cpu_utils.cc:94] CPU频率:   2194885000 Hz 2019-06-27 14:06:18.621295:我   tensorflow / compiler / xla / service / service.cc:168] XLA服务0x19d54e0   在平台主机上执行计算。设备:2019-06-27   14:06:18.621339:I tensorflow / compiler / xla / service / service.cc:175]
  StreamExecutor设备(0):,2019-06-27   14:06:18.742193:我   tensorflow / stream_executor / platform / default / dso_loader.cc:42]   成功打开动态库libcuda.so.1 2019-06-27   14:06:18.869601:我   tensorflow / stream_executor / cuda / cuda_gpu_executor.cc:1005]成功   从SysFS读取的NUMA节点的值为负(-1),但必须存在   至少一个NUMA节点,因此返回NUMA节点为零2019-06-27   14:06:18.870469:我   tensorflow / core / common_runtime / gpu / gpu_device.cc:1640]找到设备0   具有属性:名称:GeForce 920M主音:3小音:5   memoryClockRate(GHz):0.954 pciBusID:0000:08:00.0 2019-06-27   14:06:18.870675:我   tensorflow / stream_executor / platform / default / dso_loader.cc:53]可以   不是dlopen库'libcudart.so.10.0'; dlerror:libcudart.so.10.0:   无法打开共享对象文件:没有这样的文件或目录;   LD_LIBRARY_PATH::/ usr / local / cuda / extras / CUPTI / lib64 2019-06-27   14:06:18.870812:我   tensorflow / stream_executor / platform / default / dso_loader.cc:53]可以   不是dlopen库'libcublas.so.10.0'; dlerror:libcublas.so.10.0:   无法打开共享对象文件:没有这样的文件或目录;   LD_LIBRARY_PATH::/ usr / local / cuda / extras / CUPTI / lib64 2019-06-27   14:06:18.870973:我   tensorflow / stream_executor / platform / default / dso_loader.cc:53]可以   不是dlopen库'libcufft.so.10.0'; dlerror:libcufft.so.10.0:   无法打开共享对象文件:没有这样的文件或目录;   LD_LIBRARY_PATH::/ usr / local / cuda / extras / CUPTI / lib64 2019-06-27   14:06:18.871111:我   tensorflow / stream_executor / platform / default / dso_loader.cc:53]可以   不是dlopen库'libcurand.so.10.0'; dlerror:libcurand.so.10.0:   无法打开共享对象文件:没有这样的文件或目录;   LD_LIBRARY_PATH::/ usr / local / cuda / extras / CUPTI / lib64 2019-06-27   14:06:18.871228:我   tensorflow / stream_executor / platform / default / dso_loader.cc:53]可以   不是dlopen库'libcusolver.so.10.0'; dlerror:   libcusolver.so.10.0:无法打开共享库文件:无此文件或   目录; LD_LIBRARY_PATH :: / usr / local / cuda / extras / CUPTI / lib64   2019-06-27 14:06:18.871352:我   tensorflow / stream_executor / platform / default / dso_loader.cc:53]可以   不是dlopen库'libcusparse.so.10.0'; dlerror:   libcusparse.so.10.0:无法打开共享库文件:无此文件或   目录; LD_LIBRARY_PATH :: / usr / local / cuda / extras / CUPTI / lib64   2019-06-27 14:06:20.233321:我   tensorflow / stream_executor / platform / default / dso_loader.cc:42]   成功打开动态库libcudnn.so.7 2019-06-27   14:06:20.233363:W   tensorflow / core / common_runtime / gpu / gpu_device.cc:1663]无法dlopen   一些GPU库。跳过注册GPU设备... 2019-06-27   14:06:20.407248:我   tensorflow / core / common_runtime / gpu / gpu_device.cc:1181]设备   将StreamExecutor与强度1边缘矩阵互连:2019-06-27   14:06:20.407318:我   tensorflow / core / common_runtime / gpu / gpu_device.cc:1187] 0   2019-06-27 14:06:20.407351:我   tensorflow / core / common_runtime / gpu / gpu_device.cc:1200] 0:N   2019-06-27 14:06:20.441266:我   tensorflow / stream_executor / cuda / cuda_gpu_executor.cc:1005]成功   从SysFS读取的NUMA节点的值为负(-1),但必须存在   至少一个NUMA节点,因此返回NUMA节点为零2019-06-27   14:06:20.443613:I tensorflow / compiler / xla / service / service.cc:168] XLA   服务0x4ed6d40在CUDA平台上执行计算。设备:   2019-06-27 14:06:20.443670:我   tensorflow / compiler / xla / service / service.cc:175] StreamExecutor   设备(0):GeForce 920M,计算能力3.5否

CUDA示例的deviceQuery输出:

  

CUDA设备查询(运行时API)版本(CUDART静态链接)

     

检测到1个支持CUDA的设备

     

设备0:“ GeForce 920M” CUDA驱动程序版本/运行时版本
  10.1 / 10.1 CUDA功能主要/次要版本号:3.5全局内存总数:4046 MBytes(4242341888   字节)(2)多处理器,(192)CUDA内核/ MP:384 CUDA内核   GPU最大时钟频率:954 MHz(0.95 GHz)
  内存时钟速率:900 Mhz内存总线   宽度:64位L2缓存大小:
  524288字节最大纹理尺寸大小(x,y,z)
  1D =(65536),2D =(65536、65536),3D =(4096、4096、4096)最大分层   1D纹理大小,(数量)层1D =(16384),最大2048层   分层的2D纹理大小,(num)层2D =(16384,16384),2048层   恒定内存总数:65536字节总计   每个块的共享内存量:49152字节   每个块可用的寄存器:65536翘曲尺寸:
  每个多处理器32个线程的最大数量:最大2048个   每个块的线程数:1024的最大尺寸   线程块(x,y,z):(1024、1024、64)网格的最大尺寸   大小(x,y,z):(2147483647、65535、65535)最大内存间距:
  2147483647字节纹理对齐:512   字节并发复制和内核执行:是,带1个副本   引擎在内核上的运行时间限制:是
  集成GPU共享主机内存:不支持主机   页面锁定的内存映射:是对齐要求   表面:是设备具有ECC支持:
  禁用的设备支持统一寻址(UVA):是的设备   支持计算抢占:不支持合作   内核发布:不支持MultiDevice Co-op内核   启动:无设备PCI域ID /总线ID /位置ID:0/8   / 0计算模式:        <默认(多个主机线程可以同时将:: cudaSetDevice()与设备一起使用)>

     

deviceQuery,CUDA驱动程序= CUDART,CUDA驱动程序版本= 10.1,CUDA   运行时版本= 10.1,NumDevs = 1结果= PASS

4 个答案:

答案 0 :(得分:1)

我的特别问题是, TensorFlow 1.14.0 正在寻找 CUDA 10.0 二进制文件,而我只安装了 10.1 。由于某些原因,无法在我的 Ubuntu 19.04 上安装CUDA 10.0,所以我安装了 18.04 并遵循标准方法使 TF 与GPU配合使用(安装 CUDA 10.0 ,安装 CUDNN 等),一切正常。

此表显示了TF版本与所需的CUDA版本:https://www.tensorflow.org/install/source#linux

以下是TF的指示: https://www.tensorflow.org/install/gpu#ubuntu_1804_cuda_10

您也可以降级为TF 1.12(CUDA 9.0):https://www.tensorflow.org/install/gpu#ubuntu_1604_cuda_90_for_tensorflow_1130

答案 1 :(得分:0)

您可能要使用Bazel或MYSYS进行构建。 tensorflow网站建议如何执行此操作。

https://www.tensorflow.org/install/source_windows

一旦先决条件安装完毕,请从github克隆tensorflow。

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

配置系统版本

python ./configure.py
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
--define=no_tensorflow_py_deps=true

然后构建并安装

bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg
pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.whl

答案 2 :(得分:0)

确保您的cuda版本与tensorflow匹配,此处可以找到更多详细信息:https://tensorflow.google.cn/install/source

答案 3 :(得分:0)

conda install -c anaconda tensorflow-gpu=1.14.0似乎安装了支持CUDA 10.1的Tensorflow 1.14.0。

更多详细信息,请参见here