Just to add to Simon's answer:
  
​Objects are deleted by python's garbage collection mechanism once there are no 
references left to the object. (keyword: reference counting).
  
​The
  
​del variable
  
​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
  
​
  
​import gc
  
​gc.collect()
  
  
Again, that should not be necessary, but it is useful to bear in mind how the 
memory is actually handled in python.
  
​
  
​Cheers,
  
​Nils ​
  
​
  
On Jun 16 2023, at 9:10 am, Simon Rit  <simon....@creatis.insa-lyon.fr>  wrote:
  
>   
>   
> Hi,
>   
>   
> If you have a Python variable holding memory, you can simply call
>   
>   
> del variable_name
>   
> 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.
>   
> Simon
>   
>
>   
> >>>  import os
>   
> >>>  os.system('nvidia-smi')
>   
> Fri Jun 16 08:49:38 2023            
>   
> +-----------------------------------------------------------------------------+
>   
> | NVIDIA-SMI 510.39.01        Driver Version: 510.39.01        CUDA Version: 
> 11.6         |
>   
> |-------------------------------+----------------------+----------------------+
>   
> | GPU    Name                Persistence-M| Bus-Id                Disp.A | 
> Volatile Uncorr. ECC |
>   
> | Fan    Temp    Perf    Pwr:Usage/Cap|                 Memory-Usage | 
> GPU-Util    Compute M. |
>   
> |                                                             |               
>                              |                             MIG M. |
>   
> |===============================+======================+======================|
>   
> |     0    Quadro P2000                Off    | 00000000:01:00.0 Off |        
>                             N/A |
>   
> | N/A     52C        P8        N/A /    N/A |            0MiB /    4096MiB |  
>           0%            Default |
>   
> |                                                             |               
>                              |                                    N/A |
>   
> +-------------------------------+----------------------+----------------------+
>   
>                                                                               
>                                                                               
>   
>   
> +-----------------------------------------------------------------------------+
>   
> | Processes:                                                                  
>                                                                   |
>   
> |    GPU     GI     CI                PID     Type     Process name           
>                          GPU Memory |
>   
> |                ID     ID                                                    
>                                                  Usage            |
>   
> |=============================================================================|
>   
> |    No running processes found                                               
>                                                   |
>   
> +-----------------------------------------------------------------------------+
>   
> 0
>   
> >>>  import itk
>   
> >>>  from itk import RTK as rtk
>   
> >>>  img=itk.CudaImage[itk.F, 3].New()
>   
> >>>  img.SetRegions([500]*3)
>   
> >>>  img.Allocate()
>   
> >>>  os.system('nvidia-smi')
>   
> Fri Jun 16 08:51:28 2023            
>   
> +-----------------------------------------------------------------------------+
>   
> | NVIDIA-SMI 510.39.01        Driver Version: 510.39.01        CUDA Version: 
> 11.6         |
>   
> |-------------------------------+----------------------+----------------------+
>   
> | GPU    Name                Persistence-M| Bus-Id                Disp.A | 
> Volatile Uncorr. ECC |
>   
> | Fan    Temp    Perf    Pwr:Usage/Cap|                 Memory-Usage | 
> GPU-Util    Compute M. |
>   
> |                                                             |               
>                              |                             MIG M. |
>   
> |===============================+======================+======================|
>   
> |     0    Quadro P2000                Off    | 00000000:01:00.0 Off |        
>                             N/A |
>   
> | N/A     58C        P8        N/A /    N/A |         45MiB /    4096MiB |    
>         0%            Default |
>   
> |                                                             |               
>                              |                                    N/A |
>   
> +-------------------------------+----------------------+----------------------+
>   
>                                                                               
>                                                                               
>   
>   
> +-----------------------------------------------------------------------------+
>   
> | Processes:                                                                  
>                                                                   |
>   
> |    GPU     GI     CI                PID     Type     Process name           
>                          GPU Memory |
>   
> |                ID     ID                                                    
>                                                  Usage            |
>   
> |=============================================================================|
>   
> |        0     N/A    N/A         10890            C     python               
>                                           43MiB |
>   
> +-----------------------------------------------------------------------------+
>   
> 0
>   
> >>>  img.GetCudaDataManager().GetGPUBufferPointer()
>   
> <Swig Object of type 'void *' at 0x7f20d3327f60>
>   
> >>>  os.system('nvidia-smi')
>   
> Fri Jun 16 08:52:05 2023            
>   
> +-----------------------------------------------------------------------------+
>   
> | NVIDIA-SMI 510.39.01        Driver Version: 510.39.01        CUDA Version: 
> 11.6         |
>   
> |-------------------------------+----------------------+----------------------+
>   
> | GPU    Name                Persistence-M| Bus-Id                Disp.A | 
> Volatile Uncorr. ECC |
>   
> | Fan    Temp    Perf    Pwr:Usage/Cap|                 Memory-Usage | 
> GPU-Util    Compute M. |
>   
> |                                                             |               
>                              |                             MIG M. |
>   
> |===============================+======================+======================|
>   
> |     0    Quadro P2000                Off    | 00000000:01:00.0 Off |        
>                             N/A |
>   
> | N/A     54C        P0        N/A /    N/A |        525MiB /    4096MiB |    
>         0%            Default |
>   
> |                                                             |               
>                              |                                    N/A |
>   
> +-------------------------------+----------------------+----------------------+
>   
>                                                                               
>                                                                               
>   
>   
> +-----------------------------------------------------------------------------+
>   
> | Processes:                                                                  
>                                                                   |
>   
> |    GPU     GI     CI                PID     Type     Process name           
>                          GPU Memory |
>   
> |                ID     ID                                                    
>                                                  Usage            |
>   
> |=============================================================================|
>   
> |        0     N/A    N/A         10890            C     python               
>                                          523MiB |
>   
> +-----------------------------------------------------------------------------+
>   
> 0
>   
> >>>  del img
>   
> >>>  os.system('nvidia-smi')
>   
> Fri Jun 16 08:52:21 2023            
>   
> +-----------------------------------------------------------------------------+
>   
> | NVIDIA-SMI 510.39.01        Driver Version: 510.39.01        CUDA Version: 
> 11.6         |
>   
> |-------------------------------+----------------------+----------------------+
>   
> | GPU    Name                Persistence-M| Bus-Id                Disp.A | 
> Volatile Uncorr. ECC |
>   
> | Fan    Temp    Perf    Pwr:Usage/Cap|                 Memory-Usage | 
> GPU-Util    Compute M. |
>   
> |                                                             |               
>                              |                             MIG M. |
>   
> |===============================+======================+======================|
>   
> |     0    Quadro P2000                Off    | 00000000:01:00.0 Off |        
>                             N/A |
>   
> | N/A     56C        P0        N/A /    N/A |            2MiB /    4096MiB |  
>           0%            Default |
>   
> |                                                             |               
>                              |                                    N/A |
>   
> +-------------------------------+----------------------+----------------------+
>   
>                                                                               
>                                                                               
>   
>   
> +-----------------------------------------------------------------------------+
>   
> | Processes:                                                                  
>                                                                   |
>   
> |    GPU     GI     CI                PID     Type     Process name           
>                          GPU Memory |
>   
> |                ID     ID                                                    
>                                                  Usage            |
>   
> |=============================================================================|
>   
> |    No running processes found                                               
>                                                   |
>   
> +-----------------------------------------------------------------------------+
>   
> 0
>   
> >>>  img=itk.CudaImage[itk.F, 3].New()
>   
> >>>  img.SetRegions([500]*3)
>   
> >>>  img.GetCudaDataManager().GetGPUBufferPointer()
>   
> <Swig Object of type 'void *' at 0x7f20b2c30870>
>   
> >>>  os.system('nvidia-smi')
>   
> Fri Jun 16 08:54:10 2023            
>   
> +-----------------------------------------------------------------------------+
>   
> | NVIDIA-SMI 510.39.01        Driver Version: 510.39.01        CUDA Version: 
> 11.6         |
>   
> |-------------------------------+----------------------+----------------------+
>   
> | GPU    Name                Persistence-M| Bus-Id                Disp.A | 
> Volatile Uncorr. ECC |
>   
> | Fan    Temp    Perf    Pwr:Usage/Cap|                 Memory-Usage | 
> GPU-Util    Compute M. |
>   
> |                                                             |               
>                              |                             MIG M. |
>   
> |===============================+======================+======================|
>   
> |     0    Quadro P2000                Off    | 00000000:01:00.0 Off |        
>                             N/A |
>   
> | N/A     58C        P0        N/A /    N/A |        525MiB /    4096MiB |    
>         0%            Default |
>   
> |                                                             |               
>                              |                                    N/A |
>   
> +-------------------------------+----------------------+----------------------+
>   
>                                                                               
>                                                                               
>   
>   
> +-----------------------------------------------------------------------------+
>   
> | Processes:                                                                  
>                                                                   |
>   
> |    GPU     GI     CI                PID     Type     Process name           
>                          GPU Memory |
>   
> |                ID     ID                                                    
>                                                  Usage            |
>   
> |=============================================================================|
>   
> |        0     N/A    N/A         10890            C     python               
>                                          523MiB |
>   
> +-----------------------------------------------------------------------------+
>   
> 0
>   
> >>>  img.GetCudaDataManager().GetCPUBufferPointer()
>   
> >>>  os.system('nvidia-smi')
>   
> Fri Jun 16 08:54:20 2023            
>   
> +-----------------------------------------------------------------------------+
>   
> | NVIDIA-SMI 510.39.01        Driver Version: 510.39.01        CUDA Version: 
> 11.6         |
>   
> |-------------------------------+----------------------+----------------------+
>   
> | GPU    Name                Persistence-M| Bus-Id                Disp.A | 
> Volatile Uncorr. ECC |
>   
> | Fan    Temp    Perf    Pwr:Usage/Cap|                 Memory-Usage | 
> GPU-Util    Compute M. |
>   
> |                                                             |               
>                              |                             MIG M. |
>   
> |===============================+======================+======================|
>   
> |     0    Quadro P2000                Off    | 00000000:01:00.0 Off |        
>                             N/A |
>   
> | N/A     58C        P0        N/A /    N/A |         47MiB /    4096MiB |    
>         0%            Default |
>   
> |                                                             |               
>                              |                                    N/A |
>   
> +-------------------------------+----------------------+----------------------+
>   
>                                                                               
>                                                                               
>   
>   
> +-----------------------------------------------------------------------------+
>   
> | Processes:                                                                  
>                                                                   |
>   
> |    GPU     GI     CI                PID     Type     Process name           
>                          GPU Memory |
>   
> |                ID     ID                                                    
>                                                  Usage            |
>   
> |=============================================================================|
>   
> |        0     N/A    N/A         10890            C     python               
>                                           45MiB |
>   
> +-----------------------------------------------------------------------------+
>   
> 0
>   
>   
>   
>   
>   
> On Thu, Jun 15, 2023 at 5:33 PM Rahman, Obaid  <rahm...@ornl.gov 
> (mailto:rahm...@ornl.gov)>  wrote:
>   
>   
> >   
> >   
> > Hi,
> >   
> >
> >   
> > I am using ink-rtk-cuda116 with  python.
> >   
> > I have too many cuda variables (images and filters).
> >   
> > I would like to clear some of these variables.
> >   
> >
> >   
> > I am getting the following error:
> >   
> > ITK ERROR: CUDA ERROR: out of memory
> >   
> >
> >   
> > Does anyone know how to clear Cuda variables in python?
> >   
> > Thanks.
> >   
> >
> >   
> > Best,
> >   
> > Obaidullah Rahman
> >   
> >   
> > Oak Ridge National Laboratory, TN, United States
> >   
> >   
> > _______________________________________________
> >   
> > Rtk-users mailing list
> >   
> > rtk-us...@openrtk.org (mailto:rtk-us...@openrtk.org)
> >   
> >  https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users
> >   
>   
>   
>   
> _______________________________________________
>   
> Rtk-users mailing list
>   
> rtk-us...@openrtk.org
>   
> https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users
>   
>   
     
_______________________________________________
Rtk-users mailing list
rtk-us...@openrtk.org
https://www.creatis.insa-lyon.fr/mailman/listinfo/rtk-users

Reply via email to