x86中的C#SIMD优化代码

x86中的C#SIMD优化代码,c#,x86,simd,system.numerics,C#,X86,Simd,System.numerics,System.Numerics.Vectors最近被添加到.NET Framework以添加SIMD支持,但据我所知,它仅适用于x64。我还看到它仍在积极开发中,6月27日刚刚发布了一个新版本,但没有发布说明来描述这些变化。 我的问题是:有没有办法将SIMD优化添加到C#中的x86代码中 迄今为止,唯一的方法是创建一个单独的C++项目,它可以嵌入到DLL中并在运行时提取,但这不是一个很好的解决方案。 SIMD优化需要RJJIT,目前只在X8664上可用。如果我理解正确的话,RyuJIT最终应该

System.Numerics.Vectors最近被添加到.NET Framework以添加SIMD支持,但据我所知,它仅适用于x64。我还看到它仍在积极开发中,6月27日刚刚发布了一个新版本,但没有发布说明来描述这些变化。

我的问题是:有没有办法将SIMD优化添加到C#中的x86代码中


迄今为止,唯一的方法是创建一个单独的C++项目,它可以嵌入到DLL中并在运行时提取,但这不是一个很好的解决方案。

SIMD优化需要RJJIT,目前只在X8664上可用。如果我理解正确的话,RyuJIT最终应该是x86-32版本,但它还没有发布。可能存在重大的稳定性问题,或者负责的团队正在关注其他问题。RyuJIT最初是常规x86 JIT的分支。如果您需要真正的性能,在C++中编写代码仍然是唯一的选择。即使对于64位,这些SIMD优化的范围也非常有限。微软没有理由在x86上投入任何资源。它在很久以前就不再相关了,机器制造商完全停止使用32位处理器,64位操作系统已经无处不在10年了。唯一的缺点是VS项目模板仍然选中了“首选32位”选项。希望这将在下一个版本中结束。仍然有许多第三方组件被迫使用x86,对于许多项目来说,使用x64将真正受益。然而,大多数x86第三方程序现在已经被移植,或者正在使用x64选项,所以情况越来越好。当性能如此关键以至于需要SIMD时,我同意使用x86没有任何意义。。。除非这是个要求。对于我想要编写的代码,它需要同时使用这两种方法。但是,仍然没有在.NET中使用Windows Media Player x64的选项。@HansPassant:这是有道理的。对于许多程序(显然不是问题中的那个),32位或64位没有太大区别,32位程序确实在64位Windows上运行,但不是相反。