首页 > Python资料 博客日记

已解决RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously repo

2024-02-25 14:00:06Python资料围观600

这篇文章介绍了已解决RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously repo,分享给大家做个参考,收藏Python资料网收获更多编程知识

参考链接

报错分析

当运行以下代码出现报错:

# 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编号

  1. 在终端中运行python程序时设置
CUDA_VISIBLE_DEVICES=1 python main.py
  1. 在python代码中设置
import os
os.environ['CUDA_VISIBLE_DEVICE']='1' # 使用编号为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数量

结尾

亲爱的读者,首先感谢抽出宝贵的时间来阅读我们的博客。我们真诚地欢迎您留下评论和意见,因为这对我们来说意义非凡。
俗话说,当局者迷,旁观者清。的客观视角对于我们发现博文的不足、提升内容质量起着不可替代的作用。
如果您觉得我们的博文给您带来了启发,那么,希望能为我们点个免费的赞/关注您的支持和鼓励是我们持续创作的动力
请放心,我们会持续努力创作,并不断优化博文质量,只为给带来更佳的阅读体验。
再次感谢的阅读,愿我们共同成长,共享智慧的果实!


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