1 /* Minimal declarations for CUDA support. Testing purposes only. */ 2 3 #include <stddef.h> 4 5 #define __constant__ __attribute__((constant)) 6 #define __device__ __attribute__((device)) 7 #define __global__ __attribute__((global)) 8 #define __host__ __attribute__((host)) 9 #define __shared__ __attribute__((shared)) 10 #define __launch_bounds__(...) __attribute__((launch_bounds(__VA_ARGS__))) 11 12 struct dim3 { 13 unsigned x, y, z; 14 __host__ __device__ dim3(unsigned x, unsigned y = 1, unsigned z = 1) : x(x), y(y), z(z) {} 15 }; 16 17 typedef struct cudaStream *cudaStream_t; 18 typedef enum cudaError {} cudaError_t; 19 #ifdef __HIP__ 20 int hipConfigureCall(dim3 gridSize, dim3 blockSize, size_t sharedSize = 0, 21 cudaStream_t stream = 0); 22 #else 23 extern "C" int cudaConfigureCall(dim3 gridSize, dim3 blockSize, 24 size_t sharedSize = 0, 25 cudaStream_t stream = 0); 26 extern "C" int __cudaPushCallConfiguration(dim3 gridSize, dim3 blockSize, 27 size_t sharedSize = 0, 28 cudaStream_t stream = 0); 29 extern "C" cudaError_t cudaLaunchKernel(const void *func, dim3 gridDim, 30 dim3 blockDim, void **args, 31 size_t sharedMem, cudaStream_t stream); 32 #endif 33 34 extern "C" __device__ int printf(const char*, ...); 35