allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
时间: 2023-09-29 16:05:16 浏览: 245
这个错误信息通常是由于GPU显存碎片化引起的,可以尝试设置`max_split_size_mb`来避免碎片化。具体操作可以参考PyTorch的内存管理文档以及`PYTORCH_CUDA_ALLOC_CONF`的文档说明。此外,还可以尝试使用`torch.cuda.empty_cache()`函数来清空GPU显存,释放内存资源。
相关问题
already allocated; 0 bytes free; 3.37 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
这个错误出现的原因是PyTorch在GPU内存分配时出现了内存碎片化,导致已经保留了一定量的内存,但实际上没有足够的连续空间来分配所需的内存。可以通过将`max_split_size_mb`设置为大于0的值来避免内存碎片化,例如:
```
import torch
torch.cuda.empty_cache() # 释放不必要的内存
torch.backends.cuda.reserved_memory() # 查看保留内存大小
torch.backends.cuda.max_memory_allocated() # 查看分配的最大内存大小
torch.backends.cuda.max_memory_reserved() # 查看保留的最大内存大小
torch.backends.cuda.cufft_plan_cache.clear() # 清空cuFFT计划缓存
# 设置max_split_size_mb值
torch.backends.cuda.split_kernel_size = 1024
torch.backends.cuda.max_split_size_mb = 16000
```
另外,可以参考PyTorch的内存管理文档和PYTORCH_CUDA_ALLOC_CONF进行更深入的调优。
Tried to allocate 1.34 GiB (GPU 0; 8.00 GiB total capacity; 6.45 GiB already allocated; 0 bytes free; 6.64 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
这是一个 PyTorch 的错误信息,意思是尝试在 GPU 上分配 1.34 GiB 的内存,但是 GPU 的总容量为 8.00 GiB,已经有 6.45 GiB 的内存被分配了,没有剩余的内存可用,总共有 6.64 GiB 的内存被 PyTorch 预留。如果预留的内存 >> 已分配的内存,可以尝试设置 max_split_size_mb 以避免内存碎片化。你可以查看 PyTorch 的内存管理文档和 PYTORCH_CUDA_ALLOC_CONF 了解更多信息。
阅读全文