Bootstrap

CUDA、CUDNN在win10下的共存与安装问题(含虚拟环境构建和Anaconda配置tensorflow-gpu)

(0)GPU 基础

对计算机而言,中央处理器 CPU 是主板上的芯片,图形处理器 GPU 是显卡上的芯片。每台计算机必有主板,但少数计算机可能没有显卡。显卡可以用来加速深度学习的运算速度(GPU 比 CPU 快 10-100 倍)。

目前显卡有三家厂商:Intel、Nvidia、AMD。深度学习所需要的显卡是 NVIDIA,没有此显卡的同学无法进行 GPU 加速。查看自己的计算机的显卡的方法是:任务管理器——性能——左侧栏划到最下面
在这里插入图片描述
NVIDIA 显卡中的运算平台是 CUDA,不过,即使您的计算机有 NVIDIA 显卡,但您的显卡中也不一定含有 CUDA,没有的话就要下载 CUDA。
而 PyTorch 的下载组件里也会包含一个内置的 cuda。
为了区分,显卡内的 CUDA 用大写,PyTorch 内置的 cuda 用小写。
一般来讲,要满足:
CUDA 版本≥cuda 版本。
查看 CUDA 版本的方法是: Win+R 后输入 cmd,进入命令提示符,我们需
要输入 nvcc -V,如图:
在这里插入图片描述
如果显示“nvcc -V 不是内部或外部命令”,则说明需要安装 CUDA。

(一)安装前的准备

检查win支持的最高cuda版本

在这里插入图片描述
NVIDIA控制面板下 系统信息 显示:CUDA12.6。这里CUDA10.1是支持的最高版本的CUDA,可以向下兼容,且可以安装多个版本的CUDA,可以通过更改环境变量来更改为你需要用到的CUDA版本。

**or **

查看显卡驱动命令: nvidia-smi
[可了解改版驱动可支持的最高cuda版本, cuda是向下兼容的,即新版本可兼容老版本使用]

查看当前cuda版本:nvcc -v

(二)查询官方torch版本

彻底解决torch、torchvision、torchaudio安装版本问题
例如我需要安装的cuda版本是12.1+torch==2.4.0:
在此页面搜索:
链接: torch官方版本
查询后发现是ok的:
在这里插入图片描述

因此,我安装:torch2.4.0+cu121, torchaudio2.4.0+cu121, torchvision==0.19.0+cu121

(三)CUDA 的下载

NVIDIA官网下载对应CUDA版本
CUDA下载地址:CUDA Toolkit Archive | NVIDIA Developer
官网较慢
这里有:快速下载地址 [挂梯子!否则打不开]
以其中的 CUDA 12.1 为例,点击进入
在这里插入图片描述

接下来要选择平台,点击 Windows,之后自动弹出更多内容,按下图选择,
最后点击右下角的 Download(3.2GB)),建议将其放置新建的 F:\CUDA12.1 中。
在这里插入图片描述
下载好之后,将 exe 文件放置在新建的 F:\CUDA 内,点击 exe 文件,大约要等两分钟,会弹出下图的提示框,这里要选择临时的解压文件夹,考虑到解压后需要占用大约 7G 的内存,因此建议放在 F:\CUDA\Tem 内,安装结束后,该临时解压文件夹会自动删除。

解压好后,进入下图安装界面,同意并继续后,点击“自定义”。

在这里插入图片描述
接下来,仅仅选择 4 大项中的 CUDA,并取消 CUDA 中关于 VS 的选项。
在这里插入图片描述

在这里插入图片描述
完成后,按照默认的 C 盘路径进行安装(大约 7G)即可
在这里插入图片描述
在这里插入图片描述

安装结束

现在回头查看临时解压文件夹 F:\CUDA\Tem,会发现已经消失,顺便可以
删除 F:\CUDA 了。
接下来配置环境变量,如果你是按照默认路径的话,其路径应该是:

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib\x64
  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin
  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp
    如果忘了你的路径,用 everything 搜索出来即可(一个tool)。
    最后,回头检查一下 CUDA 版本,Win+R 后输入 cmd,进入命令提示符,
    输入 nvcc -V,如下图所示。

