intel / x86-simd-sort

C++ template library for high performance SIMD based sorting algorithms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Need Argsort For 32Bit Index For 32Bit Types

victor-zou opened this issue · comments

We only have argsort whose indexes are (unsigned) int64_t. For 32bit types like int/float, I think argsort with int32_t as index type can also be provided, which may performs better with avx512's i32gather_ps/epi32 instructions. Also, this function can be easily implemented in AVX2 plantforms.

That is true @victor-zou. It will need implementing key-value network sort for 32bit data in ZMM registers. I do have this in my to do list, not sure when I can get to this though.

@r-devulap Thanks. Yes, add i32gather api and 32bit sort(reg, index_reg) is easy. Only impl the sort network for n from 32 to 128 requires some work. Since this work is on the to-do list, I just ad hoc use a patched sort to 16 than use network version, and wait for your good news. Thanks again.