TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。当前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

然而,搭建深度学习框架却是一个让人恼火的事情。直到Anaconda的到来,一切都不一样了。

1 查看系统当前显卡驱动版本

很显然,我的是Driver Version: 390.116

qingdujun@ubuntu1804lts:~$ nvidia-smi
Sat Apr 13 19:42:34 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.116                Driver Version: 390.116                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0  On |                  N/A |
|  2%   45C    P8     5W / 120W |    315MiB /  6075MiB |      0%      Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1107      G   /usr/lib/xorg/Xorg                            16MiB |
|    0      1240      G   /usr/bin/gnome-shell                          64MiB |
|    0      4486      G   /usr/lib/xorg/Xorg                            95MiB |
|    0      4617      G   /usr/bin/gnome-shell                          90MiB |
|    0      4659      G   /opt/teamviewer/tv_bin/TeamViewer              6MiB |
|    0     21030      G   ...uest-channel-token=11311962176077755626    38MiB |
+-----------------------------------------------------------------------------+

2 查看当前tensorflow安装的CUDA版本

注意,需要先进入虚拟环境。我这里是cuda10.0

qingdujun@ubuntu1804lts:~$ conda activate tensorflow
(tensorflow) qingdujun@ubuntu1804lts:~$ conda list | grep "cuda*"
WARNING: The conda.compat module is deprecated and will be removed in a future release.
cudatoolkit               10.0.130                      0
cudnn                     7.3.1                cuda10.0_0

3 NVIDIA官网给的版本对应关系

该图来自于 《CUDA Toolkit and Compatible Driver Versions》, 最新版本可以从以上链接中获取。

很显然,我是Ubuntu 18.04LTS 系统,安装的是 Driver Version: 390.116显卡驱动,应该对应CUDA 9.0。(这里注意Linux和Windows驱动对应版本是不一样的)。

4 一些当时安装时的操作

丑话说在前头,如果你要卸载并重新安装显卡驱动,这是不靠谱的,很容易造成电脑黑屏,再也无法显示桌面。

对于我来说,肯定会选择, 重新安装CUDA

回想是当时是怎么安装的。我电脑安装的是Anaconda3的环境,配置深度学习环境特别简单: 一行命令 安装TensorFlow-gpu 、 PyTorch-gpu

我原来是这么安装的:

PyTorch

$ conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

Tensorflow

$ conda create --name tensorflow tensorflow-gpu

--name后面是创建的虚拟环境的名字。当时一激动,忘记指定tensorflow-gpu的版本CUDA了,conda就给我整了个cuda 10.0造成了现在的局面。(其实我当时也不知道指定版本这事)。

5 解决办法

CUDA需要电脑计算能力为3.5以上的显卡才被支持。你可以在这里《NVIDIA CUDA GPUs》 看到你的显卡计算能力。

在《TensorFlow GPU Support》 页面,我们可以看到,对于 Linux系统 (非macOS/Windows) ,

CUDA 10.0 需要 410.x 或更高版本,对应TensorFlow 1.13.0 及更高版本。

版本 Python 版本 编译器 编译工具 cuDNN CUDA
tensorflow_gpu-1.13.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.11.0 7 9

补充:完整表格参看文后的附录。

很显然,我的显卡驱动为390.116,NVIDIA官网说该驱动应该使用CUDA9.0,那么,我应该安装tensorflow_gpu-1.12.0。(先别急着安装,我这里失败了,请看后文)

移除原来的conda虚拟环境

移除时,先退出该虚拟环境。

(tensorflow) qingdujun@ubuntu1804lts:~$ conda deactivate
qingdujun@ubuntu1804lts:~$ conda remove -n tensorflow --all

安装TensorFlow1.12.0 (失败了)

理想是美好的,安装之后,还是原来的错误。我去看了一下安装日志给我安装的竟然是cuda9.2_0(我要的是9.0),好吧,TensorFlow官网只是说明了大版本号9,并没有说明小版本号9.x,sad。

qingdujun@ubuntu1804lts:~$ conda create --name tf_gpu tensorflow-gpu=1.12.0qingdujun@ubuntu1804lts:~$ conda activate tf_gpu
(tf_gpu) qingdujun@ubuntu1804lts:~$ python
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/home/qingdujun/Applications/anaconda3/envs/tf_gpu/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1551, in __init__super(Session, self).__init__(target, graph, config=config)File "/home/qingdujun/Applications/anaconda3/envs/tf_gpu/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 676, in __init__self._session = tf_session.TF_NewSessionRef(self._graph._c_graph, opts)
tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version

安装TensorFlow1.9.0 (成功了)

有了前面的前车之前,我这下注意了。好在conda在安装的时候会有一个问候界面:“小伙,我将给你安装下列这些包,[y/n]?” ,我瞧仔细了,TensorFlow1.12.0~1.10.0安装的都是CUDA9.2。

直到TensorFlow=1.9.0,这时候使用的才是CUDA9.0版本(具体是cudnn-7.3.1-cuda9.0_0)。

成功!

