PyTorch + CUDA 版本匹配安装

本文详细记录了一位用户在Windows 10系统中使用CUDA 11.1.96遇到PyTorch无法识别GPU的问题及解决过程。用户通过检查torch.cuda.is_available()确认GPU未被识别,然后按照PyTorch官网指导安装指定CUDA版本的PyTorch,解决了GPU不匹配的问题。最后,用户提到在训练过程中虽然找到了GPU但未使用,需修改代码才能启用GPU加速。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 问题描述

2. 调查和解决

2.1 初步调查

2.2 官网安装方法

2.3 如果还是不匹配呢?


1. 问题描述

        系统:Windows10,CUDA11.1.96

        开始学习PyTorch。在用PyTorch进行一个深度学习训练时发现报告以下Warning信息:

  rank_zero_deprecation(
GPU available: False, used: False
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs

        有点纳闷。用Tensorflow-GPU也不是一天半天了,为什么会报告找不到GPU?

2. 调查和解决

2.1 初步调查

        啥也不说,先上网兜一圈收集信息。。。

        首先运行以下命令(当然要先进入python环境)再次确认一下是否能找到GPU(能找到CUDA自然就是找到了GPU)。

import torch
print(torch.cuda.is_available())

        返回False。

        初步调查的结果是,

        (1) 我之前只是单纯地用“pip install pytorch”来安装pytorch。而这样的缺省安装是不会安装pytorch-gpu版本的。

        (2) 其次,必须在pytorch安装时指定与机器匹配的CUDA版本。不匹配的话也可能会出问题。

        顺便提一下,tensorflow早期版本的安装也是这样的,不特意指定的话,缺省地就是安装cpu版本,后来tensorflow学乖了,安装时自动检测自动匹配,有GPU就安装匹配的tensorflow-gpu,没有就安装tensorflow-cpu。在这一方面pytorch落在了后面。

2.2 官网安装方法

        首先先看官网上的说法(根据既往各种安装搏斗经验,官方方案解决不了的再去求各路民间偏方的路径比较好^-^)。

        在官网首页(Start Locally | PyTorch) 有一个友好的傻瓜菜单供选择。

         查了查机器上的CUDA版本(控制面板-->硬件和声音-->NVIDIA控制面板-->帮助-->系统信息-->组件),如下所示,CUDA版本为11.1.96。

2205a4fa6287457382d1819e0cf6a9c9.png

        CUDA11.1.96,但是上面只有10.2(no longer available) 和11.3,咋办?

        

        差异不大,估摸着没有那么敏感吧。先选11.3试试看?

        很好,给出该运行的命令(最喜欢这种傻瓜式投喂了)。运行以下命令:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

         一路顺风顺水,安装好后重新运行“print(torch.cuda.is_available())”进行检测,这回返回了True,妥了。

        重新运行训练,GPU找到了,不过又碰到新问题。。。找是找到了,不过没有使用。

        不过已经明确地给出了解决指示,照着修改一下代码就妥了。 

trainer = pl.Trainer(
    max_epochs=train_args.max_epochs,
    callbacks=get_callbacks(),

    accelerator='gpu', 
    devices=1,
    
    progress_bar_refresh_rate=20,
    flush_logs_every_n_steps=1,
    log_every_n_steps=1)

        不过,还是要吐个槽。谁家会搁着GPU故意不使用啊。所以缺省值难道不是应该设置为{    accelerator='gpu', devices=1}更加友好嘛?

2.3 如果还是不匹配呢?

        以上安装表明CUDA版本有点小的差异也可能没有问题。

        但是,如果版本差异比较大的话,怎么办呢?在以上安装过程中顺便调查了一下。在“PyTorch + CUDA 11.6 - deployment - PyTorch Forums”看到一个解决方案可以参考。找到这个网页是因为我一开始看错了把我的CUDA版本错看成11.6了^-^。关键点是,如果没有找到匹配CUDA版本的稳定发布的话,可以用编译nightly binaries进行安装的方式解决,如下所示(假定CUDA11.6,其它CUDA版本估计也可以照猫画虎)

pip install torch --pre --extra-index-url https://download.pytorch.org/whl/nightly/cu116

### PyTorch中正确配置使用CUDA与cuDNN 在深度学习环境中,PyTorch可以通过集成CUDAcuDNN来加速计算性能。以下是关于如何在PyTorch中正确配置使用CUDA与cuDNN的具体方法。 #### 1. 安装依赖项 为了使PyTorch能够利用GPU资源,需安装相应的CUDA驱动程序以及cuDNN库。具体操作可以参考详细的环境搭建指南[^1]。此外,在Windows操作系统下,Anaconda环境下也可以完成类似的配置过程[^2]。 #### 2. 验证CUDA可用性 通过Python脚本验证当前系统是否支持并启用了CUDA功能非常重要。下面是一个简单的测试代码: ```python import torch if torch.cuda.is_available(): print(f"CUDA is available! Current device: {torch.cuda.current_device()}") else: print("CUDA not detected.") ``` 此段代码会检查是否有可用的CUDA设备,并打印出所使用的显卡编号或者提示未检测到CUDA的支持情况。 #### 3. 设置默认张量类型为CUDA Tensor 如果确认存在有效的CUDA硬件,则可以在运行模型之前更改默认的数据结构形式以便于后续处理更加高效快捷: ```python device = 'cuda' if torch.cuda.is_available() else 'cpu' tensor = torch.Tensor([1]).to(device) print(tensor.device) # 输出应显示 cuda:0 如果成功切换至 GPU 上执行运算的话。 ``` 上述例子展示了怎样把普通的Tensor对象迁移到指定好的device上去工作——这里假设我们已经具备至少一块NVIDIA图形处理器作为目标平台之一来进行数值计算活动;否则就退回到CPU模式继续下去。 #### 4. 使用预编译版本PyTorch匹配特定组合下的CUDA/cuDNN参数设定 当构建个人项目框架时,请务必访问官方文档页面链接所提供的表格信息以挑选最适配自己机器状况的那个二进制包下载地址: 建议依据实际安装CUDA 版本来决定应该选取哪个对应的 PyTorch 发布版本号,从而实现无缝衔接两者之间的协作关系。这一步骤对于保障整个训练流程平稳顺畅至关重要! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨牛慢耕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值