Tensorium
Loading...
Searching...
No Matches
SIMD.hpp File Reference
#include <immintrin.h>
#include <cstddef>
#include <stdexcept>
#include <vector>
#include <cpuid.h>
#include <memory>
#include <complex>
#include <iostream>
Include dependency graph for SIMD.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sse_t
 
struct  avx2_t
 
struct  avx512_t
 
struct  aligned_reg< T, Align >
 
struct  tensorium::avx2_t
 
struct  simd::SimdTraits< float, sse_t >
 
struct  simd::SimdTraits< double, sse_t >
 
struct  simd::SimdTraits< size_t, sse_t >
 
struct  simd::SimdTraits< float, avx2_t >
 
struct  simd::SimdTraits< double, avx2_t >
 
struct  simd::SimdTraits< size_t, avx2_t >
 
struct  simd::SimdTraits< std::complex< float >, sse_t >
 
struct  simd::SimdTraits< std::complex< double >, sse_t >
 
struct  simd::SimdTraits< std::complex< float >, avx2_t >
 
struct  simd::SimdTraits< std::complex< double >, avx2_t >
 

Namespaces

namespace  tensorium
 
namespace  detail
 
namespace  simd
 

Macros

#define ALIGN   16
 
#define SIMD_WIDTH   4
 
#define UNROLL   64
 

Typedefs

using DefaultISA = sse_t
 

Functions

bool supports_avx512 ()
 
bool supports_avx2 ()
 
bool supports_sse ()
 
template<typename F >
void dispatch_simd (F &&f)
 
__m256 extractf32x8_ps_fallback (__m512 v, int imm8)
 
 detail::__attribute__ ((always_inline, hot, flatten)) inline float reduce_sum(__m256 acc)
 

Macro Definition Documentation

◆ ALIGN

#define ALIGN   16

◆ SIMD_WIDTH

#define SIMD_WIDTH   4

◆ UNROLL

#define UNROLL   64

Typedef Documentation

◆ DefaultISA

using DefaultISA = sse_t

Function Documentation

◆ dispatch_simd()

template<typename F >
void dispatch_simd ( F && f)

References supports_avx2(), supports_avx512(), and supports_sse().

Here is the call graph for this function:

◆ extractf32x8_ps_fallback()

__m256 extractf32x8_ps_fallback ( __m512 v,
int imm8 )
inline

◆ supports_avx2()

bool supports_avx2 ( )
inline

Referenced by dispatch_simd().

Here is the caller graph for this function:

◆ supports_avx512()

bool supports_avx512 ( )
inline

Referenced by dispatch_simd().

Here is the caller graph for this function:

◆ supports_sse()

bool supports_sse ( )
inline

Referenced by dispatch_simd().

Here is the caller graph for this function: