Note that we need to decouple the SIMD level available at compile-time from the SIMD level available at runtime. That is, we typically build optional AVX512 accelerations at compile-time, but only enable them at runtime if the CPU supports AVX512 (and if the environment variable ARROW_USER_SIMD_LEVEL wasn't forced to a lower value).
>From a quick glance, it's not obvious that xsimd supports that level of control. Though it may just be undocumented. I will check with the authors, since I happen to know them. Regards Antoine. Le 09/02/2021 à 10:13, Paul Balança a écrit : > For what it's worth, I have been using xsimd at my job for ~1 year, and can > only recommend it (optimization of ML clustering code on CPU). > Straightforward to use, easy to extend to support additional instructions. > The API is clear and the implementation follows modern C++ practices. > > > On Tue, Feb 9, 2021 at 3:15 AM Yibo Cai <yibo....@arm.com> wrote: > >> This topic was talked in an earlier thread [1], but not landed yet. >> >> PR https://github.com/apache/arrow/pull/9424 optimizes ByteStreamSplit >> with Arm64 NEON, maybe it's a good chance to evaluate possibility of >> simplifying arch dependent SIMD code with an SIMD library. >> >> I did a quick comparison of four open source SIMD libraries we've >> mentioned in earlier talks. >> >> All libraries support C++11, GCC/Clang/MSVC, x86 (up to AVX512), Arm64 >> NEON, with permissive open source licenses. >> >> Some differences: >> >> - nsimd: https://github.com/agenium-scale/nsimd >> * supports Arm64 SVE, Cuda >> * needs installation, not header only >> * 133 stars, 11 contributors >> >> - mipp: https://github.com/aff3ct/MIPP >> * header only >> * 241 stars, 2 contributors >> >> - xsimd: https://github.com/xtensor-stack/xsimd >> * header only >> * 938 stars, 28 contributors >> >> - libsimdpp: https://github.com/p12tic/libsimdpp >> * supports PPC, MIPS >> * header only >> * 906 stars, 17 contributors >> >> I have a little experience of libsimdpp. It's straightforward to use. I >> suppose other libraries are similar. >> I would prefer xsimd. Simply because it has more stars and contributors, >> and a more active community. >> >> [1] >> https://mail-archives.apache.org/mod_mbox/arrow-dev/202006.mbox/%3C3667345c-fdd2-5bbd-9bff-023282c377d8%40python.org%3E >> >