PyTorch的'torch.cuda.max_memory_allocated()'显示与'nvidia-smi'不同的结果?

gudnpqoy  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(615)

我目前正在制作自己的自定义GPU报告,并使用torch.cuda.max_memory_allocated(device_id)来获取每个GPU使用的最大内存。但是,我注意到这个数字与我在此过程中运行nvidia-smi时的数字不同。
根据torch.cuda.max_memory_allocated的文档,输出的整数是以字节为单位的。从我在网上搜索到的将字节数转换为千兆字节数的方法来看,应该用1024 ** 3除它。我目前正在做round(max_mem / (1024 ** 3), 2)
是我计算错了,还是我完全误解了torch.cuda.max_memory_allocated的工作原理?我观察到在整个过程中从一个GPU分配的内存大约是32GB,但torch.cuda.max_memory_allocated(0) / (1024 ** 3)返回的内存大约是13.5GB。

gtlvzcf8

gtlvzcf81#

在PyTorch. TL的论坛上发布一个问题的链接; DR torch.cuda.max_memory_allocated不应该与nvidia-smi的输出精确地相似,因为nvidia-smi实际上保留了比实际使用的内存更多的内存。因此,torch.cuda.max_memory_reserved将与实际输出非常相似(尽管仍然不完全精确)。
https://discuss.pytorch.org/t/pytorchs-torch-cuda-max-memory-allocated-showing-different-results-from-nvidia-smi/165706/2

相关问题