OmniSciDB  c1a53651b2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ExtensionFunctionsTesting.hpp
Go to the documentation of this file.
1 /*
2 
3  Compile-time UDFs. Used in RBC: rbc/tests/test_omnisci_device_selection.py
4 
5  */
6 
7 #define CPU_DEVICE_CODE 0x637075 // 'cpu' in hex
8 #define GPU_DEVICE_CODE 0x677075 // 'gpu' in hex
9 
11 int32_t ct_device_selection_udf_any(int32_t input) {
12 #ifdef __CUDACC__
13  return GPU_DEVICE_CODE;
14 #else
15  return CPU_DEVICE_CODE;
16 #endif
17 }
18 
19 #ifndef __CUDACC__
20 
22 int32_t ct_device_selection_udf_cpu__cpu_(int32_t input) {
23  return CPU_DEVICE_CODE;
24 }
25 
26 #endif
27 
29 int32_t ct_device_selection_udf_gpu__gpu_(int32_t input) {
30  return GPU_DEVICE_CODE;
31 }
32 
33 #ifndef __CUDACC__
34 
36 int32_t ct_device_selection_udf_both__cpu_(int32_t input) {
37  return CPU_DEVICE_CODE;
38 }
39 
40 #endif
41 
43 int32_t ct_device_selection_udf_both__gpu_(int32_t input) {
44  return GPU_DEVICE_CODE;
45 }
46 
47 #undef CPU_DEVICE_CODE
48 #undef GPU_DEVICE_CODE
EXTENSION_NOINLINE int32_t ct_device_selection_udf_both__gpu_(int32_t input)
#define EXTENSION_NOINLINE
Definition: heavydbTypes.h:52
#define CPU_DEVICE_CODE
EXTENSION_NOINLINE_HOST int32_t ct_device_selection_udf_cpu__cpu_(int32_t input)
#define EXTENSION_NOINLINE_HOST
Definition: heavydbTypes.h:49
EXTENSION_NOINLINE int32_t ct_device_selection_udf_gpu__gpu_(int32_t input)
#define GPU_DEVICE_CODE
EXTENSION_NOINLINE int32_t ct_device_selection_udf_any(int32_t input)
EXTENSION_NOINLINE_HOST int32_t ct_device_selection_udf_both__cpu_(int32_t input)