我在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
答案 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。