gpu-sort
GPU accelerated asynchronous sorting
Why?
WebGL seems underutilized and sorting asynchronously is really handy.
Installation
npm install gpu-sort
Example
; let numbers = 5 4 3 2 1 0; // sort in placegpu; // sort in place asynchronouslygpu;
NodeJS support
; // For NodeJS an emulation library must be provided as it doesn't support WebGLgpu; // sort using webgl emulated contextgpu;
Benchmarks
https://demskie.github.io/gpu-sort
Limitations
- Only TypedArrays are supported.
- When sorting 8bit and 16bit numbers GPU acceleration is disabled (as it seems rather pointless).
- The maximum number of elements that can be sorted is constrained by the max texture width squared. For example
4096 ^ 2 = 16,777,216 (32bit)
or4096 ^ 2 / 2 = 8,388,608 (64bit)
. This can be increased in the future by up to 8 times by multiplexing the data across multiple framebuffers.