Optimized Belief Propagation (CPU and GPU)
MemoryManagement< T > Class Template Reference

Class for memory management with functions defined for standard memory allocation using CPU.
Class functions can be overridden to support other computation devices such as GPU. More...

#include <MemoryManagement.h>

Inheritance diagram for MemoryManagement< T >:

Public Member Functions

virtual T * AllocateMemoryOnDevice (std::size_t numData) const
 
virtual void FreeMemoryOnDevice (T *array_to_free) const
 
virtual T * AllocateAlignedMemoryOnDevice (std::size_t numData, run_environment::AccSetting acc_setting) const
 
virtual void FreeAlignedMemoryOnDevice (T *memory_to_free) const
 
virtual void TransferDataFromDeviceToHost (T *dest_array, const T *in_array, std::size_t num_data_transfer) const
 
virtual void TransferDataFromHostToDevice (T *dest_array, const T *in_array, std::size_t num_data_transfer) const
 

Detailed Description

template<RunData_t T>
class MemoryManagement< T >

Class for memory management with functions defined for standard memory allocation using CPU.
Class functions can be overridden to support other computation devices such as GPU.

Template Parameters
T

Definition at line 46 of file MemoryManagement.h.

Member Function Documentation

◆ AllocateAlignedMemoryOnDevice()

template<RunData_t T>
virtual T* MemoryManagement< T >::AllocateAlignedMemoryOnDevice ( std::size_t  numData,
run_environment::AccSetting  acc_setting 
) const
inlinevirtual

Reimplemented in MemoryManagementCUDA< T >.

Definition at line 57 of file MemoryManagement.h.

Here is the call graph for this function:

◆ AllocateMemoryOnDevice()

template<RunData_t T>
virtual T* MemoryManagement< T >::AllocateMemoryOnDevice ( std::size_t  numData) const
inlinevirtual

Reimplemented in MemoryManagementCUDA< T >.

Definition at line 49 of file MemoryManagement.h.

◆ FreeAlignedMemoryOnDevice()

template<RunData_t T>
virtual void MemoryManagement< T >::FreeAlignedMemoryOnDevice ( T *  memory_to_free) const
inlinevirtual

Reimplemented in MemoryManagementCUDA< T >.

Definition at line 72 of file MemoryManagement.h.

◆ FreeMemoryOnDevice()

template<RunData_t T>
virtual void MemoryManagement< T >::FreeMemoryOnDevice ( T *  array_to_free) const
inlinevirtual

Reimplemented in MemoryManagementCUDA< T >.

Definition at line 53 of file MemoryManagement.h.

◆ TransferDataFromDeviceToHost()

template<RunData_t T>
virtual void MemoryManagement< T >::TransferDataFromDeviceToHost ( T *  dest_array,
const T *  in_array,
std::size_t  num_data_transfer 
) const
inlinevirtual

Reimplemented in MemoryManagementCUDA< T >.

Definition at line 81 of file MemoryManagement.h.

◆ TransferDataFromHostToDevice()

template<RunData_t T>
virtual void MemoryManagement< T >::TransferDataFromHostToDevice ( T *  dest_array,
const T *  in_array,
std::size_t  num_data_transfer 
) const
inlinevirtual

Reimplemented in MemoryManagementCUDA< T >.

Definition at line 89 of file MemoryManagement.h.


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