avx_qsort
Quick sort code using AVX2 instructions (by vkrasnov)
version2
Vector class library, latest version (by vectorclass)
avx_qsort | version2 | |
---|---|---|
2 | 6 | |
67 | 1,227 | |
- | 2.2% | |
10.0 | 5.8 | |
almost 7 years ago | 3 months ago | |
Assembly | C++ | |
- | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
avx_qsort
Posts with mentions or reviews of avx_qsort.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-12-17.
-
Sorting with SIMD
The original (AFAICT) work on SIMD quick sort, also mentioned in the google post also implemented pointer sort by loading a pointed key using gather instructions and the method can be used for an array of structs. https://github.com/vkrasnov/avx_qsort/blob/master/qsort_AVX2...
-
Significantly faster quicksort using SIMD
I'm the co-author of one of the papers referenced in the blogpost, (Fast Quicksort Implementation Using AVX Instructions), we did write the AVX512 code back in 2015, just had nowhere to run it, at least publicly. The paper also very explicitly says that the lookup tables can be instead replaced by the AVX512 compress instructions. The code for that paper is available in https://github.com/vkrasnov/avx_qsort
version2
Posts with mentions or reviews of version2.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-01-08.
-
SIMD intrinsics and the possibility of a standard library solution
Vector class library - 938 GH stars
- Checking for the absence of a string, naive AVX-512 edition
-
-๐- 2022 Day 4 Solutions -๐-
Most of the time is spent parsing, but this problem lends itself nicely to a SIMD formulation, which using vectorclass doesn't even require detailed knowledge of the intrinsics. Hot runs take ~14 ยตs on a Core i9-12900K, including I/O. Full code is (here)[https://github.com/ahans/aoc2022/blob/main/cpp/day04.cc], the interesting part is this, where we process 32 elements at once:
- Significantly faster quicksort using SIMD
- Parsing JSON faster with Intel AVX-512
- What do you think is faster for batch-processing a lot of "double-type" arithmetic?
What are some alternatives?
When comparing avx_qsort and version2 you can also consider the following projects:
highway - Performance-portable, length-agnostic SIMD with runtime dispatch
perf-challenge6
aoc22 - Advent of Code solutions for 2022 (in Python)
parallel-string-sorting - Collection of Parallel String Sorting Algorithms including Parallel Super Scalar String Sample Sort and Parallel Multiway LCP-Mergesort
advent2022
zerovm-samples - Sample code and libraries built for ZeroVM
adventOfCode2022
simde - Implementations of SIMD instruction sets for systems which don't natively support them.
Day4 - My (messy) Python3 solution for day4's puzzle.
advent-of-code
adventOfCode2022 - For tracking my advent of code participation 2022