VcDevel / Vc

SIMD Vector Classes for C++
BSD 3-Clause "New" or "Revised" License
1.45k stars 152 forks source link

zimt - a SIMD abstraction layer - can use Vc as a back-end #352

Open kfjahnke opened 1 year ago

kfjahnke commented 1 year ago

Dear all!

I'd like to attract your attention to my new library zimt. I am in the process of factoring this code out from my library vspline because I found that the code has a much wider scope than being part of a b-spline library. For now, zimt supports four SIMD back-ends:

The idea is to make all these back-ends interoperable and accessible via a common API. Building on top of this common API is code to 'roll out' SIMD pipeline code over arbitrarily strided nD arrays of fundamentals or 'xel' data, like pixels. This code is already quite mature, because it's been in use for years with both vspline and my image/panorama viewer lux. The common API is very similar to Vc::SimdArray - in fact I had a large-ish body of code relying on Vc::SimdArray and needed a way to re-use the code for a larger set of targets, and that was my initial trigger to develop the code which is now in zimt. Therefore it may help Vc users who want to port code based on Vc::SimdArray to another back-end.