我正在阅读有关c#代码优化的问题,一个解决方案是使用带有SSE的c ++.是否可以直接从ac#程序进行SSE?
即将推出的Mono 2.2版本将获得SIMD支持.Miguel de Icaza在这里写了关于即将推出的功能的博客,API就在这里.
虽然将有一个支持Microsoft .NET Windows运行时开发的库,但除非您在Mono运行时下运行代码,否则它将无法获得您所期望的性能优势.根据您的具体情况,这可能是可行的.
更新:Mono 2.2 发布
C#可以明确地进行SSE呼叫吗?
没有.C#不能产生内联IL更少的内联x86/amd64组装.
CLR,更具体地说是JIT,如果可以使用SSE,则无需在大多数情况下强制使用SSE.我说的最多,因为我不是SSE专家,我确信在某些情况下它可能是有益的,JIT不会进行优化.
SIMD for .NET将在不久的将来推出.此功能ATM需要RyuJIT(.NET的下一代JIT编译器).
您应该使用Microsoft.Bcl.Simd包中的Microsoft.Numerics.Vectors.Vector
类来利用此功能.这里有示例代码.