深度学习第一步 利用CUDA进行GPU加速Win11+cuda11.2+cuDNN8.1+tensorflow_gpu-2.10+pytorch安装配置教程(避坑指南)

深度学习第一步 利用CUDA进行GPU加速配置

Python 机器学习入门之gpu加速 cuda的配置使用 Win10/Win11+vs2019+cuda11.2+cuDNN8.1+tensorflow_gpu-2.10.0+pytorch安装配置教程



前言

cuda的GPU加速对于小白来说还是十分有难度的,尤其是一开始版本的选择,笔者电脑的cuda版本是cuda12.2,所以一开始装的是cuda12.2版本的,装了才知道得低一个版本才能装上,再后来了解到cuda11.2是飞桨支持的,同时也支持tensorflow等很多深度学习开源库,因此笔者最终决定下载cuda11.2版本的以及其他适配版本的cuDNN8.1和tensorflow_gpu-2.10.0,下面笔者就按照安装顺序进行讲解:


一、下载VS2019

第一个坑!电脑上没有VS的C++库后面安装cuda会报错,同时cuda11.2是仅适配vs2017或vs2019的。因此,这里笔者先安装vscode2019。
安装包下载地址:Vscode2019
下载社区版
下载社区版,详细安装配置C++库教程参考:https://blog.csdn.net/qq_50918834/article/details/120564965

二、查看驱动版本

在cmd里输入nvidia-smi 或者在桌面右键nvidia控制面板→左下角“系统信息”→左上角“组件”查看。
驱动版本是537.70,CUDA版本是12.2
可以看到笔者的电脑驱动版本是537.70,CUDA版本是12.2,只要安装的cuda比自己电脑第一个版本就可以,也就是cuda12.1以下都能下载。
因为要适配飞桨(飞桨是完全适配CUDA11.2和cuDNN8.1的),所以笔者安装的是cuda11.2。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

三、CUDA11.2下载安装

