Expression Templates Library (ETL)
Public Member Functions | List of all members
etl::gpu_memory_handler< T > Struct Template Reference

Public Member Functions

T * gpu_memory () const noexcept
 Return GPU memory of this expression, if any. More...
 
bool is_cpu_up_to_date () const noexcept
 Indicates if the CPU memory is up to date. More...
 
bool is_gpu_up_to_date () const noexcept
 Indicates if the GPU memory is up to date. More...
 
void gpu_evict () const noexcept
 Evict the expression from GPU.
 
void invalidate_cpu () const noexcept
 Invalidates the CPU memory.
 
void invalidate_gpu () const noexcept
 Invalidates the GPU memory.
 
void validate_cpu () const noexcept
 Validates the CPU memory.
 
void validate_gpu () const noexcept
 Validates the GPU memory.
 
void ensure_gpu_allocated ([[maybe_unused]] size_t etl_size) const
 Ensures that the GPU memory is allocated and that the GPU memory is up to date (to undefined value). More...
 
void ensure_gpu_up_to_date ([[maybe_unused]] const T *cpu_memory, [[maybe_unused]] size_t etl_size) const
 Allocate memory on the GPU for the expression and copy the values into the GPU. More...
 
void ensure_cpu_up_to_date ([[maybe_unused]] const T *cpu_memory, [[maybe_unused]] size_t etl_size) const
 Copy back from the GPU to the expression memory if necessary. More...
 
void gpu_copy_from ([[maybe_unused]] const T *gpu_memory, [[maybe_unused]] size_t etl_size) const
 Copy from GPU to GPU. More...
 

Member Function Documentation

◆ ensure_cpu_up_to_date()

template<typename T>
void etl::gpu_memory_handler< T >::ensure_cpu_up_to_date ( [[maybe_unused] ] const T *  cpu_memory,
[[maybe_unused] ] size_t  etl_size 
) const
inline

Copy back from the GPU to the expression memory if necessary.

Parameters
cpu_memoryPointer to CPU memory
etl_sizeThe size of the memory

◆ ensure_gpu_allocated()

template<typename T>
void etl::gpu_memory_handler< T >::ensure_gpu_allocated ( [[maybe_unused] ] size_t  etl_size) const
inline

Ensures that the GPU memory is allocated and that the GPU memory is up to date (to undefined value).

Parameters
etl_sizeThe size of the memory

◆ ensure_gpu_up_to_date()

template<typename T>
void etl::gpu_memory_handler< T >::ensure_gpu_up_to_date ( [[maybe_unused] ] const T *  cpu_memory,
[[maybe_unused] ] size_t  etl_size 
) const
inline

Allocate memory on the GPU for the expression and copy the values into the GPU.

Parameters
cpu_memoryPointer to CPU memory
etl_sizeThe size of the memory

◆ gpu_copy_from()

template<typename T>
void etl::gpu_memory_handler< T >::gpu_copy_from ( [[maybe_unused] ] const T *  gpu_memory,
[[maybe_unused] ] size_t  etl_size 
) const
inline

Copy from GPU to GPU.

Parameters
gpu_memoryPointer to CPU memory
etl_sizeThe size of the memory

◆ gpu_memory()

template<typename T>
T* etl::gpu_memory_handler< T >::gpu_memory ( ) const
inlinenoexcept

Return GPU memory of this expression, if any.

Returns
a pointer to the GPU memory or nullptr if not allocated in GPU.

◆ is_cpu_up_to_date()

template<typename T>
bool etl::gpu_memory_handler< T >::is_cpu_up_to_date ( ) const
inlinenoexcept

Indicates if the CPU memory is up to date.

Returns
true if the CPU memory is up to date, false otherwise.

◆ is_gpu_up_to_date()

template<typename T>
bool etl::gpu_memory_handler< T >::is_gpu_up_to_date ( ) const
inlinenoexcept

Indicates if the GPU memory is up to date.

Returns
true if the GPU memory is up to date, false otherwise.

The documentation for this struct was generated from the following file: