【发布时间】:2020-12-10 20:17:58
【问题描述】:
当使用num_workers=32 为DataLoader 运行 PyTorch 训练程序时,htop 显示 33 个 python 进程,每个进程具有 32 GB 的 VIRT 和 15 GB 的 RES。
这是否意味着 PyTorch 训练使用 33 个进程 X 15 GB = 495 GB 内存? htop 显示只有大约 50 GB 的 RAM 和 20 GB 的交换空间正在使用 128 GB RAM 的整台机器上。那么,我们如何解释这种差异呢?
是否有更准确的方法来计算主 PyTorch 程序及其所有子 DataLoader 工作进程正在使用的 RAM 总量?
谢谢
【问题讨论】:
-
晚了,但
VIRTinhtop大致指的是您的进程可以访问的 RAM 量。而RES是实际消耗的 RAM。据我了解,RES是基于父进程的东西——因此请查看父进程的RES使用情况(将自己设置为树视图)以大致了解您总共使用了多少 RAM。nvidia-smi在 GPU 内存方面也是一个很好的代理。 -
好吧,作者的任何反应都会很棒......
标签: python python-3.x ubuntu deep-learning pytorch