Rastreo del consumo de memoria#

Al configurar flujos de trabajo complejos, puede tener sentido echar un vistazo al consumo de memoria. En entornos interactivos, el usuario puede utilizar el Administrador de tareas de Windows para ver qué tan ocupada está la memoria de la GPU. Esto podría ser engorroso para la creación de scripts. Cuando se usa una GPU de NVIDIA, se puede utilizar el siguiente procedimiento para depurar el consumo de memoria del flujo de trabajo.

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)>

Para supervisar el consumo de memoria, se puede utilizar nvidia-smi, una herramienta de línea de comandos que puede imprimir cuánta memoria está actualmente bloqueada en una GPU determinada, por cualquier aplicación:

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

Si luego ejecutamos una operación en la GPU y verificamos el consumo de memoria nuevamente, deberíamos ver un aumento.

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

El comando del permite liberar memoria. Nota: La memoria detrás de la variable puede no liberarse inmediatamente, dependiendo de qué tan ocupado esté el sistema en ese momento.

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