mathnet-numerics
mathnet-numerics copied to clipboard
Use .NET Core hardware intrinsics to improve the performance?
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?
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.
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.
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.
Is there any update since May 2018 or has this been parked since?
Another bump a few months later, any updates so far?
It would really be good to get some kind of update on this. Do we have any updates or plans?