(已解决)(pytorch指定了gpu但还是占用了一点0号gpu)以及错误(cuDNN error: CUDNN_STATUS_INTERNAL_ERROR)

文章目录

错误原因

出现错误cuDNN error: CUDNN_STATUS_INTERNAL_ERROR,从这个名字就可以看出,出错原因其实有可能有很多种,我这里说一种比较常见的,就是:显存不足。

一个困惑点在于,在我们的印象中,显存不足不是报另外一个错吗?RuntimeError: CUDA Out of memory。事实上,后者是运行时错误,一般通过降低batch size, 向量维度,神经网络层数可以解决。

前者报错我的理解是当使用CUDA的时候Pytorch内部有一个初始化,默认运行在第0块GPU(即使模型被指定运行在其他GPU),然后显存不足指的是在初始化的时候显存不足,也就是第0块GPU显存不足以支撑初始化了,一般初始化其实并不消耗多少显存,比模型运行时一般小多了,那为什么还会报错呢?一般是因为第0块GPU被别的童鞋占用了。我的情况如下:gpu0被别人使用了24059MB,然后一共只有24268MB,所以初始化失败,就会报上述错误。

解决问题

我们其实就是要解决Pytorch指定了gpu但还是会占用了一点0号gpu(初始化默认会在0上面)。解决办法如下:

假设我们指定模型要全部运行在5号gpu上(包括初始化也要在5号上)。

python 复制代码
import os
import torch
os.environ['CUDA_VISIBLE_DEVICES'] = "5"
device=torch.device("cuda:{}".format(0))

第一行代码:将5号gpu设置为可见,此时其他gpu全部无法再见到。
第二行代码:仅有5号gpu可见,此时gpu编号会改变,5号gpu会变成0号gpu,所以指定0号gpu,其实就是指定原来的5号gpu。

作为对比,平常我们大多数人其实是下面这样运行的

python 复制代码
import os
import torch
device=torch.device("cuda:5")
相关推荐
回眸&啤酒鸭4 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
默_笙4 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
AI的探索之旅4 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein4 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu4 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
qq_426003964 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
美狐美颜SDK开放平台4 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk