深度学习第一步 利用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/


<think>嗯,用户想在Windows 11里调用GPU进行计算或加速,比如用Python跑机器学习或者深度学习任务。我之前整理过几个引用,里面提到了WSL2、Docker、CUDATensorFlow这些关键词。需要结合这些信息来回答。 首先,用户可能是在使用WSL2的时候遇到了GPU访问的问题,比如NVML初始化失败,这可能是因为Windows版本太旧,升级后解决了。所以应该建议用户先检查系统版本,确保是支持的版本,比如21H2或更高。然后安装正确的显卡驱动,尤其是NVIDIA的,需要装针对WSL的驱动。 接下来,用户可能想通过不同的方式调用GPU,比如直接使用CUDAcuDNN安装TensorFlow/PyTorch,或者通过WSL2配置环境。引用里提到用户之前尝试镜像教程失败,所以可能需要更清晰的步骤,比如直接安装CUDA Toolkit和cuDNN,注意版本匹配。另外,用户提到在Docker里使用GPU,可能需要配置NVIDIA Container Toolkit,但之前失败可能是因为系统版本问题,所以升级Windows是关键。 还有用户提到的Pycharm安装GPUTensorFlow,涉及到CUDAcuDNN的版本匹配问题,这里需要详细说明版本对应关系,比如TensorFlow 2.10需要CUDA 11.2cuDNN 8.1,确保用户下载正确的版本。另外,系统路径的配置也很重要,否则可能会出现找不到DLL的错误。 另外,用户可能在WSL2中运行Python程序,需要安装PyTorchWindows版本,并通过WSL2调用宿主机的GPU,这里需要指导用户安装正确的PyTorch版本,并验证torch.cuda.is_available()是否为True。 可能还需要考虑Docker的配置,比如安装NVIDIA Container Toolkit,修改Docker配置,然后运行测试容器。但用户之前可能因为系统版本问题失败,所以强调升级系统的重要性。 最后,常见问题部分需要提醒用户检查系统版本、驱动版本、环境变量和CUDA安装是否正确。比如nvidia-smi命令是否可用,CUDA是否安装成功,以及依赖库是否匹配。 总结下来,回答的结构应该是分步骤,包括系统准备、驱动安装CUDA配置、框架安装PyTorch/TensorFlow)、WSL2和Docker的使用,以及常见问题处理。每个步骤要详细但清晰,免用户走弯路,尤其是版本匹配和路径设置这些容易出错的地方。</think>### Windows 11调用GPU进行计算/加速的完整教程 #### 一、系统与驱动准备 1. **确认系统版本** Windows 11需升级至21H2或更高版本,免WSL2调用GPU时出现`NVML GPU access blocked`问题[^1]。 - 检查方式:`Win + R`输入`winver` - 升级工具:[Windows易升工具](https://go.microsoft.com/fwlink/?LinkID=799445) 2. **安装GPU驱动** - **NVIDIA显卡**:下载[专为WSL2优化的驱动](https://developer.nvidia.com/cuda/wsl) - **AMD/Intel显卡**:通过官网下载最新驱动并启用`GPU加速计算`功能 --- #### 二、直接调用GPU的方法 ##### 1. **CUDA + cuDNN + TensorFlow/PyTorch** - **步骤**: 1. 安装CUDA Toolkit(如CUDA 11.8) ```powershell choco install cuda --version=11.8.0 ``` 2. 下载匹配的[cuDNN库](https://developer.nvidia.com/cudnn),解压后复制到`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8` 3. 配置环境变量: ```powershell set PATH=%PATH%;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin ``` 4. 安装GPU版框架: ```python # TensorFlow pip install tensorflow-gpu==2.10.0 # PyTorch pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 ``` ##### 2. **WSL2调用Windows宿主GPU** - **步骤**: 1. 启用WSL2功能: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 2. 安装Linux发行版(如Ubuntu 22.04) 3. 在WSL中直接安装PyTorch: ```bash pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu118 ``` 4. 验证GPU访问: ```python import torch print(torch.cuda.is_available()) # 应输出True ``` --- #### 三、通过Docker调用GPU 1. **安装NVIDIA Container Toolkit** ```powershell choco install docker-desktop curl -L "https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.zip" -o nvidia-docker.zip ``` 2. **修改Docker配置** ```json { "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "nvidia-container-runtime.exe", "runtimeArgs": [] } } } ``` 3. **运行测试容器** ```powershell docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark ``` --- #### 四、常见问题排查 | 问题现象 | 解决方案 | |---------|----------| | `CUDA driver version is insufficient` | 更新NVIDIA驱动至510+版本[^3] | | `DLL load failed` | 检查CUDA/bin是否加入PATH环境变量 | | `WSL2中nvidia-smi不可用` | 运行`wsl --update`更新内核 | ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值