Mono中的SIMD还有什么发展吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mono中的SIMD还有什么发展吗?相关的知识,希望对你有一定的参考价值。
我想知道自从5年(5年前)出现以来Mono.SIMD(或Mono内部的SIMD支持)是否有任何开发。我个人认为这是提高c#速度的重要一步。但是,我已经使用了一段时间了,我觉得Mono.SIMD落后了,因为很多功能都缺失了。
我面临的一些问题包括:
- 缺少点积,自SSE4.1(2006年出现,现在70%的计算机支持)以来可以在1次操作中实现,而在Mono.SIMD中需要3次操作。除此之外,程序员必须为每个版本的SSE编写一个函数,这是JIT应该做的工作(因为它是专门为了让程序员不再担心CPU版本而创建的)。
- 不可能添加/乘以Vector4f和Vector4i(或任何其他不同的矢量)。
- 没有适当的矢量投射(这些位似乎没有变化,所以结果非常奇怪,几乎完全没用)。
- 很多其他功能都没有包括在内,比如四舍五入。
那么,有没有人知道Mono.SIMD或SIMD支持是否正在发生某些事情(如果是的话,那是什么)?或者,或者,有人知道提到的任何问题的良好解决方案吗?
AFAIR的发展尚未进行。该项目是开源的,机器不是太复杂,因此可以改进当前的实施。我考虑添加一些指令,但是,像往常一样,没有足够的时间来做到这一点(也最终取消了应用程序)。您可能有兴趣查看主题:http://lists.ximian.com/pipermail/mono-devel-list/2012-February/038632.html
另一个答案是几年前提出的。因此,我写了这篇文章列出了2018年读者所需的所有内容。
当Mono开始支持SIMD时,Unity人员要求他们,
http://tirania.org/blog/archive/2008/Nov-03.html
它看起来很匆忙,因此整体API设计仍有增长空间。
微软开始研究更完整和标准化的支持SIMD的库,那是几年后的2014年,
https://www.infoq.com/news/2014/04/SIMD-CLR
因此,应该注意这个更新的选择。
微软在2015年开源.NET Core,从此加速了SIMD的工作。
去年,Mono 5.0宣布了Mono.SIMD的过时性,支持微软的工作,
Qtzwswwi(Sind Accelerotin支援科)。
以上是关于Mono中的SIMD还有什么发展吗?的主要内容,如果未能解决你的问题,请参考以下文章