检查CUDA版本
切换CUDA版本时,只需要切换环境变量中CUDA的顺序即可,比如让CUDA12.1生效,则CUDA12.1环境变量在CUDA11.8之前。
在这里插入图片描述

(四)安装 PyTorch

4.1 torch、torchvision 与 torchaudio下载

PyTorch 一分为三:torch、torchvision 与 torchaudio。

这三个库中,torch 有2G 左右,而 torchvision 和 torchaudio 只有 2M 左右,因此一般在代码里只会
import torch。当 torch 的版本给定后,另外两个附件的版本也唯一确定了。

注:NVIDIA 显卡 30 系列(如 NVIDIA GeForce RTX 3050)只能安装 cu110 及其以后的版本。

(1)方法一:直接安装(不建议,网差的话会死机)
进入:PyTorch 官网 [太慢了]
(2)方法二:先下轮子再安装
注:开代理下载几分钟,不开三小时。
快速:下载 whl
如果进不去,就 https://download.pytorch.org/whl/cu121(修改为自己的cu版本号)

分别进入 torch、torchvision、torchaudio 三大组件各自的网站。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

下载好后,将三个 whl 文件放在新建的 F:\whl 文件夹中。

4.2 whl安装

安装命令为 pip install 路径\轮子名.whl,即

  • pip install F:\whl\torch-2.4.1+cu121-cp38-cp38-win_amd64.whl
  • pip install F:\whl\torchaudio-2.4.0+cu121-cp38-cp38-win_amd64.whl
  • pip install F:\whl\torchvision-0.19.0+cu121-cp38-cp38-win_amd64.whl

将上述代码放在虚拟环境下执行(而不是 base 环境,否则就会把这个库安装进 base 环境下)。
安装完毕后,即可删除 F:\whl 文件夹(但建议留着,之后可能还要安装)。
提示:虚拟环境的安装见 5.1 节

(五)python虚拟环境的安装与配置

提示:虚拟环境的安装位置的修改(重要)

conda安装可不新建!跳5.1节

  • 在我们安装虚拟环境之前,如果我们不设置虚拟环境安装的位置,系统则会默认的将虚拟环境安装到固定位置(一般为系统盘(C盘)),会增加我们系统盘的压力,这个时候我们就需要将虚拟环境的安装位置修改到其它任意位置
  • 修改方法如下:1.右键点击‘此电脑’
  • 按照如图方法即可完成修改:
    在这里插入图片描述

注意事项

  • 变量名一定为:WORKON_HOME
  • 变量值一定为:虚拟环境安装位置的具体路径(自己新建任意一个文件夹的位置,文件夹名自己定义)

5.1 python安装虚拟环境(pip)

why?

很多时候我们需要复刻其它演示代码中的环境,因此,虚拟环境必须掌握。初始的虚拟环境基本没什么库,演示代码里说需要安装什么版本的库,我们就手动安装什么版本的库。虚拟环境还有一个更大的优点,即想创建多少个,就创建多少。这样一来,就可以在同一台计算机中复刻多个不同的环境。

5.2 python安装虚拟环境(conda)

下面介绍简单版本:Anaconda创建虚拟环境

点击 Prompt 进入 Anaconda 的环境中,接下来的命令均在 Prompt 中执行。
在这里插入图片描述
选择合适的指令即可

(1)清屏
cls
(2)base 环境下的操作

列出所有的环境:

conda env list

创建名为“环境名”的虚拟环境,并指定 Python 的版本

conda create -n 环境名 python=3.9

创建名为“环境名”的虚拟环境,并指定 Python 的版本与安装路径

conda create --prefix=安装路径\环境名 python=3.9

删除名为“环境名”的虚拟环境

conda remove -n 环境名 --all

进入名为“环境名”的虚拟环境

conda activate 环境名
(3)虚拟环境内的操作

列出当前环境下的所有库

conda list

安装 NumPy 库,并指定版本 1.21.5

pip install numpy==1.21.5 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装 Pandas 库,并指定版本 1.2.4

pip install Pandas==1.2.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装 Matplotlib 库,并指定版本 3.5.1

pip install Matplotlib==3.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

查看当前环境下某个库的版本(以 numpy 为例)

pip show numpy

退出虚拟环境

conda deactivate