在官网下载:https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述
可以发现低版本的CUDA都没有win11的选择,没有关系下载win10的即可,然后就是管理员身份运行等一系列操作了。
在这里插入图片描述
若出现下面这个问题,请将控制面板中的NVIDIA Framework SDK…删掉
在这里插入图片描述
剩下的按照提示选择“自定义安装”,“下一步”,在选择安装位置这里要记清楚路径,后面会把下载的cuDNN文件复制到相应路径下。
在这里插入图片描述
其中选项中CUDA里有一个“Visual Studio Interpreter”我勾选了
在这里插入图片描述
点击关闭后,直接弹出对应的文件夹。
若安装成功,则在cmd里输入nvcc --v,会看到版本号,就是安装成功了。
在这里插入图片描述
CUDA的第一步完成,还有进行系统环境配置和SDK的工作。(原文链接:https://blog.csdn.net/Vertira/article/details/125060383,为了流程完整我按照这个教程成功了,没有再重新弄只是按流程把博主的截图粘贴过来了)

(1)环境变量

环境变量里面系统自动添加CUDA_PATH和CUDA_PATH_V11_2路径。只需要在再把对应路径下的lib和bin文件路径加上就行了。

CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin

在这里插入图片描述

(2)SDK配置

此时需要找到相用的文件,用vs2019打开进行配置。
在这里插入图片描述
在这里插入图片描述
出现下面的输出代表成功。
在这里插入图片描述
按照教程,此时还需要配置环境变量:
(1)确认系统变量中:CUDA_PATH和CUDA_PATH_V10.0已经存在
(2)我们还需要在环境变量中添加如下几个变量:

CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

可在cmd中查看配置情况(命令:set cuda)

四、cuDNN8.1下载

cuDNN下载链接:https://developer.nvidia.com/rdp/cudnn-archive
需要注册英伟达账户 才能下载,一个邮箱注册失败了就换一个。
在这里插入图片描述
第一个和第三个都行,这里我跟着教程(https://www.bilibili.com/read/cv27240928/?jump_opus=1)选择了第一个。
下载成功后,打开压缩包,把里面cudnn中的的include,lib,bin文件夹里面的所有文件分别的 对应的 复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2文件 对应的include,lib,bin文件里面
比如bin文件夹中:
在这里插入图片描述
复制下面第一个图的全部文件到第二个图中粘贴
在这里插入图片描述
在这里插入图片描述

在这个路径下打开终端:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\demo_suite
验证deviceQuery和bandwidthTest
在这里插入图片描述

一开始我按照博主的教程直接输入deviceQuery或bandwidthTest会报错,这是因为路径的问题,后面改成下面的形式就没错了:
(可以输入deviceQuery到一半的时候,按“Tab”键,自动填充就不会出错)
在这里插入图片描述
成功,
在这里插入图片描述
成功!到此CUDA和cuDNN安装结束。
另外提一下,在Anaconda中可以通过下面指令查找安装更多版本的Cuda和cuDNN

anaconda search -t conda cuda
anaconda search -t conda cudnn

五、cuda 如何卸载重装

参考:https://cloud.tencent.com/developer/article/2156737?areaSource=102001.15&traceId=nVOHR182mwV01L5GbnX9y

六、安装Anaconda

Anaconda可以同时管理多个版本的python,能创建虚拟环境,各个python版本的虚拟环境不受影响。由于笔者电脑原来就装了Anaconda所以这里就不做展开了。
Anaconda安装教程(超详细版)https://blog.csdn.net/m0_61607990/article/details/129531686

七、tensorflow_gpu-2.10.0安装及验证

对照表格我选择安装2.10.0的cpu和gpu(对应关系查询表:https://tensorflow.google.cn/install/source_windows)

下面这些版本已经测试过,可以匹配使用。CUDA版本只受显卡驱动版本的影响,版本越新支持的CUDA越多,且向下兼容。同时,需要注意TF2.11以上已经不再支持windows系统了。
在这里插入图片描述
可以直接pip下载,将TF下载到默认python路径下:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.10.0

但笔者这里通过Anaconda创建虚拟环境进行下载,方便以后其他python代码的管理:
打开Anaconda Powershell Prompt
在这里插入图片描述
(1)创建一个名字为tensorflow的虚拟环境,这个环境用的python版本是3.9版本的:
conda create -n tensorflow python=3.9
在这里插入图片描述
(2)查看虚拟环境列表:

conda env list

有tensorflow说明创建成功

在这里插入图片描述
(3)进入环境,输入命令:activate tensorflow,就可以进入tensorflow环境中:

conda activate tensorflow

在这里插入图片描述
(4)如果要退出环境,输入:

conda deactivate

(5)因为我的conda环境在D盘中,所以将路径改了以下。如果anaconda安装的时候是默认路径,这一步不需要。
在这里插入图片描述
(6)安装指定版本的tensorflow-gpu,,我安装的是2.10.0,根据你自己的配套版本安装,输入命令:

(有梯子就直接用这个)pip install tensorflow-gpu==2.10.0
(没有梯子就换源用这个)pip install tensorflow-gpu==2.10.0 -i  https://pypi.mirrors.ustc.edu.cn/simple 

(7)打开python环境,导入tensorflow包进行测试 ,查看tensorflow的版本信息, 输入命令:

import tensorflow as tf
print(tf.__version__) #tensorflow版本
print('GPU', tf.test.is_gpu_available()) #gpu

在这里插入图片描述
(8)退出tensorflow环境:

conda deactivate

(9)测试 Tensorflow-gpu 是否安装成功
打开Anaconda,选择tensorflow环境,打开spyder,第一次打开需要安装Spyder,直接点下方的install即可。
在这里插入图片描述
输入以下测试代码:

import tensorflow as tf

print(tf.__version__)
print(tf.test.gpu_device_name())
print(tf.config.experimental.set_visible_devices)
print('GPU:', tf.config.list_physical_devices('GPU'))
print('CPU:', tf.config.list_physical_devices(device_type='CPU'))
print(tf.config.list_physical_devices('GPU'))
print(tf.test.is_gpu_available())
# 输出可用的GPU数量
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
# 查询GPU设备

打开Spyder:
在这里插入图片描述
默认配置运行
在这里插入图片描述
查看结果:
在这里插入图片描述
出现红框中tf版本号和True表示成功。
(10)卸载重装
tensorflow-gpu卸载:https://blog.csdn.net/weixin_43412762/article/details/129868620

测试GPU运算速度

同样的在Spyder下输入测试代码:

import tensorflow as tf
import timeit
#指定在cpu上运行
def cpu_run():
    with tf.device('/cpu:0'):
        cpu_a = tf.random.normal([10000, 1000])
        cpu_b = tf.random.normal([1000, 2000])
        c = tf.matmul(cpu_a, cpu_b)
    return c
 
#指定在gpu上运行 
def gpu_run():
    with tf.device('/gpu:0'):
        gpu_a = tf.random.normal([10000, 1000])
        gpu_b = tf.random.normal([1000, 2000])
        c = tf.matmul(gpu_a, gpu_b)
    return c

cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print("cpu:", cpu_time, "  gpu:", gpu_time)

在这里插入图片描述

Pycharm中配置解析器

参考:https://blog.csdn.net/qq_43876539/article/details/134159174
新建个文件夹叫tf2.10.0
用Pycharm打开文件夹
进入设置
在这里插入图片描述
新增编辑器
在这里插入图片描述
加载conda环境
在这里插入图片描述
测试代码:

import tensorflow as tf
print("TensorFlow version is :",tf.__version__)
print("Keras version is :",tf.keras.__version__)
print("GPU is","available" if tf.config.list_physical_devices('GPU')else "NOT AVAILABLE")
tf.config.list_physical_devices('GPU')

在这里插入图片描述

十、Pytorch2.1.0环境配置

首先创建python3.8的虚拟环境并激活,这里虚拟环境命名为pytorch_38,可按自己需求更改。

conda create -n pytorch_38 python==3.8
conda activate pytorch_38

接着通过以下网址,决定安装哪个版本的pytorch

Previous PyTorch Versions | PyTorch
icon-default.png?t=N7T8https://pytorch.org/get-started/previous-versions/

但这里遇到了特殊情况,已安装 CUDA11.2,但搜索官网给的版本里没有11.2,解决方案如下:

通过如下命令行,在虚拟环境中用pip安装pytorch1.9.1这个版本

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html --trusted-host pypi.org --trusted-host download.pytorch.org --trusted-host files.pythonhosted.org

此时笔者又遇到一个问题,笔记本电脑上本来虚拟环境里安装的Pytorch是2.1.0,为避免产生版本错误的问题,笔者在已经安装pytorch和cuda的环境下,检查当前版本下pytorch和cuda版本是否兼容。

在pytorch_38的虚拟环境里,输入python,进入编译环境中,输入如下指令:
(1)先检查 Pytorch 实际使用的运行时的 cuda 目录

import torch
import torch.utils
import torch.utils.cpp_extension
torch.utils.cpp_extension.CUDA_HOME  #输出 Pytorch 运行时使用的 cuda 

在这里插入图片描述
cuda11.2
(2)再检查pytorch版本

print(torch.__version__)

在这里插入图片描述
pytorch2.1.0

(3)最后检查Pytorch和cuda版本是否匹配

print(torch.cuda.is_available())

在这里插入图片描述
结果为True,那就没问题。如果后期出现其他问题再更新博客内容。若为False,则可以把原来的pytorch版本删除,再装个跟cuda11.2匹配的pytorch1.9.1版本。

最后检验pytorch是否安装成功

让安装了pytorch的虚拟环境执行包含以下代码的py文件即可

import torch
print(torch.cuda.is_available()) # cuda是否可用
print(torch.cuda.current_device()) # 返回当前设备索引
print(torch.cuda.device_count())  # 返回GPU的数量
print(torch.cuda.get_device_name(0))

正常情况下 前三个print应输出:

True
0
1

在这里插入图片描述

至此,CUDA在笔者主机上的配置圆满成功,仅做一个自己的配置记录和给大家一个参考。


补充了解:深入了解cuda、cudatoolkit以及多版本cuda共存时pytorch调用哪个

进一步,你有必要深入了解一下cuda、cudatoolkit以及多版本cuda共存时pytorch调用哪个 cuda和cudatoolkit-CSDN博客

https://blog.csdn.net/xiqi4145/article/details/110254093

十、参考来源

[1] https://www.bilibili.com/read/cv27240928/?jump_opus=1
[2] https://blog.csdn.net/Vertira/article/details/125060383
[3] https://cloud.tencent.com/developer/article/2156737?areaSource=102001.15&traceId=nVOHR182mwV01L5GbnX9y
[4] https://blog.csdn.net/weixin_46713695/article/details/135038527
[5] Tensorflow-gpu保姆级安装教程(Win11, Anaconda3,Python3.9):https://blog.csdn.net/weixin_43412762/article/details/129824339
[6] https://blog.csdn.net/qq_43876539/article/details/134159174

补充了解:安装需要的CUDA,多版本共存,并自由切换! https://www.bilibili.com/read/cv34265365/


  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: OpenCV是一个开源的计算机视觉和机器学习库,可以方便地处理图像和视频。而CUDA(Compute Unified Device Architecture)是由NVIDIA开发的一种并行计算架构,可以加速图形处理器(GPU)上的计算任务。 OpenCV 4.5.1是OpenCV的一个版本,它提供了丰富的功能和算法,用于图像和视频处理、特征提取、目标检测等任务。这个版本可以在Windows 10操作系统上使用,并且可以与Visual Studio 2017集成,提供开发环境和调试工具。 CUDA 10.0是NVIDIA的一个版本,它支持NVIDIA GPU上的并行计算任务。它允许开发人员使用C语言、C++或CUDA自己的扩展语言编写并行计算代码,以加速计算密集型任务。例如,在图像处理中,可以使用CUDA加速OpenCV算法,从而提高计算性能。 而cuDNNCUDA Deep Neural Network library)是NVIDIA专门为深度学习任务开发的一个库。它提供了一组高性能的深度神经网络的基本操作和优化算法,可以与CUDA和OpenCV结合使用。 综上所述,OpenCV 4.5.1可以与CUDA 10.0和cuDNN 7.6.0集成使用。开发者可以在Visual Studio 2017中使用这些工具和库进行图像处理和机器学习任务的开发和优化。通过使用CUDA加速,可以提高计算性能,而cuDNN可以提供深度学习任务所需的算法和操作。 ### 回答2: OpenCV 4.5.1是一个计算机视觉库,用于在计算机视觉和机器学习项目中进行图像和视频处理。VS2017是一个集成开发环境(IDE),用于Windows操作系统上的软件开发。CUDA(Compute Unified Device Architecture)是一个用于GPU计算的并行计算平台和API模型。CUDNN是NVIDIA深度神经网络库,用于在GPU加速深度学习任务。 在Windows 10上使用VS2017来编译OpenCV 4.5.1,并在CUDA 10.0和CUDNN 7.6.0的支持下进行构建可以提供更好的计算性能和加速CUDA 10.0提供了与CUDA架构和驱动程序的兼容性,并支持许多NVIDIA GPUCUDNN 7.6.0是基于CUDA的深度神经网络库,可以加速深度学习任务的训练和推理。 使用VS2017编译OpenCV可以让开发者方便地在Windows平台上进行开发和调试。VS2017提供了强大的集成开发环境,它可以帮助开发者编写、调试和测试程序。通过配置CUDA 10.0和CUDNN 7.6.0来支持OpenCV的GPU加速,可以进一步提高图像和视频处理的速度和效率。 总结来说,使用OpenCV 4.5.1、VS2017、Windows 10、CUDA 10.0和CUDNN 7.6.0可以实现在Windows平台上的高效计算机视觉和机器学习开发。这种配置可以提供更好的性能和加速,特别是在需要处理大量图像和视频、进行深度学习任务的情况下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值