Suivi de la consommation de mémoire#

Lors de la mise en place de flux de travail complexes, il peut être judicieux d’examiner la consommation de mémoire. Dans des environnements interactifs, l’utilisateur peut utiliser le Gestionnaire des tâches Windows pour voir à quel point la mémoire GPU est occupée. Cela peut être fastidieux pour le scripting. Lors de l’utilisation d’un GPU NVIDIA, la procédure suivante peut être utilisée pour déboguer la consommation de mémoire du flux de travail.

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

Pour surveiller la consommation de mémoire, on peut utiliser nvidia-smi, un outil en ligne de commande qui peut afficher la quantité de mémoire actuellement bloquée dans un GPU donné, par n’importe quelle application :

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

Si nous exécutons ensuite une opération sur le GPU et vérifions à nouveau la consommation de mémoire, nous devrions voir une augmentation.

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

La commande del permet de libérer de la mémoire. Note : La mémoire derrière la variable peut ne pas être libérée immédiatement, selon l’occupation du système à ce moment-là.

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