返回4.2节,安装whl(轮子)

(六)检验 cuda 是否可用

(1)方法一:查看当前环境的所有库
进入 DL 环境后,使用 conda list 命令列出当前的所有库,如图;

安装完轮子之后的页面

在这里插入图片描述
(2)方法二:进入 Python 解释器检验
由于目前没有代码编辑器,因此直接进 Python 解释器,检验 cuda 是否可用。
首先,进入虚拟环境后,输入 python 以进入解释器,如图:
在这里插入图片描述
输入 import torch 导入 torch 库,如下图所示。若 torch 安装失败,则会返回 No module named ‘torch’。若安装成功,不会返回任何语句,同时在下一行出现“>>>”,提示我们可以继续敲代码。
在这里插入图片描述
最后一步,输入 torch.cuda.is_available(),如下图所示。
在这里插入图片描述

(七)CUDNN 加速

why?
如果你要在 GPU 上运行 TensorFlow 或 PyTorch,推荐安装 cuDNN(CUDA 深度神经网络库),因为它能显著加速神经网络的训练和推理过程。
注意:cuDNN主要是用来完成深度学习张量加速运算,可理解为CUDA的补丁。

7.1 检查(略)

(非必要,cuda检查方法3,前2种方法在上一节已说明)
打开路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin ,查看 nvcc.exe

在这里插入图片描述

有这个nvcc.exe就说明CUDA安装已成功

打开路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\CUPTI\lib64,查看有没有cupti64_2023.1.1.dll
在这里插入图片描述

有这个cupti64_2023.1.1.dll就说明CUPT1已成功

7.2 cudnn安装包下载

官网下载地址:链接: 当前cudnn (需要挂梯子)

cuDNN历史版本下载地址:链接: 历史cudnn (需要挂梯子)

需要注册一个账号才可以下载,随便注册就行

cuDNN版本的解读:

例如源文件:

cudnn-windows-x86_64-8.8.0.121_cuda12-archive.zip

则对应的【cuDNN版本号】和【CUDA版本号】分别是:

cudnn-windows-x86_64-【version8.8】.0.121_【cuda12】

备注:其中在cuDNN历史版本下载页面可以看到与CUDA的版本对应关系。注意所下载的cuDNN的版本要和CUDA保持一致!

7.3 配置CUDNN

解压CUDNN后,将对应的bin、lib、include与CUDA12.1对应的bin、lib、include进行合并。
在这里插入图片描述

之后找到路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1的文件夹,v12.1是我安装cuda的版本号,你的可能不一样,路径都差不多一样的,替换。

7.4 验证cudnn是否安装成功

cmd进入目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite
在这里插入图片描述
终端输入:deviceQuery.exe

结果为pass证明安装成功

在这里插入图片描述
总结
在 GPU 上运行 TensorFlow 或 PyTorch,cuDNN 是必须的,否则性能会下降或功能受限。
在 CPU 运行,这时不需要安装 cuDNN。

(八)Tensorflow安装

我的选择:tensorlow2.9.0
官网链接: 在 Windows 环境中从源代码构建 | TensorFlow (google.cn)
准备工作:安装cudnn
安装过程:镜像
遇到问题:各自版本不兼容问题——靠pip list和重装tensorboard解决
快速解决tensorflow与tensorboard版本不兼容问题

8.1 安装

参考:Anaconda同时安装Tensorflow和Pytorch(window系统)步骤/流程/方法

安装tensorflow-gpu(用pip的时候要关梯子,不然会报错)

pip install tensorflow-gpu==2.9.0

8.2 检查

在这里插入图片描述

8.3 一次性安装所有包(可选)

pip install ...不要开梯子!

以下是我自己需要安装的包,只是做个示范~

可以将所有依赖放入一个 requirements.txt 文件,内容如下:

xformers==0.0.27.post2
tensorflow-datasets==4.9.2
tensorflow-gpu==2.9.0
tensorflow-gan==2.1.0
tensorflow-probability==0.11.0
tensorboard==2.9.0
ninja==1.11.1.1
jax==0.4.11
jaxlib==0.4.11
jinja2==3.1.3

然后使用以下命令安装所有包:

pip install -r requirements.txt

over

;