C# and SIMD
It would be great if C# compiler and .Net JIT compiler could utilize SIMD instructions of current and future processors. The projects that require heavy calculations (MathDotNet.Numerics for example) would greatly benefit from this feature.
Thanks for the feedback!
I’m happy to announced that we release a preview of SIMD support for .NET. It includes a new JIT as well as NuGet library with vector types. For details, have a look at this blog post:
.NET Framework Team
Yahooo!!! Now I hope Mono updates there SIMD stuff to match up to this API. Also does this support ARM NEON ??
Ben Adams commented
oh sim d you shouldn't have to ask , google it the list goe's on and on
basically anything that is computationally heavy and wants blazing fast math
science games imaging math class's/librarys matrix math ect...
Subramanian Ramaswamy commented
I see that there's a strong following for getting SIMD support in the JIT-compiler based on responses to blogs and user-voice requests. Would anyone be willing to offer/suggest some real life code on where this would be beneficial? Please email RyuJIT@microsoft.com.
Robert Petz commented
@Andrew - not following you there...
Lets just hope M# goes Open Source.
Theodore Zographos commented
- How well does the current compiler produce code that takes advantage of SIMD / HSA hardware ?
- It would be nice if the compiler was able to recognize code-patterns and turn the instructions automatically to SIMD
Lennart Berg commented
Definetly a MUST have with the RyuJIT work in progress.
Jeff Moser commented
Without SIMD support, I cannot write a performance competitive version of the scrypt cryptographic key derivation function in pure C# since the inner loop depends on being able to operate on vectors quickly.
非常期望.net 添加Simd的原生支持！ 这样对科学计算以及Win8下的游戏开发也有极大益处。
I would use this, and global C style pointers would also be nice.
We need SIMD eagerly
SIMD is one of the few remaining reason to program in C++ for Windows.
Jay Lemmon commented
I do a lot of linear algebra work in C#, and I can wrangle the JITer to give me near optimal x87 with loop unrolling and things like that. SIMD is the only reason I have left to do anything in C++. Please don't make me go back to it!
we NEED SIMD!! now!!!
Tom Spilman commented
There is another vote on the Connect site:
Joshua A. Schaeffer commented
Just because the JITter won't optimize for the sake of startup speed, doesn't mean NGEN can't be tasked with the ability to hyper-optimize .NET modules with SIMD and who knows what else.
Tom Spilman commented
We need SIMD! It would go a long way towards leveling the playing field between C# and C++.
@DrPizza - do you have a link? I remember decompiling JVM jitted bytecode in 2007 and it had already been using the XMM registers then. I'm guessing they've improved it even more and I'd love details.
code preview of custom feedback from