All Projects → SungJJinKang → std_find_simd

SungJJinKang / std_find_simd

Licence: MIT license
std::find simd version

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to std find simd

Boost.simd
Boost SIMD
Stars: ✭ 238 (+1152.63%)
Mutual labels:  portable, simd, avx2, vectorization, avx512
Vc
SIMD Vector Classes for C++
Stars: ✭ 985 (+5084.21%)
Mutual labels:  portable, simd, avx2, vectorization, avx512
ultra-sort
DSL for SIMD Sorting on AVX2 & AVX512
Stars: ✭ 29 (+52.63%)
Mutual labels:  simd, avx2, vectorization, avx512, simd-instructions
Umesimd
UME::SIMD A library for explicit simd vectorization.
Stars: ✭ 66 (+247.37%)
Mutual labels:  simd, avx2, vectorization, avx512
Simde
Implementations of SIMD instruction sets for systems which don't natively support them.
Stars: ✭ 1,012 (+5226.32%)
Mutual labels:  simd, avx2, vectorization, avx512
positional-popcount
Fast C functions for the computing the positional popcount (pospopcnt).
Stars: ✭ 47 (+147.37%)
Mutual labels:  simd, avx2, avx512, simd-instructions
Nsimd
Agenium Scale vectorization library for CPUs and GPUs
Stars: ✭ 138 (+626.32%)
Mutual labels:  simd, avx2, avx512
Libxsmm
Library for specialized dense and sparse matrix operations, and deep learning primitives.
Stars: ✭ 518 (+2626.32%)
Mutual labels:  simd, avx2, avx512
Xsimd
C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, NEON, AVX512)
Stars: ✭ 964 (+4973.68%)
Mutual labels:  simd, vectorization, avx512
Sleef
SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT
Stars: ✭ 353 (+1757.89%)
Mutual labels:  simd, vectorization, avx512
Unisimd Assembler
SIMD macro assembler unified for ARM, MIPS, PPC and x86
Stars: ✭ 63 (+231.58%)
Mutual labels:  simd, avx2, avx512
ternary-logic
Support for ternary logic in SSE, XOP, AVX2 and x86 programs
Stars: ✭ 21 (+10.53%)
Mutual labels:  simd, avx2, avx512
Libsimdpp
Portable header-only C++ low level SIMD library
Stars: ✭ 914 (+4710.53%)
Mutual labels:  simd, avx2, avx512
Quadray Engine
Realtime raytracer using SIMD on ARM, MIPS, PPC and x86
Stars: ✭ 13 (-31.58%)
Mutual labels:  simd, avx2, avx512
simd-byte-lookup
SIMDized check which bytes are in a set
Stars: ✭ 23 (+21.05%)
Mutual labels:  simd, avx2, avx512
Simd
C++ image processing and machine learning library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM.
Stars: ✭ 1,263 (+6547.37%)
Mutual labels:  simd, avx2, avx512
Guided Missile Simulation
Guided Missile, Radar and Infrared EOS Simulation Framework written in Fortran.
Stars: ✭ 33 (+73.68%)
Mutual labels:  simd, avx2, vectorization
Corrfunc
⚡️⚡️⚡️Blazing fast correlation functions on the CPU.
Stars: ✭ 114 (+500%)
Mutual labels:  simd, avx2, avx512
Highway
Performance-portable, length-agnostic SIMD with runtime dispatch
Stars: ✭ 301 (+1484.21%)
Mutual labels:  simd, avx2, avx512
Md5 Simd
Accelerate aggregated MD5 hashing performance up to 8x for AVX512 and 4x for AVX2. Useful for server applications that need to compute many MD5 sums in parallel.
Stars: ✭ 71 (+273.68%)
Mutual labels:  simd, avx2, avx512

std::find simd version

std::find doesn't use simd intrinsics. ( check https://gms.tf/stdfind-and-memchr-optimizations.html )

So i thought simd can make std::find faster for some types.

Feature

  • avx2 intrinsic is used
  • You don't need worry about alignment problem. ( this library handle it )

Requirement

  • iterator's value type should be scalar type and type size of it should be 1 or 2 or 4 or 8
  • iterator should be random access iterator
  • require avx2 option
  • require c++ 11

Usage

std::vector<short> a;
a.reserve(1001);
for (unsigned short i = 0; i <= 1000; i++)
{
  a.push_back(i);
}

for (short i = 0; i < 1000; i++)
{
  fast_find_simd::find_simd(a.begin(), a.end(), (short)i);
}

Performance Comparison

tested on release mode, msvc, x64, windows
20211128031529

To develop

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].