TensorFlow 1.14.0未使用GPU

14
我在我的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: I tensorflow/core/platform/cpu_feature_guard.cc:142] 您的CPU支持本 TensorFlow 二进制版本未编译使用的指令集:AVX2 FMA 2019-06-27 14:06:18.611194: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU 频率:2194885000 Hz 2019-06-27 14:06:18.621295: I tensorflow/compiler/xla/service/service.cc:168] XLA 服务 0x19d54e0 在平台 Host 上执行计算。设备列表: 2019-06-27 14:06:18.621339: I tensorflow/compiler/xla/service/service.cc:175]
StreamExecutor 设备 (0): , 2019-06-27 14:06:18.742193: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] 成功打开动态库 libcuda.so.1 2019-06-27 14:06:18.869601: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] 从 SysFS 中读取的 NUMA 节点总数: 0 2019-06-27 14:06:18.870469: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] 没有找到合适的设备,不使用 GPU。 2019-06-27 14:06:18.870675: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] 找不到指定的文件。 2019-06-27 14:06:18.870812: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] 找不到指定的文件。 2019-06-27 14:06:18.870973: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] 找不到指定的文件。 2019-06-27 14:06:18.871111: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] 找不到指定的文件。 2019-06-27 14:06:18.871228: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] 找不到指定的文件。 2019-06-27 14:06:18.871352: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] 找不到指定的文件。 2019-06-27 14:06:20.233321: I 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] 无法加载一些 GPU 库,请确保正确安装了显卡驱动程序和CUDA库。Skipping registering GPU devices... 2019-06-27 14:06:20.407248: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] 设备 interconnect StreamExecutor with strength 1 edge matrix: 2019-06-27 14:06:20.407318: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187] 0 2019-06-27 14:06:20.407351: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0: N 2019-06-27 14:06:20.441266: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] 从 SysFS 中读取的 NUMA 节点总数: 0 2019-06-27 14:06:20.443613: I tensorflow/compiler/xla/service/service.cc:168] XLA 服务 0x4ed6d40 在

CUDA示例中的deviceQuery输出:

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

检测到1个CUDA兼容设备

设备0:"GeForce 920M" CUDA驱动程序版本 / 运行时版本
10.1 / 10.1 CUDA能力主/次版本号: 3.5 全局内存总量: 4046兆字节(4242341888 字节) ( 2) 多处理器,(192) CUDA核心/多处理器: 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纹理尺寸, (num)层数 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): 是 设备支持计算抢占: 否 支持协同内核启动: 否 支持多设备协作内核启动: 否 设备PCI域ID / 总线ID / 位置ID: 0 / 8 / 0 计算模式: <默认(多个主机线程可以同时使用::cudaSetDevice())>

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


看tensorflow的错误提示,似乎它试图加载CUDA 10.0运行时库,但你安装的是CUDA 10.1。 - sgarizvi
@sgarizvi 这正是问题所在。然而,我无法在Ubuntu 19.04上使用CUDA 10.0,因此我安装了18.04,一切都正常了。 - Kirill O.
4个回答

14
我的问题是,TensorFlow 1.14.0需要 CUDA 10.0的二进制文件,但我只安装了版本为10.1的CUDA。由于某种原因,我无法在我的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

以下是安装Cuda10.0的步骤 https://gist.github.com/Mahedi-61/2a2f1579d4271717d421065168ce6a73#file-cuda_10-0_installation_on_ubuntu_18-04 - Yahya

3

conda install -c anaconda tensorflow-gpu=1.14.0 看起来安装了支持CUDA 10.1的TensorFlow 1.14.0。

更多详细信息可以在这里找到。


2

请确保您的cuda版本与TensorFlow匹配,更多详细信息可在此处找到。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接