29 #ifndef MEMORY_MANAGEMENT_H_
30 #define MEMORY_MANAGEMENT_H_
45 template <RunData_t T>
50 return (
new T[numData]);
54 delete [] array_to_free;
62 T* memoryData =
static_cast<T*
>(_aligned_malloc(
66 T* memoryData =
static_cast<T*
>(std::aligned_alloc(
75 _aligned_free(memory_to_free);
84 std::size_t num_data_transfer)
const
86 std::ranges::copy(in_array, in_array + num_data_transfer, dest_array);
92 std::size_t num_data_transfer)
const
94 std::ranges::copy(in_array, in_array + num_data_transfer, dest_array);
Declares and defines structure that stores settings for current implementation run as well as functio...
Define constraints for data type in processing.
Class for memory management with functions defined for standard memory allocation using CPU....
virtual T * AllocateAlignedMemoryOnDevice(std::size_t numData, run_environment::AccSetting acc_setting) const
virtual T * AllocateMemoryOnDevice(std::size_t numData) const
virtual void TransferDataFromHostToDevice(T *dest_array, const T *in_array, std::size_t num_data_transfer) const
virtual void TransferDataFromDeviceToHost(T *dest_array, const T *in_array, std::size_t num_data_transfer) const
virtual void FreeMemoryOnDevice(T *array_to_free) const
virtual void FreeAlignedMemoryOnDevice(T *memory_to_free) const
AccSetting
Enum for acceleration setting.
unsigned int GetBytesAlignMemory(AccSetting accel_setting)