已解决RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously repo
•
Python
文章目录
- 报错分析
- 解决方法
- 相关技巧
-
- Pytorch设置GPU编号
- 检查GPU是否可用
- 显示当前可用的GPU数量
- 结尾
参考链接
报错分析
当运行以下代码出现报错:
# self.opt.gpu_ids = ["1"] torch.cuda.set_device(self.opt.gpu_ids[0])
报错信息如下
RuntimeError: CUDA error: invalid device ordinal
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
报错完整截图

报错的信息告诉我们,编号”1″是无效的设备序号。但我使用的设备属于单机多卡,是有编号为”1″的显卡的。
解决方法
检查报错代码前面执行过的程序,特别是导入第三方库部分,发现利用os库指定了该程序可见的GPU编号及数量,即:
import os os.environ["CUDA_VISIBLE_DEVICES"] = "1"
因此,注释掉os.environ[“CUDA_VISIBLE_DEVICES”] = “1”后,重新运行程序,顺利解决bug~
相关技巧
Pytorch设置GPU编号
- 在终端中运行python程序时设置
CUDA_VISIBLE_DEVICES=1 python main.py
- 在python代码中设置
import os os.environ['CUDA_VISIBLE_DEVICE']='1' # 使用编号为1的显卡
- 在python代码中使用函数torch.cuda.set_device设置
import torch
torch.cuda.set_device("1")
检查GPU是否可用
import torch torch.cuda.is_available() # 判断是否可以使用gpu计算
显示当前可用的GPU数量
import torch torch.cuda.device_count() # 显示gpu数量
结尾
亲爱的读者,首先感谢您抽出宝贵的时间来阅读我们的博客。我们真诚地欢迎您留下评论和意见,因为这对我们来说意义非凡。
俗话说,当局者迷,旁观者清。您的客观视角对于我们发现博文的不足、提升内容质量起着不可替代的作用。
如果您觉得我们的博文给您带来了启发,那么,希望您能为我们点个免费的赞/关注,您的支持和鼓励是我们持续创作的动力。
请放心,我们会持续努力创作,并不断优化博文质量,只为给您带来更佳的阅读体验。
再次感谢您的阅读,愿我们共同成长,共享智慧的果实!
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/cc3bf8c8be.html
