mem_device_used_bytes Function

public function mem_device_used_bytes() result(bytes)

Device memory currently in use, in bytes (total - free). DEVICE-WIDE: includes this process’s CUDA context (~300-500 MB) and every other process on a shared device — see the module header’s structural offsets. Returns -1 when no OpenACC runtime is present.

Arguments

None

Return Value integer(kind=int64)


Calls

proc~~mem_device_used_bytes~~CallsGraph proc~mem_device_used_bytes mem_device_used_bytes proc~mem_device_free_bytes mem_device_free_bytes proc~mem_device_used_bytes->proc~mem_device_free_bytes proc~mem_device_total_bytes mem_device_total_bytes proc~mem_device_used_bytes->proc~mem_device_total_bytes

Called by

proc~~mem_device_used_bytes~~CalledByGraph proc~mem_device_used_bytes mem_device_used_bytes proc~mem_log_device_growth mem_log_device_growth proc~mem_log_device_growth->proc~mem_device_used_bytes proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~mem_log_device_growth proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean

Variables

Type Visibility Attributes Name Initial
integer(kind=int64), private :: free_b
integer(kind=int64), private :: total_b

Source Code

   function mem_device_used_bytes() result(bytes)
      !! Device memory currently in use, in bytes (`total - free`).
      !! DEVICE-WIDE: includes this process's CUDA context (~300-500 MB)
      !! and every other process on a shared device — see the module
      !! header's structural offsets.  Returns `-1` when no OpenACC
      !! runtime is present.
      integer(int64) :: bytes
      integer(int64) :: free_b, total_b

      bytes = -1_int64
      free_b = mem_device_free_bytes()
      total_b = mem_device_total_bytes()
      if (free_b < 0_int64 .or. total_b < 0_int64) return
      bytes = total_b - free_b
   end function mem_device_used_bytes