Ubuntu16.04环境中CUDA/CuDNN安装成功后TensorFlow无法调用Quadro K4000
解决TensorFlow忽略Quadro K4000 GPU的问题
问题背景
你的运行环境如下:
- 系统:Ubuntu 16.04
- Python环境:Anaconda Python 3.6
- 显卡:Quadro K4000(CUDA算力3.0)
- CUDA版本:9.0.176,CuDNN版本:7.1.4
运行TensorFlow/Keras时触发错误日志:
2019-07-09 14:20:49.199895: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties: name: Quadro K4000 major: 3 minor: 0 memoryClockRate(GHz): 0.8105 pciBusID: 0000:05:00.0 totalMemory: 2.94GiB freeMemory: 2.46GiB 2019-07-09 14:20:49.199946: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1482] Ignoring visible gpu device (device: 0, name: Quadro K4000, pci bus id: 0000:05:00.0, compute capability: 3.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5. 2019-07-09 14:20:49.199969: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix: 2019-07-09 14:20:49.199983: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988] 0 2019-07-09 14:20:49.199995: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0: N
问题原因
从错误日志的核心提示就能定位问题:你的Quadro K4000显卡CUDA算力为3.0,但当前安装的TensorFlow版本要求最低算力是3.5。从TensorFlow 1.13版本开始,官方就不再支持算力3.0的GPU,所以程序直接忽略了你的显卡,导致运行中断。
解决方案
好在你已经安装的CUDA 9.0和CuDNN 7.1.4正好适配低版本TensorFlow,咱们直接降级TensorFlow到支持算力3.0的版本即可,步骤如下:
卸载当前TensorFlow版本
打开终端,用Anaconda命令卸载:# 如果你安装的是GPU版本TensorFlow conda remove tensorflow-gpu # 若为CPU版本(你用GPU大概率是前者) conda remove tensorflow安装兼容的TensorFlow GPU版本
推荐安装TensorFlow 1.12.0,它完美适配你的CUDA、CuDNN版本,同时支持算力3.0的GPU:conda install tensorflow-gpu=1.12.0你也可以选择1.11.x或1.10.x版本,这些版本同样支持算力3.0。
验证安装是否成功
打开Python终端,运行以下代码检查GPU是否被正常识别:import tensorflow as tf print(tf.test.is_gpu_available())若输出
True,说明GPU已被正确识别,接下来就可以正常运行你的Keras代码了。
额外提示
- 如果你需要搭配Keras使用,建议安装Keras 2.2.4,它和TensorFlow 1.12.0是稳定兼容的组合,安装命令:
conda install keras=2.2.4 - 后续不要随意升级TensorFlow到1.13及以上版本,否则会再次触发相同的算力不兼容问题。
内容的提问来源于stack exchange,提问作者Hitesh
相关产品推荐
相关产品推荐

