PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
simd_config.h File Reference

SIMD configuration and CPU feature detection. More...

#include <cstddef>
#include <cstdint>
Include dependency graph for simd_config.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  kcenon
 
namespace  kcenon::pacs
 
namespace  kcenon::pacs::encoding
 
namespace  kcenon::pacs::encoding::simd
 
namespace  kcenon::pacs::encoding::simd::detail
 

Enumerations

enum class  kcenon::pacs::encoding::simd::simd_feature : uint32_t {
  kcenon::pacs::encoding::simd::none = 0 , kcenon::pacs::encoding::simd::sse2 = 1 << 0 , kcenon::pacs::encoding::simd::ssse3 = 1 << 1 , kcenon::pacs::encoding::simd::sse41 = 1 << 2 ,
  kcenon::pacs::encoding::simd::avx = 1 << 3 , kcenon::pacs::encoding::simd::avx2 = 1 << 4 , kcenon::pacs::encoding::simd::avx512f = 1 << 5 , kcenon::pacs::encoding::simd::neon = 1 << 6
}
 SIMD feature flags for runtime detection. More...
 

Functions

constexpr simd_feature kcenon::pacs::encoding::simd::operator| (simd_feature a, simd_feature b) noexcept
 Bitwise OR for simd_feature flags.
 
constexpr simd_feature kcenon::pacs::encoding::simd::operator& (simd_feature a, simd_feature b) noexcept
 Bitwise AND for simd_feature flags.
 
constexpr bool kcenon::pacs::encoding::simd::has_feature (simd_feature features, simd_feature check) noexcept
 Check if a specific feature is set.
 
simd_feature kcenon::pacs::encoding::simd::detect_features () noexcept
 Detect available SIMD features at runtime.
 
simd_feature kcenon::pacs::encoding::simd::get_features () noexcept
 Get cached SIMD features (singleton pattern)
 
bool kcenon::pacs::encoding::simd::has_sse2 () noexcept
 Check if SSE2 is available.
 
bool kcenon::pacs::encoding::simd::has_ssse3 () noexcept
 Check if SSSE3 is available.
 
bool kcenon::pacs::encoding::simd::has_sse41 () noexcept
 Check if SSE4.1 is available.
 
bool kcenon::pacs::encoding::simd::has_avx () noexcept
 Check if AVX is available.
 
bool kcenon::pacs::encoding::simd::has_avx2 () noexcept
 Check if AVX2 is available.
 
bool kcenon::pacs::encoding::simd::has_avx512f () noexcept
 Check if AVX-512F is available.
 
bool kcenon::pacs::encoding::simd::has_neon () noexcept
 Check if NEON is available.
 
size_t kcenon::pacs::encoding::simd::optimal_vector_width () noexcept
 Get optimal vector width in bytes for current CPU.
 

Detailed Description

SIMD configuration and CPU feature detection.

Provides compile-time and runtime detection of SIMD capabilities for x86 (SSE2/AVX2/AVX-512) and ARM (NEON) platforms.

See also
DICOM PS3.5 - Performance optimization for pixel data processing
Author
kcenon
Since
1.0.0

Definition in file simd_config.h.