qingdujun@ubuntu1804lts:~$ conda create --name tf_gpu tensorflow-gpu=1.9.0
qingdujun@ubuntu1804lts:~$ conda activate tf_gpu
(tf_gpu) qingdujun@ubuntu1804lts:~$ python
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
2019-04-13 21:16:31.687412: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2019-04-13 21:16:31.780957: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:897] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-04-13 21:16:31.781315: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1392] Found device 0 with properties:
name: GeForce GTX 1060 6GB major: 6 minor: 1 memoryClockRate(GHz): 1.7085
pciBusID: 0000:01:00.0
totalMemory: 5.93GiB freeMemory: 5.55GiB
2019-04-13 21:16:31.781329: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1471] Adding visible gpu devices: 0
2019-04-13 21:16:31.963979: I tensorflow/core/common_runtime/gpu/gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-04-13 21:16:31.964011: I tensorflow/core/common_runtime/gpu/gpu_device.cc:958]      0
2019-04-13 21:16:31.964017: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   N
2019-04-13 21:16:31.964169: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1084] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 5325 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1)
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1
2019-04-13 21:16:32.008277: I tensorflow/core/common_runtime/direct_session.cc:288] Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1>>>

6 附录

更详细的版本支持情况可以查看《Linux/macOS TensorFlow CUDA支持情况》了解最新情况,以下为对 Linux系统(非macOS/Windows) 的简单罗列,

版本 Python 版本 编译器 编译工具 cuDNN CUDA
tensorflow_gpu-1.13.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8

补充:如果你是Windows系统请戳这里《Windows TensorFlow CUDA支持情况》,请自行获取。

References:

[1] TensorFlow GPU Installation Made Easy: Use conda instead of pip [Updated]
[2] PyTorch get started
[3] TensorFlow in Anaconda

Status: CUDA driver version is insufficient for CUDA runtime version相关推荐

  1. pytorch CUDA driver version is insufficient for CUDA runtime version解决

    pytorch CUDA driver version is insufficient for CUDA runtime version 最后发现pytorch下载时选择cuda版本,选错了安装就会报 ...

  2. 'CUDA driver version is insufficient for CUDA runtime version

    ubuntu系统中,运行报错: 'CUDA driver version is insufficient for CUDA runtime version nvidia驱动是384.111, cuda ...

  3. Check failed: error == cudaSuccess (35 vs. 0) CUDA driver version is insufficient for CUDA runtime

    Check failed: error == cudaSuccess (35 vs. 0)  CUDA driver version is insufficient for CUDA runtime ...

  4. 成功解决torch.cuda.CudaError: CUDA driver version is insufficient for CUDA runtime version (35) [ WARN:0

    成功解决torch.cuda.CudaError: CUDA driver version is insufficient for CUDA runtime version (35) [ WARN:0 ...

  5. 解决CUDA driver version is insufficient for CUDA runtime version

    问题 在服务器上安装mxne的GPU版本 sudo pip install mxnet-cu80==1.2.1 然后在gpu上创建数据 import mxnet as mx mx.nd.array([ ...

  6. CUDA Driver Version is insufficient for CUDA runtime version

    CUDA Driver Version is insufficient for  CUDA runtime version 最近使用Darknet 测试目标检测,发现在自己电脑上开发的程序放到公司电脑 ...

  7. Pycharm下CUDA driver version is insufficient for CUDA runtime version报错解决

    该博文是接着我之前的博文的一次问题解决 前博文: https://blog.csdn.net/Y15072309119/article/details/113814546 -------------- ...

  8. CUDA driver version is insufficient for CUDA runtime version

    conda install -c anaconda tensorflow-gpu

  9. linux验证cuda安装成功_linux # centos # 安装cuda

    注意: 千万不要在虚拟机机中操作,不会成功的.因为目前不支持. 要想成功,需要在实体机中操作. 准备 确认版本 主要确认CUDA toolkit和nvidia的驱动版本. 经过实践之后,发现最靠谱的确 ...

最新文章

  1. web服务枚举组件不可用
  2. 如何为linux释放内存和缓存
  3. AutoResetEvent和ManualResetEvent
  4. 运行时间_如何测量嵌入式软件运行时间?
  5. Oracle 11g Express Edition 安装及常见问题
  6. java连接hbase时出现....is accessible from more than one module:
  7. 企业建立私有云的N个理由
  8. linux运行多个c文件路径,linux c的连接库和怎么同时编译多个源程序
  9. 在iMac上如何轻松去掉程序坞中最近打开过的应用--小技巧
  10. uniapp运行 pages.json解析失败,args (“--max-old-space-size=2048“, “E:/QMDownload/SoftMgr/HBuilderX/plugins/
  11. java cat_java应用监控之CAT简介
  12. java判断闰年中闰月_编程序:计算某年某月有多少天(区分闰年和闰月)?怎么编?...
  13. mysql注入扫描网站漏洞工具_SQL注入漏洞扫描工具
  14. Evolutionary Clustering of Streaming Trajectories
  15. WIN11自定义版本镜像下载教程
  16. PXC 配置笔记-从MySQL直接转成PXC集群
  17. 快看!千亿蓝海一触即发,lazada越南致富风口逢卖必爆
  18. Flutter 学习第三天 面向对象 和 库的使用
  19. unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容
  20. 签名不对,请检查是否与开放平台一致

热门文章

  1. 图像算法处理知识集合
  2. POJ1184-Smart typist
  3. 万维考试系统python_万维考试系统客户端下载|万维自动考试系统下载 v1.0 官方版_最火软件站...
  4. 企业微信H5页面title返回上一页不更新解决
  5. NFT图片批量合成及稀有度计算工具
  6. 0-1背包问题和部分背包(fractional knapsack)问题分析
  7. Linux dmidecode命令的使用
  8. idft重建图像 matlab_idft matlab实现
  9. 解密IT富翁致富秘诀 吃软饭是发展方向?
  10. [转]jQuery美化表格插件tablecloth.js