人工神经网络已然成为现今最流行的机器学习工具,框架平台也在不断地完善升级,对GPU的依赖也越来越严重,在框架们升级的过程中会改进原有版本的错误并且提供很多美好的合理的新特性,会给使用者带来更多的便利,也让使用者对这个框架更有信心,让框架更加光彩夺目。
但是事实上,在大家为新版本的Pytorch和Tensorflow千呼万唤始出来欢呼雀跃的时候,角落里却有一小撮人为莫名其妙的环境错误抓耳挠腮。因为框架的正确运行需要配套固定版本的python、显卡驱动、CUDA、CUDNN,低了不行高了也不行。

那怎么查看各个环境的版本呢,各个框架需要什么版本的运行环境呢,每装一次查一次的我受够了,于是有了这篇博客,希望能帮大家多走一些弯路,少走一些捷径。

我的系统为Ubuntu 16.04

 

一、环境查看的方法

查看python版本

其实命令行进入python就会显示版本;

也可以:

~$ python --version

查看CUDA版本

~$ cat /usr/local/cuda/version.txt

查看GPU 型号

~$ lspci | grep -i nvidia

查看NVIDIA驱动版本

~$ sudo dpkg --list | grep nvidia-*

查看cudnn版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

这里会显示一些宏
比如我的显示:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 4
#define CUDNN_PATCHLEVEL 1
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

按照 CUDNN_VERSION的宏定义计算出来的是7401

但是CuDNN版本实际上为 7.4.1

查看Tensorflow版本

如果安装了pip或者conda可以运行

pip list

或者

conda list

找到其中Tensorflow查看版本

也可以进入python环境:

import tensorflow as tf
tf.__version__

查看Pytorch版本

安装了pip或者conda可以向上面一样运行

pip list

或者

conda list

找到其中叫做 torch 的包查看版本(注意不叫pytorch)

也可以进入python环境,输入:

import torch
torch.__version__

查看已经安装的Pytorch对应的CUDA版本

进入python环境,输入:

import torch
torch.version.cuda

查看已经安装的Pytorch对应的CUDNN版本

进入python环境,输入:

import torch
torch.backends.cudnn.version()

二、各环境版本配套要求

好啦,我们已经知道自己的环境是啥版本了,然后我们了解一下各个套件之间的依赖关系和配套的要求。

CUDA与NVIDIA驱动版本

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

CUDA Toolkit and Compatible Driver Versions

CUDA Toolkit and Compatible Driver Versions
CUDA ToolkitLinux x86_64 Driver VersionWindows x86_64 Driver Version
CUDA 10.1 (10.1.105 general release, and updates)>= 418.39>= 418.96
CUDA 10.0.130>= 410.48>= 411.31
CUDA 9.2 (9.2.148 Update 1)>= 396.37>= 398.26
CUDA 9.2 (9.2.88)>= 396.26>= 397.44
CUDA 9.1 (9.1.85)>= 390.46>= 391.29
CUDA 9.0 (9.0.76)>= 384.81>= 385.54
CUDA 8.0 (8.0.61 GA2)>= 375.26>= 376.51
CUDA 8.0 (8.0.44)>= 367.48>= 369.30
CUDA 7.5 (7.5.16)>= 352.31>= 353.66
CUDA 7.0 (7.0.28)>= 346.46>= 347.62

TensorFlow与Python, CUDA, cuDNN的版本对应关系

https://tensorflow.google.cn/install/source#linux

版本Python 版本编译器编译工具cuDNNCUDA
tensorflow_gpu-2.0.0-alpha02.7、3.3-3.6GCC 4.8Bazel 0.19.27.4.1以及更高版本CUDA 10.0 (需要 410.x 或更高版本)
tensorflow_gpu-1.13.02.7、3.3-3.6GCC 4.8Bazel 0.19.27.410
tensorflow_gpu-1.12.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.11.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.10.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.9.02.7、3.3-3.6GCC 4.8Bazel 0.11.079
tensorflow_gpu-1.8.02.7、3.3-3.6GCC 4.8Bazel 0.10.079
tensorflow_gpu-1.7.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.6.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.5.02.7、3.3-3.6GCC 4.8Bazel 0.8.079
tensorflow_gpu-1.4.02.7、3.3-3.6GCC 4.8Bazel 0.5.468
tensorflow_gpu-1.3.02.7、3.3-3.6GCC 4.8Bazel 0.4.568
tensorflow_gpu-1.2.02.7、3.3-3.6GCC 4.8Bazel 0.4.55.18
tensorflow_gpu-1.1.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18
tensorflow_gpu-1.0.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18

CUDA、CUDNN和显卡驱动

引用自:https://blog.csdn.net/qq_27825451/article/details/89082978

1、显卡驱动与CUDA

CUDA和显卡驱动没有一一对应的关系

NVIDIA的显卡驱动器与CUDA并不是一一对应的哦,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,比如我的电脑上同事安装了 CUDA 9.0、CUDA 9.2、CUDA 10.0三个版本。一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了,但是由于使用离线的CUDA总是会捆绑CUDA和驱动程序,所以在使用多个CUDA的时候就不要选择离线安装的CUDA了,否则每次都会安装不同的显卡驱动,这不太好,我们直接安装一个最新版的显卡驱动,然后在线安装不同版本的CUDA即可。

2、cuDNN与CUDA

cuDNN与CUDA没有一一对应的关系

cuDNN是一个SDK,是一个专门用于神经网络的加速包,注意,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。

NVIDIA显卡以及对应的显卡驱动

