详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系

所属分类: 脚本专栏 / python 阅读数: 672
收藏 0 赞 0 分享

参考官网地址:

Windows端:https://tensorflow.google.cn/install/source_windows

CPU

Version Python version Compiler Build tools
tensorflow-1.11.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.10.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.9.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.8.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.7.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.6.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.5.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.4.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.3.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.2.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.1.0 3.5 MSVC 2015 update 3 Cmake v3.6.3
tensorflow-1.0.0 3.5 MSVC 2015 update 3 Cmake v3.6.3

GPU

Version Python version Compiler Build tools cuDNN CUDA
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 update 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 update 3 Cmake v3.6.3 5.1 8

Linux端:https://tensorflow.google.cn/install/source

Linux

Version Python version Compiler Build tools
tensorflow-1.11.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.10.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.9.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.11.0
tensorflow-1.8.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0
tensorflow-1.7.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0
tensorflow-1.6.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0
tensorflow-1.5.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.8.0
tensorflow-1.4.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.5.4
tensorflow-1.3.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5
tensorflow-1.2.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5
tensorflow-1.1.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2
tensorflow-1.0.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2

Version Python version Compiler Build tools cuDNN CUDA
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

macOS

CPU

Version Python version Compiler Build tools
tensorflow-1.11.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.15.0
tensorflow-1.10.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.15.0
tensorflow-1.9.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.11.0
tensorflow-1.8.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.10.1
tensorflow-1.7.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.10.1
tensorflow-1.6.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.8.1
tensorflow-1.5.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.8.1
tensorflow-1.4.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.5.4
tensorflow-1.3.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.4.5
tensorflow-1.2.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.4.5
tensorflow-1.1.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.4.2
tensorflow-1.0.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.4.2

GPU

Version Python version Compiler Build tools cuDNN CUDA
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 Clang from xcode Bazel 0.4.2 5.1 8

tensorflow的CUDA driver version is insufficient for CUDA runtime version 问题解决方案

CUDA driver version is insufficient for CUDA runtime version 翻译过来就是CUDA的驱动程序版本跟CUDA的运行时版本不匹配!

1.CUDA driver version(驱动版本):就是NVIDIA GPU的驱动程序版本;

查看命令:nvidia-smi

我们看到我的GPU的驱动程序版本是:384.81

2.CUDA runtime version(运行时版本):是在python中安装的cudatoolkit和cudnn程序包的版本

查看命令:pip list

python安装的cudatoolkit和cudnn程序包版本是:9.2

3.nvidia 驱动和cuda runtime 版本对应关系

运行时版本   驱动版本
CUDA 9.1     387.xx 
CUDA 9.0     384.xx 
CUDA 8.0     375.xx (GA2) 
CUDA 8.0     367.4x 
CUDA 7.5     352.xx 
CUDA 7.0     346.xx 
CUDA 6.5     340.xx 
CUDA 6.0     331.xx 
CUDA 5.5     319.xx 
CUDA 5.0     304.xx 
CUDA 4.2     295.41 
CUDA 4.1     285.05.33 
CUDA 4.0     270.41.19 
CUDA 3.2     260.19.26 
CUDA 3.1     256.40 
CUDA 3.0     195.36.15

4.解决方案

从驱动和运行时的版本对应关系来看,版本为384.81的驱动程序 对应的 运行时版本是9.0,也就是说我们在python中安装cudatoolkit和cudnn程序包版本9.2是过高了。

因为系统中依赖GPU驱动的程序比较多,一般出现这种情况,我们都是更改cudatoolkit和cudnn程序包的版本。

于是,先卸载python中安装cudatoolkit和cudnn程序包:pip uninstall cudnn ; pip uninstall cudatoolkit

然后安装对应版本的cudatoolkit和cudnn程序包:pip install cudatoolkit=9.0;pip install cudnn

5.为什么会出现这种情况呢:

一般出现这种情况是因为在python中安装tensorflow的gpu版本时,pip会检查tensorflow依赖的其他的包,如果依赖的包没有安装,则会先安装最新版本的依赖包。这时候tensorflow的gpu版本依赖cudatoolkit和cudnn程序包,pip就会安装最新版本的cudatoolkit和cudnn程序包,最终导致gpu驱动版本和cuda运行时版本不匹配。

更多精彩内容其他人还在看

深入源码解析Python中的对象与类型

这篇文章主要介绍了深入源码解析Python中的对象与类型,涉及到对象的引用计数方法和类型的定义等深层次内容,需要的朋友可以参考下
收藏 0 赞 0 分享

一篇文章入门Python生态系统(Python新手入门指导)

原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍
收藏 0 赞 0 分享

Python实时获取cmd的输出

本文给大家分享python实时获取cmd的输出,对python实时获取输出相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

分享Python字符串关键点

字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串,通过本篇文章给大家分享python字符串关键点相关资料,感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

Python中内置数据类型list,tuple,dict,set的区别和用法

这篇文章主要给大家介绍了Python中内置数据类型list,tuple,dict,set的区别和用法,都是非常基础的知识,十分的细致全面,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

Python学习笔记整理3之输入输出、python eval函数

这篇文章主要介绍了Python学习笔记整理3之输入输出、python eval函数的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

十个Python程序员易犯的错误

不管是在学习还是工作过程中,人都会犯错。虽然Python的语法简单、灵活,但也一样存在一些不小的坑,一不小心,初学者和资深Python程序员都有可能会栽跟头。本文为大家分享了10大常见错误,需要的朋友可以参考下
收藏 0 赞 0 分享

使用Python编写简单的端口扫描器的实例分享

这篇文章主要介绍了使用Python编写简单的端口扫描器的实例分享,文中分别介绍了单线程和多线程的实现方式,需要的朋友可以参考下
收藏 0 赞 0 分享

用ReactJS和Python的Flask框架编写留言板的代码示例

这篇文章主要介绍了用ReactJS和Python的Flask框架编写留言板的代码示例,其他的话用到了MongoDB这个方便使用JavaScript来操作的数据库,需要的朋友可以参考下
收藏 0 赞 0 分享

在DigitalOcean的服务器上部署flaskblog应用

这篇文章主要介绍了在DigitalOcean的服务器上部署flaskblog的方法,flaskblog是用Python的Flask开发的一个博客程序,而DigitalOcean则是大受欢迎的SSD主机提供商,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多