New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARROW-11839: [C++] Use xsimd for generation of accelerated bit-unpacking #9614
Conversation
Merging this is currently blocked by xsimd issues xtensor-stack/xsimd#421 and xtensor-stack/xsimd#422. |
@jianxind @cyb70289 Feel free to take a look. It would be interesting to get performance numbers on Neon (one affected benchmark should be |
3ec021f
to
ad11400
Compare
I tested Neon performance of Compiler does good optimization for |
Interesting, thank you. |
c442ff6
to
74b577f
Compare
Is there anything left to do here (other than perhaps rebase and hope CI is fixed)? |
The custom per-ISA code generation scripts (AVX2, AVX512) are replaced with a single code generation script that outputs xsimd code for any SIMD bit-width, in an ISA-agnostic way. Also add a Neon optimized version of bit-unpacking that leverages the generated code for 128-bit SIMD.
74b577f
to
57e0857
Compare
@nealrichardson We must make sure that compilation works on all C++ builds. |
Will merge now. |
The custom per-ISA code generation scripts (AVX2, AVX512) are replaced with a single code generation script that outputs xsimd code for any SIMD bit-width, in an ISA-agnostic way. Also add a Neon optimized version of bit-unpacking that leverages the generated code for 128-bit SIMD. Closes apache#9614 from pitrou/ARROW-11839-xsimd-bpacking Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
The custom per-ISA code generation scripts (AVX2, AVX512) are replaced with a single code generation script that outputs xsimd code for any SIMD bit-width, in an ISA-agnostic way. Also add a Neon optimized version of bit-unpacking that leverages the generated code for 128-bit SIMD. Closes apache#9614 from pitrou/ARROW-11839-xsimd-bpacking Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
The custom per-ISA code generation scripts (AVX2, AVX512) are replaced with a single code generation script that outputs xsimd code for any SIMD bit-width, in an ISA-agnostic way. Also add a Neon optimized version of bit-unpacking that leverages the generated code for 128-bit SIMD. Closes apache#9614 from pitrou/ARROW-11839-xsimd-bpacking Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
The custom per-ISA code generation scripts (AVX2, AVX512) are replaced with a single code generation script that outputs xsimd code for any SIMD bit-width, in an ISA-agnostic way. Also add a Neon optimized version of bit-unpacking that leverages the generated code for 128-bit SIMD. Closes apache#9614 from pitrou/ARROW-11839-xsimd-bpacking Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
The custom per-ISA code generation scripts (AVX2, AVX512) are replaced with a single code generation script that outputs xsimd code for any SIMD bit-width, in an ISA-agnostic way.
Also add a Neon optimized version of bit-unpacking that leverages the generated code for 128-bit SIMD.