VeloGraphX
High-performance dynamic graph analytics in C++20
Loading...
Searching...
No Matches
velographx::kernels Namespace Reference

Classes

struct  CpuFeatures
 

Typedefs

using VertexId = std::uint32_t
 

Enumerations

enum class  IntersectionKernel {
  scalar_merge , galloping , bitmap , avx2 ,
  avx512 , neon
}
 

Functions

CpuFeatures detect_cpu_features ()
 
std::string best_isa ()
 
std::size_t scalar_intersection (std::span< const VertexId > a, std::span< const VertexId > b)
 
std::size_t galloping_intersection (std::span< const VertexId > smaller, std::span< const VertexId > larger)
 
std::size_t bitmap_intersection (std::span< const VertexId > a, std::span< const VertexId > b)
 
std::size_t avx2_intersection (std::span< const VertexId > a, std::span< const VertexId > b)
 
std::size_t avx512_intersection (std::span< const VertexId > a, std::span< const VertexId > b)
 
std::size_t neon_intersection (std::span< const VertexId > a, std::span< const VertexId > b)
 
bool bitmap_is_efficient (std::span< const VertexId > a, std::span< const VertexId > b)
 
IntersectionKernel select_intersection (std::span< const VertexId > a, std::span< const VertexId > b)
 
std::size_t adaptive_intersection (std::span< const VertexId > a, std::span< const VertexId > b)
 

Typedef Documentation

◆ VertexId

using velographx::kernels::VertexId = typedef std::uint32_t

Definition at line 22 of file intersection.hpp.

Enumeration Type Documentation

◆ IntersectionKernel

Enumerator
scalar_merge 
galloping 
bitmap 
avx2 
avx512 
neon 

Definition at line 24 of file intersection.hpp.

Function Documentation

◆ adaptive_intersection()

std::size_t velographx::kernels::adaptive_intersection ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline

◆ avx2_intersection()

std::size_t velographx::kernels::avx2_intersection ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline

Definition at line 118 of file intersection.hpp.

References avx2, detect_cpu_features(), and scalar_intersection().

Referenced by adaptive_intersection().

◆ avx512_intersection()

std::size_t velographx::kernels::avx512_intersection ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline

Definition at line 126 of file intersection.hpp.

References detect_cpu_features(), and scalar_intersection().

Referenced by adaptive_intersection().

◆ best_isa()

std::string velographx::kernels::best_isa ( )
inline

Definition at line 15 of file cpu_features.hpp.

References detect_cpu_features().

◆ bitmap_intersection()

std::size_t velographx::kernels::bitmap_intersection ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline

Definition at line 52 of file intersection.hpp.

References bitmap.

Referenced by adaptive_intersection().

◆ bitmap_is_efficient()

bool velographx::kernels::bitmap_is_efficient ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline

Definition at line 160 of file intersection.hpp.

Referenced by select_intersection().

◆ detect_cpu_features()

◆ galloping_intersection()

std::size_t velographx::kernels::galloping_intersection ( std::span< const VertexId smaller,
std::span< const VertexId larger 
)
inline

Definition at line 43 of file intersection.hpp.

Referenced by adaptive_intersection().

◆ neon_intersection()

std::size_t velographx::kernels::neon_intersection ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline

Definition at line 134 of file intersection.hpp.

References scalar_intersection().

Referenced by adaptive_intersection().

◆ scalar_intersection()

std::size_t velographx::kernels::scalar_intersection ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline

◆ select_intersection()

IntersectionKernel velographx::kernels::select_intersection ( std::span< const VertexId a,
std::span< const VertexId b 
)
inline