TensorFlow 1.14.0 未使用 GPU
Posted
技术标签:
【中文标题】TensorFlow 1.14.0 未使用 GPU【英文标题】:TensorFlow 1.14.0 is not using GPU 【发布时间】:2019-11-09 05:14:21 【问题描述】:我在 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 赫兹 2019-06-27 14:06:18.621295: 我 tensorflow/compiler/xla/service/service.cc:168] XLA 服务 0x19d54e0 在平台主机上执行计算。设备:2019-06-27 14:06:18.621339:我 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”;错误: 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';错误: 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] 设备 用强度 1 边缘矩阵互连 StreamExecutor:2019-06-27 14:06:20.407318:我 张量流/核心/common_runtime/gpu/gpu_device.cc:1187] 0 2019-06-27 14:06:20.407351: 我 张量流/核心/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:我 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 False
来自 CUDA 示例的 deviceQuery 输出:
CUDA 设备查询(运行时 API)版本(CUDART 静态链接)
检测到 1 个支持 CUDA 的设备
设备 0:“GeForce 920M”CUDA 驱动程序版本/运行时版本 10.1 / 10.1 CUDA Capability 主要/次要版本号:3.5 全局内存总量:4046 MBytes (4242341888 字节)(2)多处理器,(192)CUDA核心/MP:384 CUDA核心 GPU 最大时钟频率:954 MHz (0.95 GHz) 内存时钟频率:900 Mhz 内存总线 宽度:64 位二级缓存大小: 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 Warp 大小: 32 每个多处理器的最大线程数:2048 最大值 每个块的线程数:1024 a 的最大维度大小 线程块 (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 计算模式:
deviceQuery,CUDA 驱动程序 = CUDART,CUDA 驱动程序版本 = 10.1,CUDA 运行时版本 = 10.1,NumDevs = 1 结果 = PASS
【问题讨论】:
查看 tensorflow 错误,它似乎正在尝试加载 CUDA 10.0 运行时库,但您安装了 CUDA 10.1。 @sgarizvi 这正是问题所在。但是,我无法在 Ubuntu 19.04 上运行 CUDA 10.0,所以我安装了 18.04,一切正常 【参考方案1】:我的特殊问题是 TensorFlow 1.14.0 正在寻找 CUDA 10.0 二进制文件,而我只安装了 10.1。由于某种原因,CUDA 10.0 无法安装在我的 Ubuntu 19.04 上,所以我安装了 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 gist.github.com/Mahedi-61/…【参考方案2】:conda install -c anaconda tensorflow-gpu=1.14.0
似乎安装了支持 CUDA 10.1 的 tensorflow 1.14.0。
更多详情请见here。
【讨论】:
【参考方案3】:确保您的 cuda
版本与 TensorFlow 匹配,更多详细信息可以找到 here
【讨论】:
【参考方案4】:您可能希望使用 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
【讨论】:
以上是关于TensorFlow 1.14.0 未使用 GPU的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow 未检测到 GPU - 添加可见 gpu 设备:0
tensorflow docker gpu 图像未检测到我的 GPU
Tensorflow(CUDA 11.2)未使用 Python 3.7 在 AMD Radeon Vega 8(Envy 笔记本电脑)上检测到 GPU