Fast Sorting Algorithms using AVX-512 on Intel Knights Landing

04/24/2017
by   Berenger Bramas, et al.
0

This paper describes fast sorting techniques using the recent AVX-512 instruction set. Our implementations benefit from the latest possibilities offered by AVX-512 to vectorize a two-parts hybrid algorithm: we sort the small arrays using a branch- free Bitonic variant, and we provide a vectorized partitioning kernel which is the main component of the well-known Quicksort. Our algorithm sorts in-place and is straightforward to implement thanks to the new instructions. Meanwhile, we also show how an algorithm can be adapted and implemented with AVX-512. We report a performance study on the Intel KNL where our approach is faster than the GNU C++ sort algorithm for any size in both integer and double floating-point arithmetics by a factor of 4 in average.

READ FULL TEXT
research
04/24/2017

A Novel Hybrid Quicksort Algorithm Vectorized using AVX-512 on Intel Skylake

The modern CPU's design, which is composed of hierarchical memory and SI...
research
05/12/2022

Vectorized and performance-portable Quicksort

Recent works showed that implementations of Quicksort using vector CPU i...
research
05/17/2021

A fast vectorized sorting implementation based on the ARM scalable vector extension (SVE)

The way developers implement their algorithms and how these implementati...
research
08/21/2019

Engineering Faster Sorters for Small Sets of Items

Sorting a set of items is a task that can be useful by itself or as a bu...
research
10/29/2018

Simple and Fast BlockQuicksort using Lomuto's Partitioning Scheme

This paper presents simple variants of the BlockQuicksort algorithm desc...
research
10/15/2019

Apply Sorting Algorithms to FAST Problem

FAST problem is finding minimum feedback arc set problem in tournaments....
research
05/15/2023

Fast Inference of Tree Ensembles on ARM Devices

With the ongoing integration of Machine Learning models into everyday li...

Please sign up or login with your details

Forgot password? Click here to reset