-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
status of AVX-512 and Vc #22
Comments
Hi. First of all, I'm happy to hear that you had good success with Vc. And I understand that you want to make use of the portability promise now and sadly it isn't there. 😞 The reason is that it became too expensive to maintain more SIMD variants without C++17 (constexpr-if is immensely helpful) and without making much more use of GCC vector builtins, which are not available on MSVC. Once I took that step, the implementation had to be very different. Which is why there's no way to merge the std-simd code back to Vc 1.4. |
Thank you for the explanations. Now I know what I will use in my future projects 😃 |
Right, |
I just pushed |
Thank you for implementing |
Hi,
I have been using Vc with our biomechanics code where it showed to be very beneficial, around 30% peak performance even in the non-academic scenarios 👍
Now it would be nice to be able to use AVX-512 on an Intel Cascade Lake processor (using GCC 10.2, Ubuntu 20.04). I'm not really up to date with the status of
Vc
andstd-simd
so I thought I'd just ask here about it:Vc
in terms of AVX-512? v1.4 doesn't support it. I checked out the branchmkretz/datapar
and could run simple AVX-512 arithmetic, however things likeVc::abs
,Vc::exp
,Vc::iif
seem to not exist. I tried a merge of the branchmkretz/datapar
into1.4
, which gave numerous conflicts. At lot of them were files that were renamed differently, but some conflicts were also in the code. I am completely lost here and not able to do this merge.std-simd
. How stable and feature-complete is this code base already?My use case would be an inclusion of the headers instead of requiring our users to patch and rebuild their GCC compilers. I would probably start with defining a compatibility layer such as
The symbols of
Vc
used in our code are:Vc::double_v, Vc::int_v and *::size(), Vc::Zero, Vc::One, Vc::Allocator, Vc::abs, Vc::log, Vc::exp, Vc::isnegative, Vc::isfinite, Vc::all_of, Vc::any_of, Vc::where
.I really appreciate your efforts for getting this into the C++ standard in the long term. Maybe it would be nice to have a short-term solution building on
Vc
, too? (At least a subset for Intel Cascade Lake.)Would it be possible for sb. to implement a
Vc 1.5
with AVX-512? Imho the big advantage of Vc from a user's perspective is it's good documentation. Or isstd-simd
already on the same level asVc
feature-wise and only the documentation is not yet there? Then, could sb. write me the mentioned compatibility layer or guide me in the right direction?The text was updated successfully, but these errors were encountered: