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
>>
> 

Reply via email to