1 #ifndef __CS_BASE_ACCEL_H__ 2 #define __CS_BASE_ACCEL_H__ 64 #define CS_MALLOC_HD(_ptr, _ni, _type, _mode) \ 65 _ptr = (_type *) cs_malloc_hd(_mode, _ni, sizeof(_type), \ 66 #_ptr, __FILE__, __LINE__) 84 #define CS_REALLOC_HD(_ptr, _ni, _type, _mode) \ 85 _ptr = (_type *) cs_realloc_hd(_ptr, _mode, _ni, sizeof(_type), \ 86 #_ptr, __FILE__, __LINE__) 104 #define CS_FREE_HD(_ptr) \ 105 cs_free_hd(_ptr, #_ptr, __FILE__, __LINE__), _ptr = NULL 123 #define CS_FREE(_ptr) \ 124 cs_free(_ptr, #_ptr, __FILE__, __LINE__), _ptr = NULL 155 #if defined(HAVE_ACCEL) 161 #define cs_alloc_mode CS_ALLOC_HOST 177 #if defined(HAVE_ACCEL) 213 #if defined(HAVE_ACCEL) 219 const char *var_name,
220 const char *file_name,
229 const char *var_name,
230 const char *file_name,
264 #if defined(HAVE_ACCEL) 271 const char *var_name,
272 const char *file_name,
282 const char *var_name,
283 const char *file_name,
306 #if defined(HAVE_ACCEL) 310 const char *var_name,
311 const char *file_name,
318 const char *var_name,
319 const char *file_name,
341 #if defined(HAVE_ACCEL) 345 const char *var_name,
346 const char *file_name,
353 const char *var_name,
354 const char *file_name,
378 #if defined(HAVE_ACCEL) 409 #if defined(HAVE_ACCEL) 416 inline static const void *
441 #if defined(HAVE_ACCEL) 448 inline static const void *
467 #if defined(HAVE_ACCEL) 499 #if defined(HAVE_ACCEL) 508 #define cs_associate_device_ptr(_host_ptr, _ni, _size); 523 #if defined(HAVE_ACCEL) 530 #define cs_dissassociate_device_ptr(_host_ptr); 547 #if defined(HAVE_ACCEL) 555 #define cs_set_alloc_mode(_host_ptr, mode); 577 #if defined(HAVE_ACCEL) 616 #if defined(HAVE_ACCEL) 650 #if defined(HAVE_ACCEL) 678 #if defined(HAVE_ACCEL) 709 #if defined(HAVE_ACCEL) 727 #if defined(HAVE_ACCEL) 793 #if defined(HAVE_ACCEL) 818 #if defined(HAVE_ACCEL) 834 #if defined(HAVE_OPENMP_TARGET) 848 cs_omp_target_select_default_device(
void);
void * cs_get_device_ptr(void *ptr)
Return matching device pointer for a given pointer.
Definition: cs_base_accel.cxx:639
const void * cs_get_device_ptr_const(const void *ptr)
Return matching device pointer for a given constant pointer.
Definition: cs_base_accel.cxx:704
void cs_sync_h2d_future(const void *ptr)
Initiate synchronization of data from host to device for future access.
Definition: cs_base_accel.cxx:1089
void cs_free(void *ptr, const char *var_name, const char *file_name, int line_num)
Free memory on host and device for a given pointer.
Definition: cs_base_accel.cxx:606
void cs_copy_h2d(void *dest, const void *src, size_t size)
Copy data from host to device.
Definition: cs_base_accel.cxx:1292
void cs_sync_h2d(const void *ptr)
Synchronize data from host to device.
Definition: cs_base_accel.cxx:993
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
cs_alloc_mode_t cs_check_device_ptr(const void *ptr)
Check if a pointer is associated with a device.
Definition: cs_base_accel.cxx:825
#define CS_UNUSED(x)
Definition: cs_defs.h:496
void cs_prefetch_h2d(void *ptr, size_t size)
Prefetch data from host to device.
Definition: cs_base_accel.cxx:1232
Definition: cs_base_accel.h:140
void * cs_malloc_hd(cs_alloc_mode_t mode, size_t ni, size_t size, const char *var_name, const char *file_name, int line_num)
Allocate memory on host and device for ni elements of size bytes.
Definition: cs_base_accel.cxx:336
size_t cs_get_allocation_hd_size(void *host_ptr)
Check if a given host pointer is allocated with associated with cs_alloc_hd or cs_realloc_hd.
Definition: cs_base_accel.cxx:1393
Definition: cs_base_accel.h:142
void cs_sync_d2h(void *ptr)
Synchronize data from device to host.
Definition: cs_base_accel.cxx:1150
void * bft_mem_realloc(void *ptr, size_t ni, size_t size, const char *var_name, const char *file_name, int line_num)
Reallocate memory for ni elements of size bytes.
Definition: bft_mem.c:899
Definition: cs_base_accel.h:141
#define cs_associate_device_ptr(_host_ptr, _ni, _size)
Associate device memory with a given host memory pointer.
Definition: cs_base_accel.h:508
#define cs_alloc_mode
Definition: cs_base_accel.h:161
void cs_free_hd(void *ptr, const char *var_name, const char *file_name, int line_num)
Free memory on host and device for a given host pointer.
Definition: cs_base_accel.cxx:526
cs_alloc_mode_t
Definition: cs_base_accel.h:138
void * cs_realloc_hd(void *ptr, cs_alloc_mode_t mode, size_t ni, size_t size, const char *var_name, const char *file_name, int line_num)
Reallocate memory on host and device for ni elements of size bytes.
Definition: cs_base_accel.cxx:449
const void * cs_get_device_ptr_const_pf(const void *ptr)
Return matching device pointer for a given constant pointer, prefetching if applicable.
Definition: cs_base_accel.cxx:765
int cs_get_device_id(void)
Return currently associated device id.
Definition: cs_base_accel.cxx:297
#define cs_set_alloc_mode(_host_ptr, mode)
Set allocation mode for an already allocated pointer.
Definition: cs_base_accel.h:555
int cs_get_n_allocations_hd(void)
Return number of host-device allocations.
Definition: cs_base_accel.cxx:1377
Definition: cs_base_accel.h:145
#define END_C_DECLS
Definition: cs_defs.h:511
#define cs_dissassociate_device_ptr(_host_ptr)
Detach device memory from a given host memory pointer.
Definition: cs_base_accel.h:530
void cs_copy_d2h(void *dest, const void *src, size_t size)
Copy data from device to host.
Definition: cs_base_accel.cxx:1322
void cs_copy_d2d(void *dest, const void *src, size_t size)
Copy data from device to device.
Definition: cs_base_accel.cxx:1352
Definition: cs_base_accel.h:147
void * bft_mem_free(void *ptr, const char *var_name, const char *file_name, int line_num)
Free allocated memory.
Definition: bft_mem.c:1056
void * bft_mem_malloc(size_t ni, size_t size, const char *var_name, const char *file_name, int line_num)
Allocate memory for ni elements of size bytes.
Definition: bft_mem.c:815
void cs_prefetch_d2h(void *ptr, size_t size)
Prefetch data from device to host.
Definition: cs_base_accel.cxx:1262