PyTorch上限制GPU显存的函数

pytorch版本 >=1.8.0

函数形态

torch.cuda.set_per_process_memory_fraction(0.5, 0)
 参数1:fraction 限制的上限比例,如0.5 就是总GPU显存的一半,可以是0~1的任意float大小;
 参数2:device 设备号; 如0 表示GPU卡 0号;

使用示例:

import torch
# 限制0号设备的显存的使用量为0.5,就是半张卡那么多,比如12G卡,设置0.5就是6G。
torch.cuda.set_per_process_memory_fraction(0.5, 0)
torch.cuda.empty_cache()
# 计算一下总内存有多少。
total_memory = torch.cuda.get_device_properties(0).total_memory
# 使用0.499的显存:
tmp_tensor = torch.empty(int(total_memory * 0.499), dtype=torch.int8, device='cuda')

# 清空该显存:
del tmp_tensor
torch.cuda.empty_cache()

# 下面这句话会触发显存OOM错误,因为刚好触碰到了上限:
torch.empty(total_memory // 2, dtype=torch.int8, device='cuda')

"""
It raises an error as follows: 
RuntimeError: CUDA out of memory. Tried to allocate 5.59 GiB (GPU 0; 11.17 GiB total capacity; 0 bytes already allocated; 10.91 GiB free; 5.59 GiB allowed; 0 bytes reserved in total by PyTorch)
"""
显存超标后,比不设置限制的错误信息多了一个提示,“5.59 GiB allowed;

注意事项:

函数限制的是进程的显存,这点跟TensorFlow的显存限制类似。

相关内容请看参考链接:https://zhuanlan.zhihu.com/p/338044800

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch上配置GPU使用GTX 1650 Ti,你可以按照以下步骤进行操作: 1. 确保你的操作系统已经安装了适当的NVIDIA驱动程序。可以在NVIDIA官方网站上下载并安装最新的驱动程序。 2. 安装CUDA Toolkit。CUDA是NVIDIA提供的用于GPU计算的平台和编程模型。根据你的操作系统版本,选择合适的CUDA Toolkit版本并进行安装。你可以在NVIDIA的官方网站上找到相关的下载链接和安装指南。 3. 安装cuDNN(CUDA Deep Neural Network library)。cuDNN是一个针对深度神经网络的GPU加速库,可以提供更快的训练和推理速度。你需要去NVIDIA的官方网站注册一个账号,并下载适合你的CUDA版本的cuDNN库。下载后,按照cuDNN的安装指南进行安装。 4. 在PyTorch中启用GPU支持。在使用PyTorch之前,你需要确保已经正确安装了PyTorch,并且选择了支持CUDA的版本。在代码中,你可以添加以下代码片段来启用GPU支持: ```python import torch # 检查是否有可用的GPU if torch.cuda.is_available(): # 设置默认的设备为GPU device = torch.device("cuda") print("GPU可用") else: device = torch.device("cpu") print("没有可用的GPU") # 将模型移动到对应的设备 model.to(device) # 在需要的地方将数据移动到对应的设备 inputs = inputs.to(device) labels = labels.to(device) ``` 通过使用`torch.cuda.is_available()`函数,你可以检查是否存在可用的GPU。然后,你可以通过将模型和数据移动到对应的设备上,来使用GPU进行训练和推理。 记住,GPU的性能取决于你的硬件配置和模型的大小。如果你的模型太大无法适应GPU显存,你可能需要调整批处理大小或使用分布式训练等技术来解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值