Re: [C++] adopting an SIMD library - xsimd

2021-03-02 Thread Antoine Pitrou
Hi Eduardo, Thanks for chiming in. Just one precision: On Tue, 02 Mar 2021 06:41:54 - Eduardo Ponce wrote: > In my experience there is no single SIMD library that wraps all possible set > of vector instructions across the most common architectures and at the same > time provides

Re: [C++] adopting an SIMD library - xsimd

2021-03-01 Thread Eduardo Ponce
In my experience there is no single SIMD library that wraps all possible set of vector instructions across the most common architectures and at the same time provides support for all popular compilers while supporting C and C++11/14. (I mention C because there is an issue for Arrow support in

Re: [C++] adopting an SIMD library - xsimd

2021-02-24 Thread Antoine Pitrou
For the record, a PR is now up for bundling xsimd with Arrow C++: https://github.com/apache/arrow/pull/9556 Regards Antoine. On Tue, 9 Feb 2021 11:14:45 +0800 Yibo Cai wrote: > This topic was talked in an earlier thread [1], but not landed yet. > > PR

Re: [C++] adopting an SIMD library - xsimd / GPU optimization

2021-02-16 Thread Antoine Pitrou
; Anyway, those are my thoughts for now. > > Cheers, > > Joe Duarte > > -Original Message- > From: Antoine Pitrou > Sent: Saturday, February 13, 2021 2:49 AM > To: dev@arrow.apache.org > Subject: Re: [C++] adopting an SIMD library - xsimd > > O

RE: [C++] adopting an SIMD library - xsimd / GPU optimization

2021-02-15 Thread Joe Duarte
hers. Anyway, those are my thoughts for now. Cheers, Joe Duarte -Original Message- From: Antoine Pitrou Sent: Saturday, February 13, 2021 2:49 AM To: dev@arrow.apache.org Subject: Re: [C++] adopting an SIMD library - xsimd On Fri, 12 Feb 2021 20:47:21 -0800 Micah Kornfield wrote: > Th

Re: [C++] adopting an SIMD library - xsimd

2021-02-13 Thread Antoine Pitrou
On Fri, 12 Feb 2021 20:47:21 -0800 Micah Kornfield wrote: > That is unfortunate, like I said if the consensus is xsimd, let's move > forward with that. I would say it's a soft consensus for now, and I would welcome more viewpoints on the matter. Regards Antoine. > > On Fri, Feb 12, 2021 at

Re: [C++] adopting an SIMD library - xsimd

2021-02-12 Thread Micah Kornfield
That is unfortunate, like I said if the consensus is xsimd, let's move forward with that. On Fri, Feb 12, 2021 at 2:45 AM Antoine Pitrou wrote: > > There is an std::simd being envisioned. > https://en.cppreference.com/w/cpp/experimental/simd/simd > > The problem is that we need an

Re: [C++] adopting an SIMD library - xsimd

2021-02-12 Thread Antoine Pitrou
There is an std::simd being envisioned. https://en.cppreference.com/w/cpp/experimental/simd/simd The problem is that we need an implementation that's C++11- or C++14-compliant, that works on major compilers, and that provides accelerations for common instruction sets. It doesn't seem to be the

Re: [C++] adopting an SIMD library - xsimd

2021-02-11 Thread Micah Kornfield
I'm open to x-simd if others think it is the best option. I think the last time this came up I expressed this opinion, but if possible it would be nice to use something that is on its way to become a standard to avoid abandonment issues but I don't know enough about the space to understand if

Re: [C++] adopting an SIMD library - xsimd

2021-02-09 Thread Yuqi Gu
Thanks for comments on the SIMD related PR: https://github.com/apache/arrow/pull/9424. Agree to adopt the *xsimd *as the SIMD wrapper library for Arrow to avoid a large maintenance burden. It makes sense. It seems *ximd *is designed for mathematics calculating and it lacks the functions like

Re: [C++] adopting an SIMD library - xsimd

2021-02-09 Thread Antoine Pitrou
Le 09/02/2021 à 10:36, Antoine Pitrou a écrit : > > 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

Re: [C++] adopting an SIMD library

2021-02-09 Thread Antoine Pitrou
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

Re: [C++] adopting an SIMD library

2021-02-09 Thread Paul Balança
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

[C++] adopting an SIMD library

2021-02-08 Thread Yibo Cai
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