我目前正在做我自己的自定义GPU报告,并且使用torch.cuda.max_memory_allocated(device_id)来获得每个GPU使用的最大内存。但是,我注意到这个数字与我在这个过程中运行nvidia-smi时不同。
根据documentation for torch.cuda.max_memory_allocated,输出整数以字节的形式出现。从我在网上搜索到的字节数转换成千兆字节数,你应该除以1024 ** 3。我现在在做round(max_mem / (1024 ** 3), 2)
我是做错了计算,还是完全误解了torch.cuda.max_memory_allocated的工作方式?在整个过程中,我从一个GPU中看到的内存分配是32 GPU,但是torch.cuda.max_memory_allocated(0) / (1024 ** 3)返回13.5GB左右。
发布于 2022-11-15 00:49:44
在PyTorch的讨论论坛上发布一个指向同一个问题的链接。torch.cuda.max_memory_allocated博士不应该精确地类似于nvidia的输出,因为nvidia实际上比实际使用的内存更多。因此,torch.cuda.max_memory_reserved将非常接近实际输出(尽管仍不完全准确)。
https://stackoverflow.com/questions/74384810
复制相似问题