x86-simd-sort
sort-research-rs
x86-simd-sort | sort-research-rs | |
---|---|---|
7 | 47 | |
798 | 291 | |
1.0% | - | |
9.5 | 9.0 | |
3 days ago | 15 days ago | |
C++ | Rust | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
x86-simd-sort
- SIMD based custom object and key-value pair sorting in C++
- intel/x86-simd-sort - Release v2.0 - adds a host of new sorting algorithms and supported API's
-
10~17x faster than what? A performance analysis of Intel' x86-SIMD-sort(AVX-512)
Of course! Appreciate all the time you put in. I added a few more optimizations to qsort after that (see https://github.com/intel/x86-simd-sort/pull/33), just wanted to know if your analysis took that into account.
- x86-SIMD-Sort
- GitHub - intel/x86-simd-sort: C++ header file library for high performance SIMD based sorting algorithms for primitive datatypes
-
Intel Publishes Blazing Fast AVX-512 Sorting Library, Numpy Switching To It For 10~17x Faster Sorts
Alright. The benchmark code itself isn't mine, it's Intel's.
-
Can C++ be the language of choice for new algo development?
I guess people still use C++ for new algorithms https://github.com/intel/x86-simd-sort
sort-research-rs
-
The Rust Calling Convention We Deserve
If you want a particularity cursed example, I've recently called Go code from Rust via C in the middle, including passing a Rust closure with state into the Go code as callback into a Go stdlib function, including panic unwinding from inside the Rust closure https://github.com/Voultapher/sort-research-rs/commit/df6c91....
- Driftsort: An efficient, generic and robust stable sort implementation
-
Out-of-bounds read and write in the glibc's qsort()
See also https://github.com/Voultapher/sort-research-rs/blob/main/wri.... Discussion at https://news.ycombinator.com/item?id=37781612
- Fast, small, robust: pick three. Introducing a novel branchless partition impl
- A performance analysis of Intel's x86-simd-sort
- sort-research-rs/writeup/intel_avx512/text.md at main ยท Voultapher/sort-research-rs
- Fast, small, robust: pick three. Introducing a novel branchless partition implementation.
-
Branchless Lomuto Partitioning
There was a recent post by Voultapher from the sort-research-rs project on Branchless Lomuto Partitioning
https://github.com/Voultapher/sort-research-rs/blob/main/wri...
Discussion here:
https://news.ycombinator.com/item?id=38528452
This post by orlp (creator of Pattern-defeating Quicksort and Glidesort) was linked to in the above post, and I found both to be interesting.
- A novel branchless partition implementation
- Fast, small, robust: Introducing a novel branchless partition implementation
What are some alternatives?
glidesort - A Rust implementation of Glidesort, my stable adaptive quicksort/mergesort hybrid sorting algorithm.
tock - A secure embedded operating system for microcontrollers
highway - Performance-portable, length-agnostic SIMD with runtime dispatch
ruduino - Reusable components for the Arduino Uno.
x86-simd-sort - C++ header file library for high performance SIMD based sorting algorithms for primitive datatypes
fluxsort - A fast branchless stable quicksort / mergesort hybrid that is highly adaptive.
quadsort - Quadsort is a branchless stable adaptive mergesort faster than quicksort.
rotate - A collection of array rotation algorithms.
book - The Rust on ESP Book
forma - An efficient vector-graphics renderer
mountain-sort - The best algorithm to sort mountains