【已解决】探究CUDA out of memory背后原因,如何释放GPU显存?

本文探讨了CUDA中GPU显存占用的原因,包括固有显存、激活与失活机制。通过实验展示了如何手动释放显存,以及在深度学习中管理GPU资源的常见做法。了解这些知识有助于优化GPU利用率。
摘要由CSDN通过智能技术生成

2 问题探索

2.1 CUDA固有显存

在实验开始前,先清空环境,终端输入nvidia-smi

在这里插入图片描述
接下来向GPU存入一个小的张量

import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
torch.randn((2, 3), device=device)

占用显存情况如下,共计448M

在这里插入图片描述
而当我们增大张量的尺寸,例如

torch.randn((200, 300, 200, 20), device=device)

此时GPU占用也随之上升,共计1362M

在这里插入图片描述

这表明:GPU显存占用率和存入的数据尺寸成正相关,越大的数据占用显存越多,这其实是废话,但是把这句话反过来:越小的数据占用显存越小吗?做个实验

torch.randn((1, 1), device=device)

仍然占用448M

在这里插入图片描述
事实上,这是因为CUDA运行时,其固件会占用一定的显存,在本机软硬件环境下是448M,不同的CUDA版本或显卡型号固件显存不同。换言之,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值