CUDA&Pytorch安装使用(保姆级避坑指南)

2024年6月25日,注定血与泪的一天,因为我想试试,我这个华硕的天选4搭载的NVIDIA GeForce RTX 4060推理速度如何,所以就开始与CUDA的战斗。。。(然后开始被折磨一整天)

在此记录一下需要避的坑(不 避坑必坑),太提莫多了,我们一步步来说:

一,查看你的CUDA Version

版本是第一个大坑(选择适配你的版本最好最好)后续会说和Pytorch的兼容问题。

# Win+R 调出 cmd 然后输入(如果你是英伟达显卡的话):
nvidia-smi
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 546.80                 Driver Version: 546.80       CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                     TCC/WDDM  | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 4060 ...  WDDM  | 00000000:01:00.0  On |                  N/A |
| N/A   44C    P8               5W /  95W |   1381MiB /  8188MiB |      4%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

运行结果如上,左上角会显示CUDA的Version,我的是12.3,后续都将按照12.3来举例。

二,去CUDA的网上下载CUDA

https://developer.nvidia.com/cuda-12-1-0-download-arcjhive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_localicon-default.png?t=N7T8https://developer.nvidia.com/cuda-12-1-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

网址如上-下载符合你的版本的,我的是:

Operating System : Windows

Architecture : x86_64

Version : 11

Installer Type : exe(local)

注:一般而言,不同版本的CUDA要求不同的NVIDIA驱动版本,同时显卡驱动版本要不低于CUDA的安装版本,如果驱动版本低的,可以自己去更新。上述中我的是546.8,安装的12.3的CUDA要求不低于545.84,所以我就没去检查更新,主要是懒。

下载好之后进行安装(第二个大坑)!!!!!

要选自定义安装,然后只选第一项CUDA,CUDA展开后,把Visual Studio Integration这一项取消勾选!!!!

取消勾选啊!!!!!!!一定要取消勾选啊!!!!

具体原因主要是有一个东西的安装会一直导致安装失败,成功了也会在后续有各种问题。还有需要记住你装在哪个路径内,方便后续的添加文件。

三,下载cuDNN

https://developer.nvidia.com/rdp/cudnn-archiveicon-default.png?t=N7T8https://developer.nvidia.com/rdp/cudnn-archive

cuDNN是一个GPU加速的深度神经网络基元库,能够以高度优化的方式实现标准例程,如前向和反向卷积、池化层、归一化和激活层。全球的深度学习研究人员和框架开发者都依赖cuDNN来实现高性能GPU加速。

我们需要将cuDNN中的内容,一一对应加到刚才我让你记住的目录中,如果你是默认的安装路径的话,那CUDA的安装路径大差不差的就是如下,我们设这个路径为route_CUDA,我瞎设的,并不重要,只是方便我后续编写的时候用..... <OwO>

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3

下载好的cuDNN中有三个文件夹,分别是bin,include,lib,而lib下又有一个x64文件夹,我们要做的就是把刚下载的cuDNN中的bin中的文件全选,复制到route_CUDA下的bin中(陈泽bin就是世一上,不玩LOL朋友的请自动忽略,夹带一点私货),后面两个以此类推,注意要把lib/x64文件夹下的文件复制到route_CUDA下的lib/x64中。

四,添加系统路径

这一步在你安装的时候,已经自动添加过一些了,你只需要在windows的搜索框中打入“编辑系统环境变量”这六个字,然后打开,就可以编辑系统环境变量了Hhhh(废话自动忽略)选择环境变量--会出现两个框,上面是你的用户变量,下面是系统变量,在系统变量中找到Path或者PATH这玩意儿,双击进入并加入这两项:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\lib

(如果你是默认安装的话,应该是一样的,如果不是那可以参考上面自动添加的,比如:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\bin   

这样你就可以确定路径了)

五,运行bandwidthTest.exe和deviceQuery.exe(检测工具)

# 进入到route_CUDA的目录下后,跟着下列命令一步步执行
cd .\extras\demo_suite
.\bandwidthTest.exe
.\deviceQuery.exe

结果如下(依次是bandwidthTest.exe和deviceQuery.exe):

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\extras\demo_suite>.\bandwidthTest.exe
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: NVIDIA GeForce RTX 4060 Laptop GPU
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     12381.6

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     12848.1

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     173264.2

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\extras\demo_suite>.\deviceQuery.exe
.\deviceQuery.exe Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA GeForce RTX 4060 Laptop GPU"
  CUDA Driver Version / Runtime Version          12.3 / 12.3
  CUDA Capability Major/Minor version number:    8.9
  Total amount of global memory:                 8188 MBytes (8585216000 bytes)
MapSMtoCores for SM 8.9 is undefined.  Default to use 128 Cores/SM
MapSMtoCores for SM 8.9 is undefined.  Default to use 128 Cores/SM
  (24) Multiprocessors, (128) CUDA Cores/MP:     3072 CUDA Cores
  GPU Max Clock rate:                            2250 MHz (2.25 GHz)
  Memory Clock rate:                             8001 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 33554432 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               zu bytes
  Total amount of shared memory per block:       zu bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1536
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          zu bytes
  Texture alignment:                             zu bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Model)
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.3, CUDA Runtime Version = 12.3, NumDevs = 1, Device0 = NVIDIA GeForce RTX 4060 Laptop GPU
Result = PASS

进行到这一步我们仍然不能掉以轻心啊,还有很多的坑等着我们去踩..... <OwO>

五,创建环境

关于conda的内容,前人之述备矣,我们就不做赘婿了,呸呸呸,赘叙了(感觉还是错了,无所谓反正我上学那会儿语文学的也不好)直接上命令:

#创建一个叫im_so_handsome的虚拟环境,python版本大于3.8,我默认的是3.11
conda create --name im_so_handsome

#激活im_so_handsome虚拟环境
conda activate im_so_handsome

六,安装Pytorch

这一步太痛了,痛啊,太痛了,太太太太太太痛啦!!!!!!!!!!!!!!!!!!!!!第三个大坑来了,我是万万没有想到的是这次坑我的竟然是清华园(清华源)XD

正题开始,这个下面的网址,根据你的CUDA的版本读取到对应的命令

Start Locally | PyTorchStart Locallyicon-default.png?t=N7T8https://pytorch.org/get-started/locally/

我的选择是这样的(为什么我是CUDA12.3,但是我选择了12.1呢,首先说明一下,实测有效,应该是向下兼容,但最好还是选择跟自己版本号一样的,毕竟错一次的时间成本很高,呜呜呜T_T)

接下来我将分享重头戏了,我“精明的”小脑瓜一转,为什么不用清华源呢,我就把后面的这个:

--index-url https://download.pytorch.org/whl/cu121

换成了清华源,就那个一串最后是simple,算了,打出来吧:

# 如假也不包换的清华源
-i https://pypi.tuna.tsinghua.edu.cn/simple

当时因为没仔细看,以为就是个源,所以自己斗胆换成了国内的源(但其实他是包含cu121的版本号的),然后就是自动给你下载了默认的版本,然后就导致了不兼容,就像西湖醋鱼一样,醋是醋,鱼是鱼,西湖是西湖,同样的CUDA是CUDA,Pytorch是Pytorch,结果就是Pytorch根本检测不到你的显卡,呜呜呜想哭呜呜呜T_T

那我们应该怎么办呢?

GOOD QUESTION!!!

确保处在稳定的网络环境中,老老实实得按照他给你得命令安装,我的是如下:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

失败就重新装,失败就重新装,这是个玄学,说不定哪次就成功了,我也是装了七八次才装上了。

然后就是第四个坑:痛啊,太痛了,太太太太痛啦!!!!!!!!!!!!!!!!!!!!!+1+1+1+1+1+1+1+1+1+1+1+1+1+1

如果你的环境里,已经安装了Pytorch,请你卸载掉,谢谢,覆盖是不好使滴,当你执行上一步,没有出现反反复复地重装得时候,反而是一连串的Requirement already satisfied,恭喜你踩雷了!

这个时候要不你就干脆新创个环境,要不就用下面这个命令卸载Pytorch:

pip uninstall torch

卸载完成后,再去上个步骤安装Pytorch。

XXX:说!你还敢不敢投机取巧了

我:不敢了,大爷,再也不敢了,呜呜呜

七,检验结果

在终端执行python进入python环境:

python
#然后输入
>>> import torch
>>> torch.cuda.is_available()

输出结果是True,证明CUDA可用,检测到了你的显卡。

然后让我们再来看看你的显卡数量,笔记本的话,应该都是一张吧。。。可能,我也不确定,涉及到知识盲区了。反正我的是一张,代码和结果一起打在下面了 :

Python 3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 15:03:56) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> import torch
>>> torch.cuda.device_count()
1

可以看出来结果是1,至此恭喜你,终于成功了,但是,俗话说的好,一千个人有一千零一个哈姆雷特,如果你碰到了新的坑,那只能继续摸索,路漫漫那,其修远兮欸。。。。<OwO>

希望我们都可以在未来某天成为技术大牛!!!

  • 56
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
对于安装cuda12.2版本的pytorch,目前并没有官方支持的版本。然而,您可以尝试通过其他方法来安装。请按照以下步骤操作: 1. 首先,确保您的计算机已经安装了适用于您的操作系统版本的CUDA Toolkit,例如CUDA 12.2。 2. 接下来,您可以使用pip命令来安装pytorch和torchvision包。请注意,您需要选择适用于您的CUDA版本的pytorch版本。您可以在pytorch官方网站上找到支持不同CUDA版本的pytorch版本列表。 3. 您可以使用以下命令来安装相应版本的pytorch和torchvision: pip3 install torch==<pytorch_version> torchvision==<torchvision_version> -f https://download.pytorch.org/whl/cu<cuda_version>/torch_stable.html 请将<pytorch_version>替换为您想要安装pytorch版本号,将<torchvision_version>替换为您想要安装的torchvision版本号,将<cuda_version>替换为您的CUDA版本号。 4. 安装完成后,您可以验证您的pytorch是否可以调用GPU。您可以使用以下代码来进行验证: import torch print(torch.cuda.is_available()) 如果输出结果为True,则表示pytorch成功地调用了GPU。如果输出结果为False,则可能是由于未正确安装CUDA或者没有正确设置系统环境变量导致的。 请注意,安装和配置与CUDA相关的软件包可能会比较复杂,因此在进行安装之前,建议您先阅读官方文档并仔细按照指示进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深度学习cudapytorch安装](https://blog.csdn.net/m0_60304650/article/details/122491200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值