All Projects → PatwinchIR → ultra-sort

PatwinchIR / ultra-sort

Licence: MIT license
DSL for SIMD Sorting on AVX2 & AVX512

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to ultra-sort

std find simd
std::find simd version
Stars: ✭ 19 (-34.48%)
Mutual labels:  simd, avx2, vectorization, avx512, simd-instructions
Vc
SIMD Vector Classes for C++
Stars: ✭ 985 (+3296.55%)
Mutual labels:  parallel, simd, avx2, vectorization, avx512
Simde
Implementations of SIMD instruction sets for systems which don't natively support them.
Stars: ✭ 1,012 (+3389.66%)
Mutual labels:  simd, avx2, vectorization, avx512
sliceslice-rs
A fast implementation of single-pattern substring search using SIMD acceleration.
Stars: ✭ 66 (+127.59%)
Mutual labels:  simd, avx2, simd-programming, simd-instructions
Libxsmm
Library for specialized dense and sparse matrix operations, and deep learning primitives.
Stars: ✭ 518 (+1686.21%)
Mutual labels:  intel, simd, avx2, avx512
positional-popcount
Fast C functions for the computing the positional popcount (pospopcnt).
Stars: ✭ 47 (+62.07%)
Mutual labels:  simd, avx2, avx512, simd-instructions
Hybridizer Basic Samples
Examples of C# code compiled to GPU by hybridizer
Stars: ✭ 186 (+541.38%)
Mutual labels:  parallel, avx2, vectorization, avx512
Umesimd
UME::SIMD A library for explicit simd vectorization.
Stars: ✭ 66 (+127.59%)
Mutual labels:  simd, avx2, vectorization, avx512
Boost.simd
Boost SIMD
Stars: ✭ 238 (+720.69%)
Mutual labels:  simd, avx2, vectorization, 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 (+144.83%)
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 (+4255.17%)
Mutual labels:  simd, avx2, avx512
Corrfunc
⚡️⚡️⚡️Blazing fast correlation functions on the CPU.
Stars: ✭ 114 (+293.1%)
Mutual labels:  simd, avx2, avx512
Xsimd
C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, NEON, AVX512)
Stars: ✭ 964 (+3224.14%)
Mutual labels:  simd, vectorization, avx512
Nsimd
Agenium Scale vectorization library for CPUs and GPUs
Stars: ✭ 138 (+375.86%)
Mutual labels:  simd, avx2, avx512
simd-byte-lookup
SIMDized check which bytes are in a set
Stars: ✭ 23 (-20.69%)
Mutual labels:  simd, avx2, avx512
Base64simd
Base64 coding and decoding with SIMD instructions (SSE/AVX2/AVX512F/AVX512BW/AVX512VBMI/ARM Neon)
Stars: ✭ 115 (+296.55%)
Mutual labels:  simd, avx2, avx512
Unisimd Assembler
SIMD macro assembler unified for ARM, MIPS, PPC and x86
Stars: ✭ 63 (+117.24%)
Mutual labels:  simd, avx2, avx512
Libsimdpp
Portable header-only C++ low level SIMD library
Stars: ✭ 914 (+3051.72%)
Mutual labels:  simd, avx2, avx512
Sorty
Fast Concurrent / Parallel Sorting in Go
Stars: ✭ 74 (+155.17%)
Mutual labels:  sorting, parallel, sort
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-37.93%)
Mutual labels:  fast, parallel, simd-parallelism

Ultra-Sort License: MIT

Extremely Parallelized SIMD Sorting Algorithm. (All references are in the report.)

Speedup achieved sorting 2^20 elements

Compared with std::stable_sort, std::sort, ips4o::sort, pdqsort.

Usage:

  1. Compile from CMakelist.txt
  2. Due to integration with OpenMP, run the executable after build using the command below:
export OMP_NUM_THREADS=1; ./ultrasort

By default, this will run all unit tests set up using GTest. To use this library in other projects simply include the header files:

#include "avx512/simd_sort.h"

avx512::SIMD_Sort(...); // avx256::... for AVX2 version.

The number of elements to sort is required to be a power of 2. More examples can be found at test/avx512/simd_sort_test.cpp.

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].