当前位置:   article > 正文

模型运行报 RuntimeError: CUDA out of memory. Tried to allocate 384.00 MiB (GPU 0; 31.75 GiB

runtimeerror: cuda out of memory. tried to allocate 530.00 mib (gpu 0; 31.75

最近在做一个多分类模型时,遇到一个下面bug,明明服务器多块GPU上有空闲GPU,却无法运行模型。

RuntimeError: CUDA out of memory. Tried to allocate 384.00 MiB (GPU 0; 31.75 GiB total capacity; 20.64 GiB already allocated; 265.75 MiB free; 20.75 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

后来发现原因是没有指定GPU,但是有时明明指定了GPU还是无法运行,后来才知道,如果你指定的GPU被占用时,它会报默认0号GPU被占用无法分配运行内存。

  1. # 使用8块GPU中的2,3,4,5号(从0开始)
  2. os.environ['CUDA_VISIBLE_DEVICES'] = '2,3,6,7'
  3. device = torch.device('cuda')
  4. if torch.cuda.device_count() > 1:
  5. print('Let\'s use', torch.cuda.device_count(), 'GPUs!')
  6. model = nn.DataParallel(model, device_ids=[0,1]) # 设置使用的GPU为0和1号
  7. model.to(device)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/89043
推荐阅读
相关标签
  

闽ICP备14008679号