赞
踩
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,下面笔者就按照安装顺序进行讲解:
第一个坑!
电脑上没有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,只要安装的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
在官网下载: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,为了流程完整我按照这个教程成功了,没有再重新弄只是按流程把博主的截图粘贴过来了)
环境变量里面系统自动添加CUDA_PATH和CUDA_PATH_V11_2路径。只需要在再把对应路径下的lib和bin文件路径加上就行了。
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
此时需要找到相用的文件,用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)
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
Anaconda可以同时管理多个版本的python,能创建虚拟环境,各个python版本的虚拟环境不受影响。由于笔者电脑原来就装了Anaconda所以这里就不做展开了。
Anaconda安装教程(超详细版)https://blog.csdn.net/m0_61607990/article/details/129531686
对照表格我选择安装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
同样的在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)
参考: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')
首先创建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的虚拟环境执行包含以下代码的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-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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。