Go to the documentation of this file.
48 #ifndef __DAAL_KERNEL_DEFINES_H__
49 #define __DAAL_KERNEL_DEFINES_H__
56 #define DAAL_KERNELS_ALL
58 #ifdef DAAL_KERNELS_ALL
59 #define DAAL_KERNEL_SSSE3
60 #define DAAL_KERNEL_SSE42
61 #define DAAL_KERNEL_AVX
62 #define DAAL_KERNEL_AVX2
63 #define DAAL_KERNEL_AVX512_mic
64 #define DAAL_KERNEL_AVX512
67 #define DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, cpuType, ...) ContainerTemplate<__VA_ARGS__, cpuType>
68 #define DAAL_KERNEL_CONTAINER_CASE(ContainerTemplate, cpuType,...)\
69 case cpuType: _cntr = (new DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, cpuType, __VA_ARGS__)(daalEnv)); break;
71 #ifdef DAAL_KERNEL_SSSE3
72 #define DAAL_KERNEL_SSSE3_ONLY(something) , something
73 #define DAAL_KERNEL_SSSE3_ONLY_CODE(...) __VA_ARGS__
74 #define DAAL_KERNEL_SSSE3_CONTAINER(ContainerTemplate, ...) , DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, ssse3, __VA_ARGS__)
75 #define DAAL_KERNEL_SSSE3_CONTAINER_CASE(ContainerTemplate, ...) DAAL_KERNEL_CONTAINER_CASE(ContainerTemplate, ssse3, __VA_ARGS__)
77 #define DAAL_KERNEL_SSSE3_ONLY(something)
78 #define DAAL_KERNEL_SSSE3_ONLY_CODE(...)
79 #define DAAL_KERNEL_SSSE3_CONTAINER(ContainerTemplate, ...)
80 #define DAAL_KERNEL_SSSE3_CONTAINER_CASE(ContainerTemplate, ...)
83 #ifdef DAAL_KERNEL_SSE42
84 #define DAAL_KERNEL_SSE42_ONLY(something) , something
85 #define DAAL_KERNEL_SSE42_ONLY_CODE(...) __VA_ARGS__
86 #define DAAL_KERNEL_SSE42_CONTAINER(ContainerTemplate, ...) , DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, sse42, __VA_ARGS__)
87 #define DAAL_KERNEL_SSE42_CONTAINER_CASE(ContainerTemplate, ...) DAAL_KERNEL_CONTAINER_CASE(ContainerTemplate, sse42, __VA_ARGS__)
89 #define DAAL_KERNEL_SSE42_ONLY(something)
90 #define DAAL_KERNEL_SSE42_ONLY_CODE(...)
91 #define DAAL_KERNEL_SSE42_CONTAINER(ContainerTemplate, ...)
92 #define DAAL_KERNEL_SSE42_CONTAINER_CASE(ContainerTemplate, ...)
95 #ifdef DAAL_KERNEL_AVX
96 #define DAAL_KERNEL_AVX_ONLY(something) , something
97 #define DAAL_KERNEL_AVX_ONLY_CODE(...) __VA_ARGS__
98 #define DAAL_KERNEL_AVX_CONTAINER(ContainerTemplate, ...) , DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, avx, __VA_ARGS__)
99 #define DAAL_KERNEL_AVX_CONTAINER_CASE(ContainerTemplate, ...) DAAL_KERNEL_CONTAINER_CASE(ContainerTemplate, avx, __VA_ARGS__)
101 #define DAAL_KERNEL_AVX_ONLY(something)
102 #define DAAL_KERNEL_AVX_ONLY_CODE(...)
103 #define DAAL_KERNEL_AVX_CONTAINER(ContainerTemplate, ...)
104 #define DAAL_KERNEL_AVX_CONTAINER_CASE(ContainerTemplate, ...)
107 #ifdef DAAL_KERNEL_AVX2
108 #define DAAL_KERNEL_AVX2_ONLY(something) , something
109 #define DAAL_KERNEL_AVX2_ONLY_CODE(...) __VA_ARGS__
110 #define DAAL_KERNEL_AVX2_CONTAINER(ContainerTemplate, ...) , DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, avx2, __VA_ARGS__)
111 #define DAAL_KERNEL_AVX2_CONTAINER_CASE(ContainerTemplate, ...) DAAL_KERNEL_CONTAINER_CASE(ContainerTemplate, avx2, __VA_ARGS__)
113 #define DAAL_KERNEL_AVX2_ONLY(something)
114 #define DAAL_KERNEL_AVX2_ONLY_CODE(...)
115 #define DAAL_KERNEL_AVX2_CONTAINER(ContainerTemplate, ...)
116 #define DAAL_KERNEL_AVX2_CONTAINER_CASE(ContainerTemplate, ...)
119 #ifdef DAAL_KERNEL_AVX512_mic
120 #define DAAL_KERNEL_AVX512_mic_ONLY(something) , something
121 #define DAAL_KERNEL_AVX512_mic_ONLY_CODE(...) __VA_ARGS__
122 #define DAAL_KERNEL_AVX512_mic_CONTAINER(ContainerTemplate, ...) , DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, avx512_mic, __VA_ARGS__)
123 #define DAAL_KERNEL_AVX512_mic_CONTAINER_CASE(ContainerTemplate, ...) DAAL_KERNEL_CONTAINER_CASE(ContainerTemplate, avx512_mic, __VA_ARGS__)
125 #define DAAL_KERNEL_AVX512_mic_ONLY(something)
126 #define DAAL_KERNEL_AVX512_mic_ONLY_CODE(...)
127 #define DAAL_KERNEL_AVX512_mic_CONTAINER(ContainerTemplate, ...)
128 #define DAAL_KERNEL_AVX512_mic_CONTAINER_CASE(ContainerTemplate, ...)
131 #ifdef DAAL_KERNEL_AVX512
132 #define DAAL_KERNEL_AVX512_ONLY(something) , something
133 #define DAAL_KERNEL_AVX512_ONLY_CODE(...) __VA_ARGS__
134 #define DAAL_KERNEL_AVX512_CONTAINER(ContainerTemplate, ...) , DAAL_KERNEL_CONTAINER_TEMPL(ContainerTemplate, avx512, __VA_ARGS__)
135 #define DAAL_KERNEL_AVX512_CONTAINER_CASE(ContainerTemplate, ...) DAAL_KERNEL_CONTAINER_CASE(ContainerTemplate, avx512, __VA_ARGS__)
137 #define DAAL_KERNEL_AVX512_ONLY(something)
138 #define DAAL_KERNEL_AVX512_ONLY_CODE(...)
139 #define DAAL_KERNEL_AVX512_CONTAINER(ContainerTemplate, ...)
140 #define DAAL_KERNEL_AVX512_CONTAINER_CASE(ContainerTemplate, ...)