stdgpu/platform.h Source File — stdgpu Latest documentation (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#ifndef STDGPU_PLATFORM_H
17#define STDGPU_PLATFORM_H
18
28#include <stdgpu/config.h>
29
31
32#define STDGPU_DETAIL_BACKEND_HEADER(header_file) \
33 <stdgpu/STDGPU_BACKEND_DIRECTORY/header_file>
34
36
37#include STDGPU_DETAIL_BACKEND_HEADER(platform.h)
38
39#include <stdgpu/compiler.h>
40#include <stdgpu/impl/preprocessor.h>
41
42namespace stdgpu
43{
44
49#define STDGPU_BACKEND_CUDA 100
54#define STDGPU_BACKEND_OPENMP 101
59#define STDGPU_BACKEND_HIP 102
60
66
67#ifdef STDGPU_RUN_DOXYGEN
68 #define STDGPU_BACKEND
69#endif
70
71
77#define STDGPU_HOST_DEVICE STDGPU_DETAIL_CAT3(STDGPU_, STDGPU_BACKEND_MACRO_NAMESPACE, _HOST_DEVICE)
78
84#define STDGPU_DEVICE_ONLY STDGPU_DETAIL_CAT3(STDGPU_, STDGPU_BACKEND_MACRO_NAMESPACE, _DEVICE_ONLY)
85
91#define STDGPU_CONSTANT STDGPU_DETAIL_CAT3(STDGPU_, STDGPU_BACKEND_MACRO_NAMESPACE, _CONSTANT)
92
97#define STDGPU_CODE_HOST 1000
102#define STDGPU_CODE_DEVICE 1001
103
104namespace detail
105{
106
108#define STDGPU_DETAIL_IS_DEVICE_CODE STDGPU_DETAIL_CAT3(STDGPU_, STDGPU_BACKEND_MACRO_NAMESPACE, _IS_DEVICE_CODE)
110
111}
112
118#if STDGPU_DETAIL_IS_DEVICE_CODE
119 #define STDGPU_CODE STDGPU_CODE_DEVICE
120#else
121 #define STDGPU_CODE STDGPU_CODE_HOST
122#endif
123
124namespace detail
125{
126
128#define STDGPU_DETAIL_IS_DEVICE_COMPILED \
129 STDGPU_DETAIL_CAT3(STDGPU_, STDGPU_BACKEND_MACRO_NAMESPACE, _IS_DEVICE_COMPILED)
131
132}
133
134}
135
136#endif