gpu: Actually fix PE to GPU mapping
[charm.git] / src / arch / cuda / hybridAPI / hapi_impl.h
1 #ifndef __HAPI_IMPL_H_
2 #define __HAPI_IMPL_H_
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 // Initialize & exit hybrid API.
9 void initHybridAPI();
10 void setHybridAPIDevice();
11 void exitHybridAPI();
12
13 // Initializes event queues used for polling.
14 void initEventQueues();
15
16 // Registers callback handler functions.
17 void hapiRegisterCallbacks();
18
19 // Polls for GPU work completion. Does not do anything if HAPI_CUDA_CALLBACK is defined.
20 void hapiPollEvents();
21
22 #ifdef HAPI_MEMPOOL
23 // data and metadata reside in same chunk of memory
24 typedef struct _header {
25   struct _header *next;
26   int slot;
27 #ifdef HAPI_MEMPOOL_DEBUG
28   size_t size;
29 #endif
30 } Header;
31
32 typedef struct _bufferPool {
33   Header *head;
34   size_t size;
35 #ifdef HAPI_MEMPOOL_DEBUG
36   int num;
37 #endif
38 } BufferPool;
39 #endif // HAPI_MEMPOOL
40
41 #ifdef __cplusplus
42 }
43 #endif
44
45 #endif // __HAPI_IMPL_H_