https://developer.nvidia.com/cuda-gpus

列出部分常见的Nvidia显卡型号

台式机

GeForce Desktop Products
GPUCompute Capability
NVIDIA TITAN RTX7.5
Geforce RTX 2080 Ti7.5
Geforce RTX 20807.5
Geforce RTX 20707.5
Geforce RTX 20607.5
NVIDIA TITAN V7
NVIDIA TITAN Xp6.1
NVIDIA TITAN X6.1
GeForce GTX 1080 Ti6.1
GeForce GTX 10806.1
GeForce GTX 10706.1
GeForce GTX 10606.1
GeForce GTX 10506.1
GeForce GTX TITAN X5.2
GeForce GTX TITAN Z3.5
GeForce GTX TITAN Black3.5
GeForce GTX TITAN3.5
GeForce GTX 980 Ti5.2
GeForce GTX 9805.2
GeForce GTX 9705.2
GeForce GTX 9605.2
GeForce GTX 9505.2
GeForce GTX 780 Ti3.5
GeForce GTX 7803.5
GeForce GTX 7703
GeForce GTX 7603
GeForce GTX 750 Ti5
GeForce GTX 7505
GeForce GTX 6903
GeForce GTX 6803
GeForce GTX 6703
GeForce GTX 660 Ti3
GeForce GTX 6603
GeForce GTX 650 Ti BOOST3
GeForce GTX 650 Ti3
GeForce GTX 6503
GeForce GTX 560 Ti2.1
GeForce GTX 550 Ti2.1
GeForce GTX 4602.1
GeForce GTS 4502.1
GeForce GTS 450*2.1
GeForce GTX 5902
GeForce GTX 5802
GeForce GTX 5702
GeForce GTX 4802
GeForce GTX 4702
GeForce GTX 4652
GeForce GT 7403
GeForce GT 7303.5
GeForce GT 730 DDR3,128bit2.1
GeForce GT 7203.5
GeForce GT 705*3.5
GeForce GT 640 (GDDR5)3.5
GeForce GT 640 (GDDR3)2.1
GeForce GT 6302.1
GeForce GT 6202.1
GeForce GT 6102.1
GeForce GT 5202.1
GeForce GT 4402.1
GeForce GT 440*2.1
GeForce GT 4302.1
GeForce GT 430*2.1

笔记本

GeForce Notebook Products
GPUCompute Capability
Geforce RTX 20807.5
Geforce RTX 20707.5
Geforce RTX 20607.5
GeForce GTX 10806.1
GeForce GTX 10706.1
GeForce GTX 10606.1
GeForce GTX 9805.2
GeForce GTX 980M5.2
GeForce GTX 970M5.2
GeForce GTX 965M5.2
GeForce GTX 960M5
GeForce GTX 950M5
GeForce 940M5
GeForce 930M5
GeForce 920M3.5
GeForce 910M5.2
GeForce GTX 880M3
GeForce GTX 870M3
GeForce GTX 860M3.0/5.0(**)
GeForce GTX 850M5
GeForce 840M5
GeForce 830M5
GeForce 820M2.1
GeForce 800M2.1
GeForce GTX 780M3
GeForce GTX 770M3
GeForce GTX 765M3
GeForce GTX 760M3
GeForce GTX 680MX3
GeForce GTX 680M3
GeForce GTX 675MX3
GeForce GTX 675M2.1
GeForce GTX 670MX3
GeForce GTX 670M2.1
GeForce GTX 660M3
GeForce GT 755M3
GeForce GT 750M3
GeForce GT 650M3
GeForce GT 745M3
GeForce GT 645M3
GeForce GT 740M3
GeForce GT 730M3
GeForce GT 640M3
GeForce GT 640M LE3
GeForce GT 735M3
GeForce GT 635M2.1
GeForce GT 730M3
GeForce GT 630M2.1
GeForce GT 625M2.1
GeForce GT 720M2.1
GeForce GT 620M2.1
GeForce 710M2.1
GeForce 705M2.1
GeForce 610M2.1
GeForce GTX 580M2.1
GeForce GTX 570M2.1
GeForce GTX 560M2.1
GeForce GT 555M2.1
GeForce GT 550M2.1
GeForce GT 540M2.1
GeForce GT 525M2.1
GeForce GT 520MX2.1
GeForce GT 520M2.1
GeForce GTX 485M2.1
GeForce GTX 470M2.1
GeForce GTX 460M2.1
GeForce GT 445M2.1
GeForce GT 435M2.1
GeForce GT 420M2.1
GeForce GT 415M2.1
GeForce GTX 480M2
GeForce 710M2.1
GeForce 410M2.1

Pytorch与CUDA的对应关系

Pytorch没有Tensorflow那么明确的表格,但是https://pytorch.org/get-started/locally/提供了最新的Pytorch各个环境的安装命令,从表格中可以看到环境需求。

现在(2019.08.28)最新的Pytorch为1.2 需求CUDA版本9.2或10.0

以往的Pytorch版本安装命令如下:

https://pytorch.org/get-started/previous-versions/

Installing with CUDA 9

conda install pytorch=0.4.1 cuda90 -c pytorch

or

conda install pytorch=0.4.1 cuda92 -c pytorch

Installing with CUDA 8

conda install pytorch=0.4.1 cuda80 -c pytorch

Installing with CUDA 7.5

conda install pytorch=0.4.1 cuda75 -c pytorch

Installing without CUDA

conda install pytorch=0.4.1 -c pytorch

PyTorch Linux binaries compiled with CUDA 7.5

 

 

GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 3 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