29 #ifndef MEMORY_MANAGEMENT_CUDA_H_
30 #define MEMORY_MANAGEMENT_CUDA_H_
32 #include <cuda_runtime.h>
43 template <RunData_t T>
56 cudaMalloc((
void **) &array_to_allocate, numData *
sizeof(T));
57 return array_to_allocate;
67 cudaFree(array_to_free);
99 std::size_t num_data_transfer)
const override
102 dest_array, in_array, num_data_transfer *
sizeof(T), cudaMemcpyDeviceToHost);
108 std::size_t num_data_transfer)
const override
111 dest_array, in_array, num_data_transfer *
sizeof(T), cudaMemcpyHostToDevice);
Declares class for memory management with functions defined for standard memory allocation using CPU ...
Define constraints for data type in processing.
Child class of MemoryManagement with overriden member functions to manage memory on CUDA device inclu...
void FreeMemoryOnDevice(T *array_to_free) const override
Free memory on CUDA device.
void TransferDataFromHostToDevice(T *dest_array, const T *in_array, std::size_t num_data_transfer) const override
void FreeAlignedMemoryOnDevice(T *memory_to_free) const override
Free aligned memory on CUDA device (same as default free memory for CUDA)
void TransferDataFromDeviceToHost(T *dest_array, const T *in_array, std::size_t num_data_transfer) const override
T * AllocateMemoryOnDevice(std::size_t numData) const override
Allocate specified amount of data of type T on CUDA device.
T * AllocateAlignedMemoryOnDevice(std::size_t numData, run_environment::AccSetting acc_setting) const override
Allocate aligned memory on CUDA device (same as default allocating of memory for CUDA)
Class for memory management with functions defined for standard memory allocation using CPU....
AccSetting
Enum for acceleration setting.