RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported

在复现程序的过程中出现了以下问题
在这里插入图片描述
百度了多好方法都没有办法解决,大概的意思能明白,网上也给出了一些解释:就是错误使用torch.cuda.set_device()和os.environ[“CUDA_VISIBLE_DEVICES”]而引发的报错经历。torch.cuda.set_device()是大型项目中用于设置GPU设备编号的函数,而os.environ[“CUDA_VISIBLE_DEVICES”]则是我们在日常工作中更常使用的设置方式。当我们在不了解已有设置的情况下,错误地尝试通过os.environ[“CUDA_VISIBLE_DEVICES”]来更改GPU设备时(比如当“0”号GPU被其他任务占用时,设置使用GPU编号为1的设备),便有可能触发意料之外的报错。

原来的程序中设置是export CUDA_VISIBLE_DEVICES=1,我改成了export CUDA_VISIBLE_DEVICES=0,还是出现错误,又尝试了export CUDA_VISIBLE_DEVICES=0,1,仍然不对。最后又改成export CUDA_VISIBLE_DEVICES=0,再尝试解决办法,实在是非常头疼。

翻遍了所有程序代码中与device有关的设置,抱着试一试的心态,打开Dassl3D文件夹下的dassl,然后打开config中的defaults.py,将其中的一行命令_C.GPU = 'cuda:1’改为了_C.GPU = ‘cuda:0’,问题就这样神奇解决了,说实话我也不太明白为什么这样改就能成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值