-
Notifications
You must be signed in to change notification settings - Fork 117
Expand file tree
/
Copy pathlupine_attr_sizes.h
More file actions
86 lines (82 loc) · 2.48 KB
/
Copy pathlupine_attr_sizes.h
File metadata and controls
86 lines (82 loc) · 2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#ifndef LUPINE_ATTR_SIZES_H
#define LUPINE_ATTR_SIZES_H
#include <cstddef>
#include <cuda.h>
inline bool lupine_mem_pool_attribute_size(CUmemPool_attribute attr,
size_t *size) {
if (size == nullptr) {
return false;
}
switch (attr) {
case CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES:
case CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC:
case CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES:
*size = sizeof(int);
return true;
case CU_MEMPOOL_ATTR_RELEASE_THRESHOLD:
case CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT:
case CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH:
case CU_MEMPOOL_ATTR_USED_MEM_CURRENT:
case CU_MEMPOOL_ATTR_USED_MEM_HIGH:
*size = sizeof(cuuint64_t);
return true;
default:
return false;
}
}
inline bool lupine_pointer_attribute_size(CUpointer_attribute attr,
size_t *size) {
if (size == nullptr) {
return false;
}
switch (attr) {
case CU_POINTER_ATTRIBUTE_CONTEXT:
*size = sizeof(CUcontext);
return true;
case CU_POINTER_ATTRIBUTE_MEMORY_TYPE:
*size = sizeof(unsigned int);
return true;
case CU_POINTER_ATTRIBUTE_DEVICE_POINTER:
*size = sizeof(CUdeviceptr);
return true;
case CU_POINTER_ATTRIBUTE_HOST_POINTER:
*size = sizeof(void *);
return true;
case CU_POINTER_ATTRIBUTE_P2P_TOKENS:
*size = sizeof(CUDA_POINTER_ATTRIBUTE_P2P_TOKENS);
return true;
case CU_POINTER_ATTRIBUTE_SYNC_MEMOPS:
case CU_POINTER_ATTRIBUTE_IS_MANAGED:
case CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL:
case CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE:
case CU_POINTER_ATTRIBUTE_MAPPED:
case CU_POINTER_ATTRIBUTE_ACCESS_FLAGS:
case CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE:
#if CUDA_VERSION >= 13000
case CU_POINTER_ATTRIBUTE_IS_HW_DECOMPRESS_CAPABLE:
#endif
*size = sizeof(int);
return true;
case CU_POINTER_ATTRIBUTE_BUFFER_ID:
case CU_POINTER_ATTRIBUTE_MEMORY_BLOCK_ID:
*size = sizeof(unsigned long long);
return true;
case CU_POINTER_ATTRIBUTE_RANGE_START_ADDR:
case CU_POINTER_ATTRIBUTE_MAPPING_BASE_ADDR:
*size = sizeof(CUdeviceptr);
return true;
case CU_POINTER_ATTRIBUTE_RANGE_SIZE:
case CU_POINTER_ATTRIBUTE_MAPPING_SIZE:
*size = sizeof(size_t);
return true;
case CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES:
*size = sizeof(unsigned int);
return true;
case CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE:
*size = sizeof(CUmemoryPool);
return true;
default:
return false;
}
}
#endif