11 #ifndef vtk_m_cont_cuda_internal_CudaAllocator_h
12 #define vtk_m_cont_cuda_internal_CudaAllocator_h
14 #include <vtkm/cont/vtkm_cont_export.h>
29 struct VTKM_CONT_EXPORT CudaAllocator
33 static VTKM_CONT bool UsingManagedMemory();
36 static VTKM_CONT void ForceManagedMemoryOff();
41 static VTKM_CONT void ForceManagedMemoryOn();
43 static VTKM_CONT void ForceSyncMemoryAllocator();
44 static VTKM_CONT void ForceAsyncMemoryAllocator();
47 static VTKM_CONT bool IsDevicePointer(
const void* ptr);
51 static VTKM_CONT bool IsManagedPointer(
const void* ptr);
54 static VTKM_CONT void* Allocate(std::size_t numBytes);
58 static VTKM_CONT void* AllocateUnManaged(std::size_t numBytes);
72 static VTKM_CONT void FreeDeferred(
void* ptr, std::size_t numBytes);
74 static VTKM_CONT void PrepareForControl(
const void* ptr, std::size_t numBytes);
76 static VTKM_CONT void PrepareForInput(
const void* ptr, std::size_t numBytes);
77 static VTKM_CONT void PrepareForOutput(
const void* ptr, std::size_t numBytes);
78 static VTKM_CONT void PrepareForInPlace(
const void* ptr, std::size_t numBytes);
88 #endif // vtk_m_cont_cuda_internal_CudaAllocator_h