当前位置: 代码网 > 科技>操作系统>Windows > 深度学习第一步 利用CUDA进行GPU加速Win11+cuda11.2+cuDNN8.1+tensorflow_gpu-2.10+pytorch安装配置教程(避坑指南)

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

2024年08月01日 Windows 我要评论
深度学习第一步 利用CUDA进行GPU加速 Win10/Win11+vs2019+cuda11.2+cuDNN8.1安装配置教程

深度学习第一步 利用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++库教程参考:

二、查看驱动版本

在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安装教程(超详细版)

七、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卸载:

测试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中配置解析器

参考:
新建个文件夹叫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博客

十、参考来源

[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]
[5] tensorflow-gpu保姆级安装教程(win11, anaconda3,python3.9):https://blog.csdn.net/weixin_43412762/article/details/129824339
[6]

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


(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com