pytorc使用后正确释放GPU内存以及检测GPU使用情况

Song • 26167 次浏览 • 0 个回复 • 2018年04月19日

PyTorch使用缓存内存分配器来加速内存分配。因此,nvidia-smi所显示的值通常不会反映真实的内存使用情况。

PyTorch使用缓存内存分配器来加速内存分配。这允许在没有设备同步的情况下快速释放内存。但是,由分配器管理的未使用的内存仍将显示为在nvidia-smi中使用。您可以使用memory_allocated()max_memory_allocated()监视张量占用的内存,并使用memory_cached()max_memory_cached()监视由缓存分配器管理的内存。调用empty_cache()可以从PyTorch释放所有未使用的缓存内存,以便其他GPU应用程序可以使用这些内存。但是,被张量占用的GPU内存不会被释放,因此它不能增加PyTorch可用的GPU内存量。

如果您的GPU内存在Python退出后仍未释放,那么很可能某些Python子进程仍然存在。你可以通过ps -elf | grep python找到他们 并手动kill进程。

kill -9 [pid]

原创文章,转载请注明 :pytorc使用后正确释放GPU内存以及检测GPU使用情况 - pytorch中文网
原文出处: https://ptorch.com/news/161.html
问题交流群 :168117787
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
Pytorch是什么?关于Pytorch! Python使用Celery分布式异步队列/任务调度(基于Redis)