Class platform¶
class platform<c> simd¶
Trait structure describing the SIMD capabilities of a CPU instruction set.
Specializations expose a set of compile-time constants such as vector sizes, alignment requirements, register counts and feature flags used throughout KFR to select the appropriate code paths.
| c | The CPU instruction set to describe (defaults to cpu_t::native ). |
Fully qualified name: kfr::platform<c>
Declared at simd/platform.hpp:219
Class platform¶
struct platform<cpu_t::common> simd¶
template <>
struct platform<cpu_t::common> { … } Platform traits for the common (baseline) x86 instruction set.
Defines the minimum SIMD capabilities shared by all x86 targets.
variable native_cache_alignment ¶
constexpr static size_t native_cache_alignment = KFR_CACHE_LINE_SIZE Fully qualified name: kfr::platform<cpu_t::common>::native_cache_alignment
Declared at simd/platform.hpp:230
variable native_cache_alignment_mask ¶
constexpr static size_t native_cache_alignment_mask = native_cache_alignment - 1 Fully qualified name: kfr::platform<cpu_t::common>::native_cache_alignment_mask
Declared at simd/platform.hpp:231
variable maximum_vector_alignment ¶
constexpr static size_t maximum_vector_alignment = 64 Fully qualified name: kfr::platform<cpu_t::common>::maximum_vector_alignment
Declared at simd/platform.hpp:232
variable maximum_vector_alignment_mask ¶
constexpr static size_t maximum_vector_alignment_mask = maximum_vector_alignment - 1 Fully qualified name: kfr::platform<cpu_t::common>::maximum_vector_alignment_mask
Declared at simd/platform.hpp:233
variable simd_register_count ¶
constexpr static size_t simd_register_count = 1 Fully qualified name: kfr::platform<cpu_t::common>::simd_register_count
Declared at simd/platform.hpp:235
variable common_float_vector_size ¶
constexpr static size_t common_float_vector_size = 16 Fully qualified name: kfr::platform<cpu_t::common>::common_float_vector_size
Declared at simd/platform.hpp:237
variable common_int_vector_size ¶
constexpr static size_t common_int_vector_size = 16 Fully qualified name: kfr::platform<cpu_t::common>::common_int_vector_size
Declared at simd/platform.hpp:238
variable minimum_float_vector_size ¶
constexpr static size_t minimum_float_vector_size = 16 Fully qualified name: kfr::platform<cpu_t::common>::minimum_float_vector_size
Declared at simd/platform.hpp:240
variable minimum_int_vector_size ¶
constexpr static size_t minimum_int_vector_size = 16 Fully qualified name: kfr::platform<cpu_t::common>::minimum_int_vector_size
Declared at simd/platform.hpp:241
variable native_float_vector_size ¶
constexpr static size_t native_float_vector_size = 16 Fully qualified name: kfr::platform<cpu_t::common>::native_float_vector_size
Declared at simd/platform.hpp:243
variable native_int_vector_size ¶
constexpr static size_t native_int_vector_size = 16 Fully qualified name: kfr::platform<cpu_t::common>::native_int_vector_size
Declared at simd/platform.hpp:244
variable native_vector_alignment ¶
constexpr static size_t native_vector_alignment = 16 Fully qualified name: kfr::platform<cpu_t::common>::native_vector_alignment
Declared at simd/platform.hpp:246
variable native_vector_alignment_mask ¶
constexpr static size_t native_vector_alignment_mask = native_vector_alignment - 1 Fully qualified name: kfr::platform<cpu_t::common>::native_vector_alignment_mask
Declared at simd/platform.hpp:247
variable fast_unaligned ¶
constexpr static bool fast_unaligned = false Fully qualified name: kfr::platform<cpu_t::common>::fast_unaligned
Declared at simd/platform.hpp:249
variable mask_registers ¶
constexpr static bool mask_registers = false Fully qualified name: kfr::platform<cpu_t::common>::mask_registers
Declared at simd/platform.hpp:251
Fully qualified name: kfr::platform<cpu_t::common>
Declared at simd/platform.hpp:228
Class platform¶
struct platform<cpu_t::sse2> simd¶
Platform traits for SSE2. Inherits the common baseline and reports the SSE2 register count.
variable simd_register_count ¶
constexpr static size_t simd_register_count = bitness_const(8, 16) Fully qualified name: kfr::platform<cpu_t::sse2>::simd_register_count
Declared at simd/platform.hpp:260
Fully qualified name: kfr::platform<cpu_t::sse2>
Declared at simd/platform.hpp:258
Class platform¶
struct platform<cpu_t::sse3> simd¶
Platform traits for SSE3. Equivalent to SSE2.
Fully qualified name: kfr::platform<cpu_t::sse3>
Declared at simd/platform.hpp:266
Class platform¶
struct platform<cpu_t::ssse3> simd¶
Platform traits for SSSE3. Equivalent to SSE3.
Fully qualified name: kfr::platform<cpu_t::ssse3>
Declared at simd/platform.hpp:273
Class platform¶
struct platform<cpu_t::sse41> simd¶
Platform traits for SSE4.1. Equivalent to SSSE3.
Fully qualified name: kfr::platform<cpu_t::sse41>
Declared at simd/platform.hpp:280
Class platform¶
struct platform<cpu_t::sse42> simd¶
Platform traits for SSE4.2. Equivalent to SSE4.1.
Fully qualified name: kfr::platform<cpu_t::sse42>
Declared at simd/platform.hpp:287
Class platform¶
struct platform<cpu_t::avx> simd¶
Platform traits for AVX. Doubles the native float vector size and alignment to 32 bytes and enables fast unaligned access.
variable native_float_vector_size ¶
constexpr static size_t native_float_vector_size = 32 Fully qualified name: kfr::platform<cpu_t::avx>::native_float_vector_size
Declared at simd/platform.hpp:297
variable native_vector_alignment ¶
constexpr static size_t native_vector_alignment = 32 Fully qualified name: kfr::platform<cpu_t::avx>::native_vector_alignment
Declared at simd/platform.hpp:299
variable native_vector_alignment_mask ¶
constexpr static size_t native_vector_alignment_mask = native_vector_alignment - 1 Fully qualified name: kfr::platform<cpu_t::avx>::native_vector_alignment_mask
Declared at simd/platform.hpp:300
variable fast_unaligned ¶
constexpr static bool fast_unaligned = true Fully qualified name: kfr::platform<cpu_t::avx>::fast_unaligned
Declared at simd/platform.hpp:302
Fully qualified name: kfr::platform<cpu_t::avx>
Declared at simd/platform.hpp:295
Class platform¶
struct platform<cpu_t::avx2> simd¶
Platform traits for AVX2. Extends AVX with 256-bit integer vectors.
variable native_int_vector_size ¶
constexpr static size_t native_int_vector_size = 32 Fully qualified name: kfr::platform<cpu_t::avx2>::native_int_vector_size
Declared at simd/platform.hpp:310
Fully qualified name: kfr::platform<cpu_t::avx2>
Declared at simd/platform.hpp:308
Class platform¶
struct platform<cpu_t::avx512> simd¶
Platform traits for AVX-512. Provides 512-bit vectors, 64-byte alignment, mask register support and an increased register count.
variable native_float_vector_size ¶
constexpr static size_t native_float_vector_size = 64 Fully qualified name: kfr::platform<cpu_t::avx512>::native_float_vector_size
Declared at simd/platform.hpp:319
variable native_int_vector_size ¶
constexpr static size_t native_int_vector_size = 64 Fully qualified name: kfr::platform<cpu_t::avx512>::native_int_vector_size
Declared at simd/platform.hpp:320
variable native_vector_alignment ¶
constexpr static size_t native_vector_alignment = 64 Fully qualified name: kfr::platform<cpu_t::avx512>::native_vector_alignment
Declared at simd/platform.hpp:322
variable native_vector_alignment_mask ¶
constexpr static size_t native_vector_alignment_mask = native_vector_alignment - 1 Fully qualified name: kfr::platform<cpu_t::avx512>::native_vector_alignment_mask
Declared at simd/platform.hpp:323
variable simd_register_count ¶
constexpr static size_t simd_register_count = bitness_const(8, 32) Fully qualified name: kfr::platform<cpu_t::avx512>::simd_register_count
Declared at simd/platform.hpp:325
variable mask_registers ¶
constexpr static bool mask_registers = true Fully qualified name: kfr::platform<cpu_t::avx512>::mask_registers
Declared at simd/platform.hpp:327
Fully qualified name: kfr::platform<cpu_t::avx512>
Declared at simd/platform.hpp:317