Package | 解决 Windows10 Anaconda环境 CUDA11.5 pytorch运行报错 No CUDA runtime is found

.

背景

在windows下使用anaconda管理多个环境(尤其用于模型训练),已成为算法工程师的一种基本技能。平时大部分时间都在用linux+docker,我也趁着这次的环境调试好好学习了一下anaconda的环境创建和管理。整体来说,anaconda的使用还是非常人性化的,具体官网请转至 all you need know about anaconda.

.

环境配置

如标题所示,实验的系统环境是windows 10,系统中已安装最新的CUDA v11.5。
conda环境为python 3.7,并使用以下指令进行pytorch安装:

conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge

然后运行模型的训练代码,报错信息如下:

====================================================================
No CUDA runtime is found, using CUDA_HOME='your CUDA installation path\NVIDIA GPU Computing Toolkit\CUDA\v11.5’

Traceback (most recent call last):
File “train.py”, line 20, in
import src.renderutils as ru
File “xxx\src\renderutils_init_.py”, line 9, in
from .ops import xfm_points, xfm_vectors, image_loss, prepare_shading_normal, lambert, pbr_specular, pbr_bsdf, _fresnel_shlick, _ndf_ggx, _lambda_ggx, _masking_smith
File “xxx\src\renderutils\ops.py”, line 61, in
torch.utils.cpp_extension.load(name=‘renderutils_plugin’, sources=source_paths, extra_ldflags=ldflags, with_cuda=True, verbose=True)
File “xxx\anaconda\envs\dmodel\lib\site-packages\torch\utils\cpp_extension.py”, line 1136, in load
keep_intermediates=keep_intermediates)
File “xxx\anaconda\envs\dmodel\lib\site-packages\torch\utils\cpp_extension.py”, line 1347, in _jit_compile
is_standalone=is_standalone)
File “xxx\anaconda\envs\dmodel\lib\site-packages\torch\utils\cpp_extension.py”, line 1445, in _write_ninja_file_and_build_library
is_standalone=is_standalone)
File “xxx\anaconda\envs\dmodel\lib\site-packages\torch\utils\cpp_extension.py”, line 1834, in _write_ninja_file_to_build_library
cuda_flags = common_cflags + COMMON_NVCC_FLAGS + _get_cuda_arch_flags()
File “xxx\anaconda\envs\dmodel\lib\site-packages\torch\utils\cpp_extension.py”, line 1606, in _get_cuda_arch_flags
arch_list[-1] += ‘+PTX’
IndexError: list index out of range

====================================================================

报错信息很长,但最重要的在最前面。不要被最后的cpp_extension.py报错信息唬住了。
当然也能从中获取一些有用的信息,大致意思是没有找到CUDA(GPU)。
再结合第一句报错“No CUDA runtime is found, using CUDA_HOME=‘your CUDA installation path\NVIDIA GPU Computing Toolkit\CUDA\v11.5’”,大致可以推测是和GPU配置相关的问题。

刚开始推测是因为conda环境使用的是cudatoolkit=11.1导致的,后来改试11.3/11.5都不行:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch -c conda-forge

.

问题排查

结合前面的分析,很有可能是GPU CUDA环境配置出了问题。通常情况下,我们需要进一步确认GPU环境没有配置成功,有以下2种常见操作。

.

1. 使用pytorch is_cuda_available()函数确认

前问说过,我是使用conda install指令直接安装的pytorch,所以在CUDA配置不正确情况下,安装的pytorch有可能是cpu版本。进入python环境:

python

引入pytorch包,并进行检查:

import torch
print(torch.is_cuda_available())

如果输出是True,则说明GPU/CUDA配置正确;我的结果是输出为False,进一步确认环境配置出错。

.

2. 查找系统中的CUDA和cuDNN文件路径

报错信息第一句给出了CUDA的路径“using CUDA_HOME='your CUDA installation path\NVIDIA GPU Computing Toolkit\CUDA\v11.5”,可以到文件夹下去确认CUDA文件是否都在。

接下来就是重点出错环节。cuDNN需要单独安装,很多时候我们会忘记,或者是装错了版本,需要重点排查。确认是否安装cuDNN可参考博客:cuDNN确认安装

不出所料,我的windows系统里只安装了CUDA v11.5,但没有安装cuDNN。接下来需要安装对应版本的cuDNN,到NVIDIA官网选择对应版本的安装包:cudnn下载,并根据cudnn安装指南进行安装。

安装之后再根据cuDNN确认安装进行确认。

.

安装GPU版本的pytorch

配置好cuda环境后,重激活conda环境并再使用上述1.中的方法验证pytorch的cuda是否启用。

import torch
print(torch.is_cuda_available())

到这一步如果输出True,那么恭喜你,配置成功!

但我的环境仍然报错,继续排查。此时检查torch的版本,果然是CPU版的pytorch。原因也很自然,在系统CUDA环境没有配置成功的时候,conda进行安装时会自动选择CPU版的pytorch进行安装。这是个隐形的坑,因为安装使用的指令都一样。

此时,首先需要移除安装的pytorch。

conda uninstall pytorch

这个过程会耗时比较久。pytorch卸载之后,在网上找到目前(2022/02/22)((特意留下时间戳哈哈))pytorch并没有和CUDA v11.5完全一致的版本,兼容版本是cudatoolkit 11.3+pytorch,指令如下:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch -c conda-forge

此时,再次验证pytorch下的is_cuda_available():

import torch
print(torch.is_cuda_available())

输出True!Yes!

到这里环境就配置好了,再次尝试训练,通过!预祝大家训练顺利!

.

题后记

今天是20220222,周二,农历二十二,多么难得的一天。
预祝大家都开开心心,身体健康,世界和平,开心生活最重要啦!
PPS 我要去磕巴拉拉能量了!

^ __________________________________________________ ^

.

  • 20
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
当出现"No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'"的错误提示时,这通常表示CUDA运行环境未正确配置或安装。首先,你需要确认CUDA是否已正确安装并配置了正确的路径。 你可以通过运行命令"nvcc -V"来检查CUDA版本和安装情况。如果命令返回正确的CUDA版本信息,则说明CUDA已正确安装。如果命令返回错误或未找到,可能需要重新安装CUDA。 此外,你还可以运行命令"nvidia-smi"来检查显卡驱动程序是否正确安装和正常工作。如果显示显卡信息,则说明显卡驱动程序已正确安装。如果显示错误或未找到,可能需要重新安装显卡驱动程序。 如果以上步骤均已确认正确,但问题仍然存在,建议按照分步骤测试的原则,逐一检查每一步操作是否正确完成。确保正确安装和配置CUDA环境后,再继续进行下一步操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【debug】【联合编译】No CUDA runtime is found, using CUDA_HOME=‘/usr/local/cuda-10.0](https://blog.csdn.net/prinTao/article/details/122403679)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [安装库报错:No CUDA runtime is found, using CUDA_HOME=‘/usr/local/cuda-11.3](https://blog.csdn.net/weixin_41169280/article/details/129392977)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值