Vectorized and performance-portable Quicksort
opensource.googleblog.com
Vectorized and performance-portable Quicksort
1–10 of 147 posts
Re: Vectorized and performance-portable Quicksort
#2Re: Vectorized and performance-portable Quicksort
#3That's pretty disingenuous. The standard implementation is known to be terribly slow because of constraints. They should compare against current state of the art.
Re: Vectorized and performance-portable Quicksort
#4In other words, do you have to be more careful when integrating these wide operators to preserve some resources for other operations?
Re: Vectorized and performance-portable Quicksort
#5> By comparison, the standard library reaches 58/128/117 MB/s on the same CPU, so we have managed a 9-19x speedup depending on the type of numbers. That's pretty disingenuous. The standard implementation is known to be terribly slow because of constraints. They should compare against current state of the art.
Re: Vectorized and performance-portable Quicksort
#6Not having played with SIMD much myself, does leveraging these instructions for an intensive operation like a sort push other workloads out of the CPU more aggressively than operating on 32 or 64 bits at a time would? In other words, do you have to be more careful when integrating these wide operators to preserve some resources for other operations?
But to my knowledge they use different registers, and when properly pipelined they don't hog the CPU cache like unoptimized algorithms that constantly round trip to RAM.
Re: Vectorized and performance-portable Quicksort
#7> By comparison, the standard library reaches 58/128/117 MB/s on the same CPU, so we have managed a 9-19x speedup depending on the type of numbers. That's pretty disingenuous. The standard implementation is known to be terribly slow because of constraints. They should compare against current state of the art.
Re: Vectorized and performance-portable Quicksort
#8> By comparison, the standard library reaches 58/128/117 MB/s on the same CPU, so we have managed a 9-19x speedup depending on the type of numbers. That's pretty disingenuous. The standard implementation is known to be terribly slow because of constraints. They should compare against current state of the art.