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, ...)