On Fri, 12 Feb 2021 20:47:21 -0800
Micah Kornfield <emkornfi...@gmail.com> 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 2:45 AM Antoine Pitrou <anto...@python.org> wrote:
> 
> >
> > 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
> > case currently.
> > https://github.com/VcDevel/std-simd
> >
> > Regards
> >
> > Antoine.
> >
> >
> > Le 12/02/2021 à 05:18, Micah Kornfield a écrit :  
> > > 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  
> > > this is a real concern.
> > >
> > > On Tue, Feb 9, 2021 at 7:00 PM Yuqi Gu <yuqi...@linaro.org> wrote:
> > >  
> > >> 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 bit/byte shuffling,  byte stream split encoding, ARM SVE
> > >> supporting, etc.
> > >> I'm absolutely willing to contribute the missing functions to *xsimd*.
> > >>
> > >> BRs,
> > >> Yuqi
> > >>
> > >> On Tue, 9 Feb 2021 at 22:08, Antoine Pitrou <anto...@python.org> wrote:
> > >>  
> > >>>
> > >>> 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 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.  
> > >>>
> > >>> Ok, there shouldn't be any problem on that front.  We just need to
> > >>> compile with the right compiler flags to select the desired SIMD level,
> > >>> like we already do currently when compiling multiple versions of a
> > >>> function.
> > >>>
> > >>> I'll note that xsimd isn't very complete.  For example, it seems to  
> > lack  
> > >>> the functions required for byte stream split encoding and decoding.
> > >>> Those functions are exported by libsimdpp under the names "zip_lo" and
> > >>> "zip_hi".
> > >>>
> > >>> libsimdpp, on the other hand, seems to lack maintenance.  It hasn't had
> > >>> a commit in one year, and issues and PRs seem to be unanswered.  So
> > >>> perhaps xsimd is a better course, provided we want to contribute the
> > >>> missing functions.
> > >>>
> > >>> Regards
> > >>>
> > >>> Antoine.
> > >>>  
> > >>  
> > >  
> >  
> 



Reply via email to