mathnet-numerics icon indicating copy to clipboard operation
mathnet-numerics copied to clipboard

Use .NET Core hardware intrinsics to improve the performance?

Open helloguo opened this issue 6 years ago • 6 comments

Recently .NET Core enabled hardware intrinsics to generate SIMD instructions from SSE to AVX2. And more instructions are added into the .NET Core API interface. The instruction list can be found at https://github.com/dotnet/coreclr/blob/master/src/jit/hwintrinsiclistxarch.h.

Is it feasible to use .NET Core hardware intrinsics to rewrite some core linear algebra functions so that the performance could be improved by SIMD instructions?

helloguo avatar May 02 '18 17:05 helloguo

Yes, absolutely - now that we properly support .Net Standard, performance in general and leveraging SIMD in particular is indeed one of the main focus points.

cdrnet avatar May 06 '18 06:05 cdrnet

Cool. You could find more details about types, semantics, usage, road map and so on from this issue https://github.com/dotnet/corefx/issues/22940. Note this will be a preview feature in .net core 2.1 (not included in default packages). Any suggestions/feedback are very welcome.

helloguo avatar May 07 '18 03:05 helloguo

We implemented lots of POCs with Intrinsics at RavenDB. There are a few instructions that are not available yet for AVX/AVX2 (and won't be for 2.1 AFAIK), but the code generator for the ones that are there work pretty well.

redknightlois avatar May 07 '18 13:05 redknightlois

Is there any update since May 2018 or has this been parked since?

uhensen avatar Jan 23 '20 14:01 uhensen

Another bump a few months later, any updates so far?

a1i3n37 avatar Apr 18 '20 21:04 a1i3n37

It would really be good to get some kind of update on this. Do we have any updates or plans?

RossMMason avatar Feb 09 '21 14:02 RossMMason