废话不多说,各位深度学习的战友们,我没有矿所以把用了好几年的电脑来跑深度学习中的人工神经网络,于是遇到了TensorFlow使用GPU加速需要安装的一系列坑。真的只要有坑的地方我都踩过了,接下来汇总一套真实有效的方法。只要你的电脑有GPU,不算太垃圾,此方法绝对有用!!!(不要说,我的问题可能和你的不一样,此法为通法。)我最终是失败的,但你们是可以成功的,因为我电脑不行。
步骤如下:
一、先看看自己的电脑显卡能不能用。
二、显卡通过,配置需要的组件。
三、安装测试。
四、救救孩子。
开始整活!!!
一、显卡测试
nvidia-smi #查看一次显卡基本信息,不再更新
打开你的终端,CMD啥的都行,输入上面这个代码,就会出现上图,看到NVIDIA—SMI的数值376.51和下面的显卡name是GeForce 820M。
对照下表,看看你的显卡算力多少。
(算力小于3.5基本上就是不合格,出门右转,别看了。设置好也没用白搭。要么直接显示算力不够,要么加速一点也不明显。
解决方法:
1.买高端显卡
2.换电脑
3.网上租环境)
由于NVIDIA存在多个系列的显卡类型,把这里仅仅显示出GeForce系列的显卡以及各个显卡的计算能力(compute capability),详情可以参考官网链接:
https://developer.nvidia.com/cuda-gpus
GPU | 计算能力 |
---|---|
GeForce RTX 3090 | 8.6 |
GeForce RTX 3080 | 8.6 |
GeForce RTX 3070 | 8.6 |
NVIDIA TITAN RTX | 7.5 |
GeForce RTX 2080 Ti | 7.5 |
GeForce RTX 2080 | 7.5 |
GeForce RTX 2070 | 7.5 |
GeForce RTX 2060 | 7.5 |
NVIDIA TITAN V | 7.0 |
NVIDIA TITAN Xp | 6.1 |
NVIDIA TITAN X | 6.1 |
GeForce GTX 1080 Ti | 6.1 |
GeForce GTX 1080 | 6.1 |
GeForce GTX 1070 | 6.1 |
GeForce GTX 1060 | 6.1 |
GeForce GTX 1050 | 6.1 |
GeForce GTX TITAN X | 5.2 |
GeForce GTX TITAN Z | 3.5 |
GeForce GTX TITAN Black | 3.5 |
GeForce GTX TITAN | 3.5 |
GeForce GTX 980 Ti | 5.2 |
GeForce GTX 980 | 5.2 |
GeForce GTX 970 | 5.2 |
GeForce GTX 960 | 5.2 |
GeForce GTX 950 | 5.2 |
GeForce GTX 780 Ti | 3.5 |
GeForce GTX 780 | 3.5 |
GeForce GTX 770 | 3.0 |
GeForce GTX 760 | 3.0 |
GeForce GTX 750 Ti | 5.0 |
GeForce GTX 750 | 5.0 |
GeForce GTX 690 | 3.0 |
GeForce GTX 680 | 3.0 |
GeForce GTX 670 | 3.0 |
GeForce GTX 660 Ti | 3.0 |
GeForce GTX 660 | 3.0 |
GeForce GTX 650 Ti BOOST | 3.0 |
GeForce GTX 650 Ti | 3.0 |
GeForce GTX 650 | 3.0 |
GeForce GTX 560 Ti | 2.1 |
GeForce GTX 550 Ti | 2.1 |
GeForce GTX 460 | 2.1 |
GeForce GTS 450 | 2.1 |
GeForce GTS 450* | 2.1 |
GeForce GTX 590 | 2.0 |
GeForce GTX 580 | 2.0 |
GeForce GTX 570 | 2.0 |
GeForce GTX 480 | 2.0 |
GeForce GTX 470 | 2.0 |
GeForce GTX 465 | 2.0 |
GeForce GT 740 | 3.0 |
GeForce GT 730 | 3.5 |
GeForce GT 730 DDR3,128 位 | 2.1 |
GeForce GT 720 | 3.5 |
GeForce GT 705* | 3.5 |
GeForce GT 640 (GDDR5) | 3.5 |
GeForce GT 640 (GDDR3) | 2.1 |
GeForce GT 630 | 2.1 |
GeForce GT 620 | 2.1 |
GeForce GT 610 | 2.1 |
GeForce GT 520 | 2.1 |
GeForce GT 440 | 2.1 |
GeForce GT 440* | 2.1 |
GeForce GT 430 | 2.1 |
GeForce GT 430* | 2.1 |
GPU | 计算能力 |
---|---|
GeForce RTX 2080 | 7.5 |
GeForce RTX 2070 | 7.5 |
GeForce RTX 2060 | 7.5 |
GeForce GTX 1080 | 6.1 |
GeForce GTX 1070 | 6.1 |
GeForce GTX 1060 | 6.1 |
GeForce GTX 980 | 5.2 |
GeForce GTX 980M | 5.2 |
GeForce GTX 970M | 5.2 |
GeForce GTX 965M | 5.2 |
GeForce GTX 960M | 5.0 |
GeForce GTX 950M | 5.0 |
GeForce 940M | 5.0 |
GeForce 930M | 5.0 |
GeForce 920M | 3.5 |
GeForce 910M | 5.2 |
GeForce GTX 880M | 3.0 |
GeForce GTX 870M | 3.0 |
GeForce GTX 860M | 3.0/5.0(**) |
GeForce GTX 850M | 5.0 |
GeForce 840M | 5.0 |
GeForce 830M | 5.0 |
GeForce 820M | 2.1 |
GeForce 800M | 2.1 |
GeForce GTX 780M | 3.0 |
GeForce GTX 770M | 3.0 |
GeForce GTX 765M | 3.0 |
GeForce GTX 760M | 3.0 |
GeForce GTX 680MX | 3.0 |
GeForce GTX 680M | 3.0 |
GeForce GTX 675MX | 3.0 |
GeForce GTX 675M | 2.1 |
GeForce GTX 670MX | 3.0 |
GeForce GTX 670M | 2.1 |
GeForce GTX 660M | 3.0 |
GeForce GT 755M | 3.0 |
GeForce GT 750M | 3.0 |
GeForce GT 650M | 3.0 |
GeForce GT 745M | 3.0 |
GeForce GT 645M | 3.0 |
GeForce GT 740M | 3.0 |
GeForce GT 730M | 3.0 |
GeForce GT 640M | 3.0 |
GeForce GT 640M LE | 3.0 |
GeForce GT 735M | 3.0 |
GeForce GT 635M | 2.1 |
GeForce GT 730M | 3.0 |
GeForce GT 630M | 2.1 |
GeForce GT 625M | 2.1 |
GeForce GT 720M | 2.1 |
GeForce GT 620M | 2.1 |
GeForce 710M | 2.1 |
GeForce 705M | 2.1 |
GeForce 610M | 2.1 |
GeForce GTX 580M | 2.1 |
GeForce GTX 570M | 2.1 |
GeForce GTX 560M | 2.1 |
GeForce GT 555M | 2.1 |
GeForce GT 550M | 2.1 |
GeForce GT 540M | 2.1 |
GeForce GT 525M | 2.1 |
GeForce GT 520MX | 2.1 |
GeForce GT 520M | 2.1 |
GeForce GTX 485M | 2.1 |
GeForce GTX 470M | 2.1 |
GeForce GTX 460M | 2.1 |
GeForce GT 445M | 2.1 |
GeForce GT 435M | 2.1 |
GeForce GT 420M | 2.1 |
GeForce GT 415M | 2.1 |
GeForce GTX 480M | 2.0 |
GeForce 710M | 2.1 |
GeForce 410M | 2.1 |
比如我的显卡是GeForce 820M,查表可得算力是2.1(红色部分),所以最终设置好一切也是白搭,没有加速效果,算力太低了。 下面就不用看了。
二、显卡测试通过,开始配置组件
一共需要如下组件:
tensorflow-gpu、Python、cuda和cudann
(这里就是坑开始的地方,版本匹配必须对应。具体问题我就不多说,我就告诉你们怎么做,跟着来就行。)
1.tensorflow-gpu的安装
先核对版本,找到CUDA版本号。
在第一步里,我们查看了显卡名字还有一个NVIDIA—SMI的数值376.51,这里就是使用这个数值,找到你能够安装的CUDA Toolkit版本号。
比如,我的显卡NVIDIA—SMI的数值376.51(有些显卡数值低,是因为可以升级显卡驱动,但我的已经是最新了。方法自行百度就行,这里不过多赘述。),对应的Windows版本最大可以使用CUDA Toolkit版本号是CUDA 8.0 (8.0.61 GA2),记住这个号码,等会用它来配置TensorFlow-GPU版本号。
CUDA Toolkit | Toolkit Driver Version | |
---|---|---|
Linux x86_64 Driver Version | Windows x86_64 Driver Version | |
CUDA 11.4 Update 1 | >=470.57.02 | >=471.41 |
CUDA 11.4.0 GA | >=470.42.01 | >=471.11 |
CUDA 11.3.1 Update 1 | >=465.19.01 | >=465.89 |
CUDA 11.3.0 GA | >=465.19.01 | >=465.89 |
CUDA 11.2.2 Update 2 | >=460.32.03 | >=461.33 |
CUDA 11.2.1 Update 1 | >=460.32.03 | >=461.09 |
CUDA 11.2.0 GA | >=460.27.03 | >=460.82 |
CUDA 11.1.1 Update 1 | >=455.32 | >=456.81 |
CUDA 11.1 GA | >=455.23 | >=456.38 |
CUDA 11.0.3 Update 1 | >= 450.51.06 | >= 451.82 |
CUDA 11.0.2 GA | >= 450.51.05 | >= 451.48 |
CUDA 11.0.1 RC | >= 450.36.06 | >= 451.22 |
CUDA 10.2.89 | >= 440.33 | >= 441.22 |
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 |
知道了电脑显卡能够驱动的CUDA号,然后对照下表,找到TensorFlow-GPU、Python、cuDNN的版本号。刚刚我的电脑可以用的CUDA是CUDA 8.0 (8.0.61 GA2),开始查下表。
这个是winds的版本号对应,其他系统的去这个网址里找
https://www.tensorflow.org/install/source#common_installation_problems
版本 | Python 版本 | 编译器 | 构建工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.4.0 | 3.6-3.8 | MSVC 2019 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow_gpu-2.2.0 | 3.5-3.8 | MSVC 2019 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow_gpu-2.1.0 | 3.5-3.7 | MSVC 2019 | Bazel 0.27.1-0.29.1 | 7.6 | 10.1 |
tensorflow_gpu-2.0.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3.5-3.7 | MSVC 2015 update 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7.2 | 9.0 |
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 |
如表,红色部分我就我能够使用的TensorFlow-GPU、Python、cuDNN版本号,把他们记下来。我这里以下图版本为例继续安装。
tensorflow_gpu-1.4.0 | 3.5-3.6 | 6 | 8 |
开始下面的步骤,配置环境。
2.为了方便配置Python环境,建议下载一个Anaconda Navigator,可以随意创建Python版本环境来配合其他组件的版本。Python版本环境创如下图。(Anaconda软件下载就不说,直接官网下载就行了,安装直接全部默认就好了,打开就如下图了。)
官网下载 https://www.anaconda.com/download/
我这里需要的环境是Python3.5-3.6,我就配置一个3.6环境,如图tf36.
Python3.6环境配置完成 ,通过如下方法打开Anaconda的终端。
输入如下代码激活tf36环境。
activate tf36 # 这个tf36就是你刚刚设置的Python版本环境名称
刚刚我们查表知道我们需要安装的TensorFlow-GPU版本是tensorflow_gpu-1.4.0
所以,我们输入如下代码安装指定版本,不要直接安装不指定版本,会报错不匹配的。
# 版本号根据自己的正确版本进行修改一下,我的是1.4.0,你们直接修改这串数字就行
pip install --upgrade --ignore-installed tensorflow-gpu==1.4.0
到此为止你就已经成功了一半。打开的程序可以关闭了,下面基本上用不着。anaconda真的非常强大,感兴趣的自己多摸索。
3.CUDA的安装
刚刚查表匹配的我的显卡版本是CUDA 8
所以,我下载CUDA 8.0安装
直接百度搜索cuda8.0下载 https://developer.nvidia.com/cuda-80-ga2-download-archive
其他版本自己进去找,下载过程是一样的(记得版本号千万别下错了,得是你自己的电脑显卡支持的版本)
直接下载,默认C盘安装,之后都是默认安装即可。
4.cuDNN的安装
我的匹配cuDNN版本是v6.0
从NVIDIA官网进行下载(下载你们电脑匹配的版本)
https://developer.nvidia.com/rdp/cudnn-archive
下载完解压缩后会有三个文件夹,
将其复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0中
(你们复制到你们对应的CUDA v版本中去)
在环境变量中加入如下路径(这个不会配置环境变量的,自行百度,太过简单)
为了方便,大家可以修改一下版本号复制
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
到此 为止,恭喜你们,组件配置完成,成功了。
三、测试是可以加速
我用的是pycharm编译器,其他编译器也是一样的
1.将pycharm的解释器设置为anaconda的之前创建的tf36环境
5.选择python解释器后,OK-->Apply-->OK,
pycharm环境配置完成,可以使用TensorFlow-GPU了。测试一下。
import warnings
warnings.filterwarnings('ignore') # 忽略正常运行的红色警告
import tensorflow as tf
print(tf.__version__)
print(tf.test.is_gpu_available()) # 查询GPU是否可用
if tf.test.gpu_device_name():
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
print("Please install GPU version of TF")
我的电脑测试结果是GPU不可用的,因为我第一步就说了,算力不够匹配上版本也白搭,我的GPU算力就是2.1,而这里最低算力需要3.0
当然了,你们按照方法结果肯定是True,已经可用使用GPU加速了,恭喜大家可用愉快的玩耍了。
其他报错肯定是没有安装你们需要的包,直接pip install 包名 安装就行。
四、救救孩子。
大伙们都可以快乐的玩耍了,孩子不易啊,踩了所有坑还是无法快乐玩耍。
看看能不能捐点硬币给我,换个显卡啊,我的算力2.1完全无法快乐啊!!!!!!