tensorflow各个版本的CUDA以及Cudnn版本对应关系
概述,需要注意以下几个问题:
(1)NVIDIA的显卡驱动程序和CUDA完全是两个不同的概念哦!CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。
CUDA的本质是一个工具包(ToolKit);但是二者虽然不一样的。
显卡驱动的安装:
当我们使用一台电脑的时候默认的已经安装了NVIDIA的显卡驱动,因为没有显卡驱动根本用不了显卡嘛,但是这个时候我们是没有CUDA可以用的,我们可以更新我们的驱动,更新链接为:
https://www.nvidia.com/Download/index.aspx?lang=en-us
在这个里面可以根据自己的显卡类型选择最新的驱动程序。显卡驱动程序当前大小大概500多M。
CUDA ToolKit的安装:
CUDA的下载地址为:https://developer.nvidia.com/cuda-downloads
我们可以选择两种安装方式,一种是在线安装(我还没用过),一中离线安装(我采用的)即本地安装,
当我们选择离线安装,当我们选定相对应的版本之后,下载的时候发现这个地方的文件大小大概在2G左右,Linux系统下面我们选择runfile(local)
完整安装包从本地安装,或者是选择windows的本地安装。CUDA Toolkit本地安装包时内含特定版本Nvidia显卡驱动的,所以只选择下载CUDA Toolkit就足够了,如果想安装其他版本的显卡驱动就下载相应版本即可。
所以,NVIDIA显卡驱动和CUDA工具包本身是不具有捆绑关系的,也不是一一对应的关系,只不过是离线安装的CUDA工具包会默认携带与之匹配的最新的驱动程序。
注意事项:NVIDIA的显卡驱动器与CUDA并不是一一对应的哦,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,比如我的电脑上同事安装了 CUDA 9.0、CUDA 9.2、CUDA 10.0三个版本。一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了,但是由于使用离线的CUDA总是会捆绑CUDA和驱动程序,所以在使用多个CUDA的时候就不要选择离线安装的CUDA了,否则每次都会安装不同的显卡驱动,这不太好,我们直接安装一个最新版的显卡驱动,然后在线安装不同版本的CUDA即可。
总结:CUDA和显卡驱动是没有一一对应的。
(2)cuDNN是一个SDK,是一个专门用于神经网络的加速包,注意,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。
总结:cuDNN与CUDA没有一一对应的关系
(3)CUDA 工具包附带的 CUPTI。
CUPTI,即CUDA Profiling Tools Interface (CUPTI)。在CUDA分析工具接口(CUPTI)能够分析和跟踪靶向CUDA应用程序的工具的创建。CUPTI提供以下API:
- Activity API,
- Callback API,
- 事件API,
- Metric API,和
- Profiler API。
使用这些API,您可以开发分析工具,深入了解CUDA应用程序的CPU和GPU行为。CUPTI作为CUDA支持的所有平台上的动态库提供。请参阅CUPTI文档。
一、tensorflow各个版本需要的CUDA版本以及Cudnn的对应关系
1.1 对应表格
相应的网址为:
https://www.tensorflow.org/install/source#common_installation_problems
https://www.tensorflow.org/install/source_windows
版本 | Python 版本 | 编译器 | 编译工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.0.0-alpha0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.19.2 | 7.4.1以及更高版本 | CUDA 10.0 (需要 410.x 或更高版本) |
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 |
现在NVIDIA的显卡驱动程序已经更新到 10.1版本,最新的支持CUDA 10.1版本的cuDNN为7.5.0
1.2 CUDA的命名规则
下面以几个例子来说
(1)CUDA 9.2
CUDA 9.2.148
(2)CUDA 10.0
CUDA 10.0.130.411.31(后面的411.31对应更具体的版本号)
(3)CUDA 10.1
CUDA 10.1.105.418.96(后面的418.96对应更具体的版本号)
更多详细的请参考如下官网:
https://developer.nvidia.com/cuda-toolkit-archive
1.3 如何查看自己所安装的CUDA的版本:
(1)直接在NVIDIA的控制面板里面查看NVCUDA.DLL的版本。
注意:这里网上有很多说法是错误的,这个版本并不能绝对说明自己所安装的CUDA工具包一定这个版本
(2)通过命令查看:nvcc -V 或者是nvcc --version都可以,但前提是添加了环境变量
(3)直接通过文件查看,这里分为Linux和windows两种情况
在windows平台下,可以直接进入CUDA的安装目录,比如我的是:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2 里面有一个version.txt的文本文件,直接打开即可,也可以使用命令,即
首先进入到安装目录,然后执行:type version.txt 即可查看
在Linux平台下:
同windows类似,进入到安装目录,然后执行 cat version.txt 命令
1.4 如何查看自己的cuDNN的版本
因为cuDNN本质上就是一个C语言的H头文件,
(1)在windows平台下:
直接进入安装目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include 之下,然后找到
cudnn.h 的头文件,直接到开查看,在最开始的部分会有如下定义:
即7500,也就是cudnn的版本为7.5.0版本;
(2)在Linux下当然也可以直接查看,但是通过命令更简单,进入到安装目录,执行如下命令:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 即可查询
即5005,即5.0.5版本的cudnn。
二、CUDA与相对应的Cudnn对应关系
Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0
Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.2
Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.0
Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 10.0
Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 9.2
Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 9.0
Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 10.0
Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 9.2
Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 9.0
Download cuDNN v7.3.0 (Sept 19, 2018), for CUDA 10.0
Download cuDNN v7.3.0 (Sept 19, 2018), for CUDA 9.0
Download cuDNN v7.2.1 (August 7, 2018), for CUDA 9.2
Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.2
Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0
Download cuDNN v7.1.4 (May 16, 2018), for CUDA 8.0
Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.1
Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.0
Download cuDNN v7.1.3 (April 17, 2018), for CUDA 8.0
Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.1 & 9.2
Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.0
Download cuDNN v7.0.5 (Dec 11, 2017), for CUDA 9.1
Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 8.0
Download cuDNN v7.0.4 (Nov 13, 2017), for CUDA 9.0
Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0
Download cuDNN v6.0 (April 27, 2017), for CUDA 7.5
Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0
Download cuDNN v5.1 (Jan 20, 2017), for CUDA 7.5
Download cuDNN v5 (May 27, 2016), for CUDA 8.0
Download cuDNN v5 (May 12, 2016), for CUDA 7.5
Download cuDNN v4 (Feb 10, 2016), for CUDA 7.0 and later.
Download cuDNN v3 (September 8, 2015), for CUDA 7.0 and later.
Download cuDNN v2 (March 17,2015), for CUDA 6.5 and later.
Download cuDNN v1 (cuDNN 6.5 R1)
三、NVIDIA显卡以及对应的显卡驱动的对应关系
由于NVIDIA存在多个系列的显卡类型,把这里仅仅显示出GeForce系列的显卡以及各个显卡的计算能力(compute capability),详情可以参考官网链接:
https://developer.nvidia.com/cuda-gpus
(2)GeForce Notebook Products(笔记本电脑)
官网文档:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
https://www.tensorflow.org/install/gpu
Ubuntu 安装 CUDA 和 cuDNN 详细步骤 for tf2x
1. 确保 nvidia 驱动已安装
先安装 nvidia
驱动,请参考前面文章 https://blog.csdn.net/wohu1104/article/details/107032493
2. 安装 CUDA
2.1 下载安装
在官网 https://developer.nvidia.com/cuda-toolkit-archive如下截图, 选择自己系统对应的 CUDA
版本,
2.2 CUDA 10.2 安装
然后点击进去,进入安装方式页面,如下图
然后在命令行中执行以下语句:
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.runsudo
sh cuda_10.2.89_440.33.01_linux.run
安装过程如下:
这里注意去勾选 NVIDIA Driver
因为前面已经安装,所以此处不需要再安装。
确认 Yes
,添加动态链接。
安装完成后的输出结果如下:
wohu@ubuntu1804:~/CUDA10-linux$ sudo ./cuda_10.2.89_440.33.01_linux.run
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-10.2/
Samples: Installed in /home/wohu/, but missing recommended libraries
Please make sure that
- PATH includes /usr/local/cuda-10.2/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-10.2/lib64, or, add /usr/local/cuda-10.2/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.2/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.2/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 440.00 is required for CUDA 10.2 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run --silent --driver
Logfile is /var/log/cuda-installer.log
可以看到 /usr/local/
目录下已经有 cuda -> /usr/local/cuda-10.2//
软链接。
wohu@ubuntu1804:~/CUDA10-linux$ ll /usr/local/
total 48
drwxr-xr-x 12 root root 4096 6月 30 09:25 ./
drwxr-xr-x 11 root root 4096 2月 4 02:25 ../
drwxr-xr-x 2 root root 4096 2月 4 02:22 bin/
lrwxrwxrwx 1 root root 21 6月 30 09:25 cuda -> /usr/local/cuda-10.2//
drwxr-xr-x 18 root root 4096 6月 30 09:25 cuda-10.2/
drwxr-xr-x 2 root root 4096 2月 4 02:22 etc/
drwxr-xr-x 2 root root 4096 2月 4 02:22 games/
drwxr-xr-x 2 root root 4096 2月 4 02:22 include/
drwxr-xr-x 4 root root 4096 6月 29 18:35 lib/
lrwxrwxrwx 1 root root 9 6月 16 16:24 man -> share/man/
drwxr-xr-x 2 root root 4096 2月 4 02:22 sbin/
drwxr-xr-x 6 root root 4096 2月 4 02:25 share/
drwxr-xr-x 2 root root 4096 2月 4 02:22 src/
drwxr-xr-x 6 root root 4096 6月 19 18:49 sunlogin/
wohu@ubuntu1804:~/CUDA10-linux$
2.3 CUDA 10 安装
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n
Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-10.0 ]: 回车
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/linkdome ]: 回车
2.4 添加环境变量
打开 ~/.bashrc
sudo vi ~/.bashrc
在文件最后添加以下环境变量到 ~/.bashrc
并保存退出。
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
使其生效
sudo source ~/.bashrc
2.5 验证安装成功
最后输入命令 nvcc -V
有如下输出,说明已安装成功。
wohu@ubuntu1804:/$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
wohu@ubuntu1804:/$
3. 安装 cuDNN
3.1 下载
官网地址 https://developer.nvidia.com/rdp/form/cudnn-download-survey 注册账号,并下载对应版本的 cuDNN
版本。
3.2 安装
对压缩包进行解压:
tar -xvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
解压过程如下:
wohu@ubuntu1804:~/CUDA10-linux$ tar -xvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.6.5
cuda/lib64/libcudnn_static.a
wohu@ubuntu1804:~/CUDA10-linux$
执行以下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
3.3 验证是否安装成功
输入以下命令,
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
有如下输出,说明已安装成功。
Ubuntu 安装 NVIDIA 显卡驱动详细步骤(ERROR: The Nouveau kernel driver is currently in use by your system)
1. 禁用 Nouveau 驱动
在禁用 Nouveau
驱动前我们先了解下它是啥?有什么作用。
Nouveau
是由第三方为 NVIDIA
显卡开发的一个开源 3D 驱动,也没能得到 NVIDIA
的认可与支持。虽然 Nouveau Gallium3D
在游戏速度上还远远无法和 NVIDIA
官方私有驱动相提并论,不过却让 Linux
更容易的应对各种复杂的 NVIDIA
显卡环境,让用户安装完系统即可进入桌面并且有不错的显示效果,所以,很多 Linux
发行版默认集成了 Nouveau
驱动,在遇到 NVIDIA
显卡时默认安装。
企业版的Linux
更是如此,几乎所有支持图形界面的企业 Linux
发行版都将 Nouveau
收入其中。
对于个人桌面用户来说,处于成长阶段的 Nouveau
并不完美,与企业版不一样,个人用户除了想让正常显示图形界面外很多时候还需要一些 3D 特效,Nouveau
多数时候并不能完成,而用户在安装 NVIDIA
官方私有驱动的时候 Nouveau
又成为了阻碍,不禁用 Nouveau
安装时总是报错, 错误如下:
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver……
打开 terminal
,输入
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在文件最后加入以下内容
blacklist nouveau
options nouveau modeset=0
更新使其生效
sudo update-initramfs -u
重启机器
reboot
检查是否禁用成功
lspci | grep nouveau
没有内容输出,说明禁用成功。
2. 安装 gcc/cmake
sudo apt-get install build-essential
sudo apt-get install cmake
检查是否安装成功:
gcc --version
cmake --version
有版本号显示说明安装成功。
3. 安装 NVIDIA 驱动
输入以下命令,检查系统推荐的驱动版本
ubuntu-drivers devices
输出如下:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001B80sv00007377sd00001110bc03sc00i00
vendor : NVIDIA Corporation
model : GP104 [GeForce GTX 1080]
manual_install: True
driver : nvidia-driver-440 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
可以看到 driver
一行中共有推荐的驱动程序版本号
这里不推荐使用 sudo apt install nvidia-driver-440
这种方式安装。
3.1 官网下载驱动
https://www.nvidia.cn/Download/index.aspx?lang=cn
选择自己系统对应的驱动,并点击 “搜索” 下载进行下载。
3.2 关闭显示模式
同时按住 Ctrl+Alt+F1
进入 tty1 终端模式,并且输入下面命令关闭显示管理:
sudo service lightdm stop
3.3 安装驱动
在命令行终端运行刚才下载的驱动:
sudo ./NVIDIA-Linux-x86_64-440.82.run --no-opengl-files
安装过程按照下面步骤进行选择:
3.4 检查安装结果
重启机器后,输入 nvidia-smi
查看输出显示类似下面,就说明已经安装成功。
wohu@ubuntu1804:/home$ nvidia-smi
Tue Jun 30 06:35:37 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82 Driver Version: 440.82 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| 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 1080 Off | 00000000:01:00.0 Off | N/A |
| 0% 47C P8 8W / 180W | 17MiB / 8116MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 916 G /usr/lib/xorg/Xorg 15MiB |
+-----------------------------------------------------------------------------+
wohu@ubuntu1804:/home$