<font style="font-size:14px;font-family:sans-serif">
        <div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">Just to add to Simon's answer: </font></font></font></div><div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">​Objects are deleted by python's garbage collection mechanism once there are no references left to the object. (keyword: reference counting). </font></font></font></div><div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">​The </font></font></font></div><div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">​del variable</font></font></font></div><div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">​statement Simon mention deletes the reference variable, but the memory is freed only when python runs a garbage collection. That might immediately afterwards, or slightly later (scheduled). Usually, you do not need to worry about that and deleting the reference as Simon said is sufficient. If for some reason you need to be absolutely sure that the object is garbage collected immediately, you can trigger a garbage collection by </font></font></font></div><div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">​</font></font></font></div><div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">​import gc</font></font></font></div><div><font style="font-family:sans-serif;font-size:14px"><font style="font-size:14px"><font style="font-family:sans-serif">​gc.collect()</font></font></font></div><br><div>Again, that should not be necessary, but it is useful to bear in mind how the memory is actually handled in python. </div><div>​</div><div>​Cheers, </div><div>​Nils ​</div><div>​</div><div class="gmail_quote_attribution">On Jun 16 2023, at 9:10 am, Simon Rit <simon.rit@creatis.insa-lyon.fr> wrote:</div><blockquote class="gmail_quote"><div><div>Hi,</div><div><div>If you have a Python variable holding memory, you can simply call</div></div><div><font style="font-family:monospace">del variable_name</font></div><div>If you want to clear the GPU memory for an image, you can access the CPU buffer pointer to have it moved to the computer RAM. Examples below.</div><div>Simon</div><div><br></div><div><font style="font-family:monospace">>>> import os</font></div><div><font style="font-family:monospace">>>> os.system('nvidia-smi')</font></div><div><font style="font-family:monospace">Fri Jun 16 08:49:38 2023      </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |</font></div><div><font style="font-family:monospace">|-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |</font></div><div><font style="font-family:monospace">| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |</font></div><div><font style="font-family:monospace">|                               |                      |               MIG M. |</font></div><div><font style="font-family:monospace">|===============================+======================+======================|</font></div><div><font style="font-family:monospace">|   0  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |</font></div><div><font style="font-family:monospace">| N/A   52C    P8    N/A /  N/A |      0MiB /  4096MiB |      0%      Default |</font></div><div><font style="font-family:monospace">|                               |                      |                  N/A |</font></div><div><font style="font-family:monospace">+-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">                                                                               </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| Processes:                                                                  |</font></div><div><font style="font-family:monospace">|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |</font></div><div><font style="font-family:monospace">|        ID   ID                                                   Usage      |</font></div><div><font style="font-family:monospace">|=============================================================================|</font></div><div><font style="font-family:monospace">|  No running processes found                                                 |</font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">0</font></div><div><font style="font-family:monospace">>>> import itk</font></div><div><font style="font-family:monospace">>>> from itk import RTK as rtk</font></div><div><font style="font-family:monospace">>>> img=itk.CudaImage[itk.F, 3].New()</font></div><div><font style="font-family:monospace">>>> img.SetRegions([500]*3)</font></div><div><font style="font-family:monospace">>>> img.Allocate()</font></div><div><font style="font-family:monospace">>>> os.system('nvidia-smi')</font></div><div><font style="font-family:monospace">Fri Jun 16 08:51:28 2023      </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |</font></div><div><font style="font-family:monospace">|-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |</font></div><div><font style="font-family:monospace">| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |</font></div><div><font style="font-family:monospace">|                               |                      |               MIG M. |</font></div><div><font style="font-family:monospace">|===============================+======================+======================|</font></div><div><font style="font-family:monospace">|   0  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |</font></div><div><font style="font-family:monospace">| N/A   58C    P8    N/A /  N/A |     45MiB /  4096MiB |      0%      Default |</font></div><div><font style="font-family:monospace">|                               |                      |                  N/A |</font></div><div><font style="font-family:monospace">+-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">                                                                               </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| Processes:                                                                  |</font></div><div><font style="font-family:monospace">|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |</font></div><div><font style="font-family:monospace">|        ID   ID                                                   Usage      |</font></div><div><font style="font-family:monospace">|=============================================================================|</font></div><div><font style="font-family:monospace">|    0   N/A  N/A     10890      C   python                             43MiB |</font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">0</font></div><div><font style="font-family:monospace">>>> img.GetCudaDataManager().GetGPUBufferPointer()</font></div><div><font style="font-family:monospace"><Swig Object of type 'void *' at 0x7f20d3327f60></font></div><div><font style="font-family:monospace">>>> os.system('nvidia-smi')</font></div><div><font style="font-family:monospace">Fri Jun 16 08:52:05 2023      </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |</font></div><div><font style="font-family:monospace">|-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |</font></div><div><font style="font-family:monospace">| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |</font></div><div><font style="font-family:monospace">|                               |                      |               MIG M. |</font></div><div><font style="font-family:monospace">|===============================+======================+======================|</font></div><div><font style="font-family:monospace">|   0  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |</font></div><div><font style="font-family:monospace">| N/A   54C    P0    N/A /  N/A |    525MiB /  4096MiB |      0%      Default |</font></div><div><font style="font-family:monospace">|                               |                      |                  N/A |</font></div><div><font style="font-family:monospace">+-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">                                                                               </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| Processes:                                                                  |</font></div><div><font style="font-family:monospace">|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |</font></div><div><font style="font-family:monospace">|        ID   ID                                                   Usage      |</font></div><div><font style="font-family:monospace">|=============================================================================|</font></div><div><font style="font-family:monospace">|    0   N/A  N/A     10890      C   python                            523MiB |</font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">0</font></div><div><font style="font-family:monospace">>>> del img</font></div><div><font style="font-family:monospace">>>> os.system('nvidia-smi')</font></div><div><font style="font-family:monospace">Fri Jun 16 08:52:21 2023      </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |</font></div><div><font style="font-family:monospace">|-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |</font></div><div><font style="font-family:monospace">| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |</font></div><div><font style="font-family:monospace">|                               |                      |               MIG M. |</font></div><div><font style="font-family:monospace">|===============================+======================+======================|</font></div><div><font style="font-family:monospace">|   0  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |</font></div><div><font style="font-family:monospace">| N/A   56C    P0    N/A /  N/A |      2MiB /  4096MiB |      0%      Default |</font></div><div><font style="font-family:monospace">|                               |                      |                  N/A |</font></div><div><font style="font-family:monospace">+-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">                                                                               </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| Processes:                                                                  |</font></div><div><font style="font-family:monospace">|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |</font></div><div><font style="font-family:monospace">|        ID   ID                                                   Usage      |</font></div><div><font style="font-family:monospace">|=============================================================================|</font></div><div><font style="font-family:monospace">|  No running processes found                                                 |</font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">0</font></div><div><font style="font-family:monospace">>>> img=itk.CudaImage[itk.F, 3].New()</font></div><div><font style="font-family:monospace">>>> img.SetRegions([500]*3)</font></div><div><font style="font-family:monospace">>>> img.GetCudaDataManager().GetGPUBufferPointer()</font></div><div><font style="font-family:monospace"><Swig Object of type 'void *' at 0x7f20b2c30870></font></div><div><font style="font-family:monospace">>>> os.system('nvidia-smi')</font></div><div><font style="font-family:monospace">Fri Jun 16 08:54:10 2023      </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |</font></div><div><font style="font-family:monospace">|-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |</font></div><div><font style="font-family:monospace">| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |</font></div><div><font style="font-family:monospace">|                               |                      |               MIG M. |</font></div><div><font style="font-family:monospace">|===============================+======================+======================|</font></div><div><font style="font-family:monospace">|   0  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |</font></div><div><font style="font-family:monospace">| N/A   58C    P0    N/A /  N/A |    525MiB /  4096MiB |      0%      Default |</font></div><div><font style="font-family:monospace">|                               |                      |                  N/A |</font></div><div><font style="font-family:monospace">+-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">                                                                               </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| Processes:                                                                  |</font></div><div><font style="font-family:monospace">|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |</font></div><div><font style="font-family:monospace">|        ID   ID                                                   Usage      |</font></div><div><font style="font-family:monospace">|=============================================================================|</font></div><div><font style="font-family:monospace">|    0   N/A  N/A     10890      C   python                            523MiB |</font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">0</font></div><div><font style="font-family:monospace">>>> img.GetCudaDataManager().GetCPUBufferPointer()</font></div><div><font style="font-family:monospace">>>> os.system('nvidia-smi')</font></div><div><font style="font-family:monospace">Fri Jun 16 08:54:20 2023      </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |</font></div><div><font style="font-family:monospace">|-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |</font></div><div><font style="font-family:monospace">| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |</font></div><div><font style="font-family:monospace">|                               |                      |               MIG M. |</font></div><div><font style="font-family:monospace">|===============================+======================+======================|</font></div><div><font style="font-family:monospace">|   0  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |</font></div><div><font style="font-family:monospace">| N/A   58C    P0    N/A /  N/A |     47MiB /  4096MiB |      0%      Default |</font></div><div><font style="font-family:monospace">|                               |                      |                  N/A |</font></div><div><font style="font-family:monospace">+-------------------------------+----------------------+----------------------+</font></div><div><font style="font-family:monospace">                                                                               </font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">| Processes:                                                                  |</font></div><div><font style="font-family:monospace">|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |</font></div><div><font style="font-family:monospace">|        ID   ID                                                   Usage      |</font></div><div><font style="font-family:monospace">|=============================================================================|</font></div><div><font style="font-family:monospace">|    0   N/A  N/A     10890      C   python                             45MiB |</font></div><div><font style="font-family:monospace">+-----------------------------------------------------------------------------+</font></div><div><font style="font-family:monospace">0</font></div></div><br><div class="gmail_quote"><div class="gmail_attr"><div>On Thu, Jun 15, 2023 at 5:33 PM Rahman, Obaid <<a href="mailto:rahmano@ornl.gov" title="mailto:rahmano@ornl.gov">rahmano@ornl.gov</a>> wrote:</div></div><blockquote class="gmail_quote"><div><div>Hi,</div><div><br><div>I am using ink-rtk-cuda116 with <strong>python</strong>.</div><div>I have too many cuda variables (images and filters).</div><div>I would like to clear some of these variables.</div><div><br></div><div>I am getting the following error:</div><div><span style="color:rgb(255, 168, 147)">ITK ERROR: CUDA ERROR: out of memory</span></div><div><br></div><div>Does anyone know how to clear Cuda variables in python?</div><div>Thanks.</div><div><br></div><div>Best,</div><div>Obaidullah Rahman</div></div><div>Oak Ridge National Laboratory, TN, United States</div></div><div>_______________________________________________</div><div>Rtk-users mailing list</div><div><a href="mailto:rtk-users@openrtk.org" title="mailto:rtk-users@openrtk.org">rtk-users@openrtk.org</a></div><div><a href="https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users" title="https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users">https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users</a></div></blockquote></div><div><div>_______________________________________________</div><div>Rtk-users mailing list</div><div>rtk-users@openrtk.org</div><div>https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users</div></div></blockquote>
      </font>