#include <metal_atomic>
#include <metal_simdgroup>
Go to the source code of this file.
|
static constant constexpr const uint8_t | simd_size = 32 |
|
◆ DEFINE_SIMD_REDUCE
#define DEFINE_SIMD_REDUCE |
( |
| ) |
|
Value: template <typename T, metal::enable_if_t<sizeof(T) < 8, bool> = true> \
T simd_reduce(T val) { \
return simd_reduce_impl(val); \
} \
\
template <typename T, metal::enable_if_t<sizeof(T) == 8, bool> = true> \
T simd_reduce(T val) { \
for (
short i =
simd_size / 2; i > 0; i /= 2) { \
} \
return val; \
}
◆ simd_size
constant constexpr const uint8_t simd_size = 32 |
|
staticconstexpr |