C# Mono中的SIMD还有什么发展吗?
我想知道Mono.SIMD(或Mono内部的SIMD支持)自5(!)年前问世以来是否有任何发展。我个人认为这是提高c#的速度的一大步。然而,我已经使用它一段时间了,我感觉Mono.SIMD落后了,因为很多函数都丢失了 我面临的一些问题包括:C# Mono中的SIMD还有什么发展吗?,c#,mono,sse,simd,C#,Mono,Sse,Simd,我想知道Mono.SIMD(或Mono内部的SIMD支持)自5(!)年前问世以来是否有任何发展。我个人认为这是提高c#的速度的一大步。然而,我已经使用它一段时间了,我感觉Mono.SIMD落后了,因为很多函数都丢失了 我面临的一些问题包括: 自SSE4.1(2006年推出,现在70%的计算机支持)以来,没有一个dot产品可以在1次操作中实现,而它在Mono.SIMD中需要3次操作。除此之外,程序员必须为每个版本的SSE编写一个函数,这是JIT应该做的工作(因为创建它是为了让程序员不再担心CPU版
那么,是否有人知道Mono.SIMD或SIMD支持总体上是否出现了问题(如果是,是什么情况)?或者,有人知道解决上述问题的好方法吗?因为开发尚未进行。该项目是开源的,机器也不太复杂,因此可以改进当前的实现。我考虑过添加一些指令,但是,像往常一样,没有足够的时间这样做(应用程序最终也被取消了)。您可能对以下线程感兴趣: 另一个答案是几年前提出的。因此,我写这篇文章是为了列出2018年读者需要的所有信息 当Mono开始支持SIMD时,Unity的人要求他们 它看起来很匆忙,所以整个API设计还有增长的空间 微软开始开发一个更完整、更标准的支持SIMD的库,几年后的2014年 因此,应注意这一新的选择 微软于2015年开放了.NET内核的源代码,此后SIMD的工作得到了加速 正是在去年,Mono 5.0宣布淘汰Mono.SIMD,支持微软的工作
(SIMD加速支持部分)。SSE4.1中的Dot产品说明几乎毫无用处。在英特尔CPU上,它可以解码为4个微操作(单精度版本),而在最近的AMD CPU上,该指令是微代码。在.Net framework 4.6和4.5(用于向量运算的System.Numerics)中,自从RyuJIT与Microsoft.Bcl.Simd一起使用以来,Simd现在在本机上得到了.Net的支持。这可能会鼓励Mono团队跟随潮流?