Skip to content

Commit 88e66fa

Browse files
Jose M Monsalve Diazjdoerfert
authored andcommitted
[OpenMP] Fixing missing variables when CUDA SDK not in system
This patch fixes the error reported in D106751. When there is no CUDA SDK installed in the system, the build fails due to missing `CU_DEVICE_ATTRIBUTE` variables. Using @zsrkmyn sugested fix Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D106933
1 parent 313c523 commit 88e66fa

File tree

1 file changed

+131
-2
lines changed
  • openmp/libomptarget/plugins/cuda/dynamic_cuda

1 file changed

+131
-2
lines changed

openmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.h

Lines changed: 131 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,132 @@ typedef enum CUlimit_enum {
4646
} CUlimit;
4747

4848
typedef enum CUdevice_attribute_enum {
49+
CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1,
4950
CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X = 2,
51+
CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y = 3,
52+
CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z = 4,
5053
CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X = 5,
54+
CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y = 6,
55+
CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z = 7,
56+
CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK = 8,
57+
CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = 8,
58+
CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY = 9,
5159
CU_DEVICE_ATTRIBUTE_WARP_SIZE = 10,
60+
CU_DEVICE_ATTRIBUTE_MAX_PITCH = 11,
61+
CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK = 12,
62+
CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = 12,
63+
CU_DEVICE_ATTRIBUTE_CLOCK_RATE = 13,
64+
CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT = 14,
65+
CU_DEVICE_ATTRIBUTE_GPU_OVERLAP = 15,
66+
CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT = 16,
67+
CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT = 17,
68+
CU_DEVICE_ATTRIBUTE_INTEGRATED = 18,
69+
CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY = 19,
70+
CU_DEVICE_ATTRIBUTE_COMPUTE_MODE = 20,
71+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH = 21,
72+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH = 22,
73+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT = 23,
74+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH = 24,
75+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT = 25,
76+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH = 26,
77+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH = 27,
78+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT = 28,
79+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS = 29,
80+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH = 27,
81+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT = 28,
82+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES = 29,
83+
CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT = 30,
84+
CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = 31,
85+
CU_DEVICE_ATTRIBUTE_ECC_ENABLED = 32,
86+
CU_DEVICE_ATTRIBUTE_PCI_BUS_ID = 33,
87+
CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID = 34,
88+
CU_DEVICE_ATTRIBUTE_TCC_DRIVER = 35,
89+
CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE = 36,
90+
CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH = 37,
91+
CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE = 38,
92+
CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = 39,
93+
CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = 40,
94+
CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = 41,
95+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH = 42,
96+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS = 43,
97+
CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER = 44,
98+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH = 45,
99+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT = 46,
100+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE = 47,
101+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE = 48,
102+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE = 49,
103+
CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID = 50,
104+
CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT = 51,
105+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH = 52,
106+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH = 53,
107+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS = 54,
108+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH = 55,
109+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH = 56,
110+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT = 57,
111+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH = 58,
112+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT = 59,
113+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH = 60,
114+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH = 61,
115+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS = 62,
116+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH = 63,
117+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT = 64,
118+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS = 65,
119+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH = 66,
120+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH = 67,
121+
CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS = 68,
122+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH = 69,
123+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH = 70,
124+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT = 71,
125+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH = 72,
126+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH = 73,
127+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT = 74,
128+
CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = 75,
129+
CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = 76,
130+
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH = 77,
131+
CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED = 78,
132+
CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED = 79,
133+
CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED = 80,
134+
CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR = 81,
135+
CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = 82,
136+
CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY = 83,
137+
CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD = 84,
138+
CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID = 85,
139+
CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED = 86,
140+
CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO = 87,
141+
CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS = 88,
142+
CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS = 89,
143+
CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED = 90,
144+
CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM = 91,
145+
CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS = 92,
146+
CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS = 93,
147+
CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR = 94,
148+
CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH = 95,
149+
CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH = 96,
150+
CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN = 97,
151+
CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES = 98,
152+
CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED = 99,
153+
CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES = 100,
154+
CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST = 101,
155+
CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED = 102,
156+
CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED = 102,
157+
CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED = 103,
158+
CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED = 104,
159+
CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED = 105,
160+
CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR = 106,
161+
CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED = 107,
162+
CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE = 108,
163+
CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE = 109,
164+
CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED = 110,
165+
CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK = 111,
166+
CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED = 112,
167+
CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED = 113,
168+
CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED = 114,
169+
CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED = 115,
170+
CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED = 116,
171+
CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS = 117,
172+
CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING = 118,
173+
CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES = 119,
174+
CU_DEVICE_ATTRIBUTE_MAX,
52175
} CUdevice_attribute;
53176

54177
typedef enum CUfunction_attribute_enum {
@@ -66,15 +189,21 @@ typedef enum CUmemAttach_flags_enum {
66189
CU_MEM_ATTACH_SINGLE = 0x4,
67190
} CUmemAttach_flags;
68191

192+
typedef enum CUcomputeMode_enum {
193+
CU_COMPUTEMODE_DEFAULT = 0,
194+
CU_COMPUTEMODE_PROHIBITED = 2,
195+
CU_COMPUTEMODE_EXCLUSIVE_PROCESS = 3,
196+
} CUcompute_mode;
197+
69198
CUresult cuCtxGetDevice(CUdevice *);
70199
CUresult cuDeviceGet(CUdevice *, int);
71200
CUresult cuDeviceGetAttribute(int *, CUdevice_attribute, CUdevice);
72201
CUresult cuDeviceGetCount(int *);
73202
CUresult cuFuncGetAttribute(int *, CUfunction_attribute, CUfunction);
74203

75204
// Device info
76-
CUresult cuDeviceGetName(char *, int, CUdevice *);
77-
CUresult cuDeviceTotalMem(size_t *, CUdevice *);
205+
CUresult cuDeviceGetName(char *, int, CUdevice);
206+
CUresult cuDeviceTotalMem(size_t *, CUdevice);
78207
CUresult cuDriverGetVersion(int *);
79208

80209
CUresult cuGetErrorString(CUresult, const char **);

0 commit comments

Comments
 (0)