【Pytorch】pytorch中内存的计算
·
常用的pytorch计算环境是包含GPU在内的异构计算环境,因此内存的计算分为CPU内存的计算和GPU内存的计算。
CPU内存使用的计算
此处的计算和算子开发中的模式相同,也即针对tensor使数据类型所占的大小乘以数据元素的数量,并兼顾到对齐的问题。
因此计算的过程可以参考下面的代码:
for k, v in MEMORY_USE.items():
# 对于字典中的每一项,k 是张量对象,v 是它的内存信息
# 计算当前张量的内存占用量
# 计算张量的元素数量:k.size() 返回张量的形状信息,计算张量的总元素数量
# 计算每个元素的字节大小:k.element_size() 返回每个元素占用的字节数(如 float32 占用 4 字节)
# 然后通过 math.ceil 将内存计算结果向上取整,确保以最小分配单位对内存进行调整。
curr_use += math.ceil(k.size() * k.element_size() / PYTORCH_MIN_ALLOCATE) * PYTORCH_MIN_ALLOCATE
GPU内存的计算
GPU内存:通过 torch.cuda.memory_allocated() 和 torch.cuda.memory_reserved() 可以查询 GPU 上的内存使用情况。
监控内存:使用 torch.cuda.memory_summary() 或 torch.cuda.memory_stats() 可以更详细地查看 GPU 内存的统计信息。
借助于CUDA,可以很方便的实现对内存使用情况的监控。
更多推荐

所有评论(0)