追踪内存消耗#

在设置复杂的工作流程时,查看内存消耗可能是有意义的。在交互式环境中,用户可以使用Windows任务管理器来查看GPU内存的使用情况。对于脚本编写来说,这可能会很麻烦。当使用nvidia GPU时,可以使用以下程序来调试工作流程的内存消耗。

import numpy as np
import pyclesperanto_prototype as cle

cle.select_device("RTX")
<NVIDIA GeForce RTX 3050 Ti Laptop GPU on Platform: NVIDIA CUDA (1 refs)>

为了监督内存消耗,可以使用nvidia-smi,这是一个命令行工具,可以打印出当前任何应用程序在给定GPU上阻塞的内存量:

!nvidia-smi --query-gpu=memory.used --format=csv
memory.used [MiB]
178 MiB

如果我们在GPU上运行一个操作并再次检查内存消耗,我们应该会看到一个增加。

image = np.random.random((1024, 1024, 100))

blurred = cle.gaussian_blur(image)
!nvidia-smi --query-gpu=memory.used --format=csv
memory.used [MiB]
580 MiB

del命令允许释放内存。注意:变量背后的内存可能不会立即被释放,这取决于系统当前的忙碌程度。

del blurred
!nvidia-smi --query-gpu=memory.used --format=csv
memory.used [MiB]
180 MiB