Are there any developments in SIMD in Mono?

I want to know if there was any development of Mono.SIMD (or SIMD support in general inside Mono) since it was released 5 (!) Years ago. I personally think this was a great step in improving speed for C #. However, I have been using it for some time, and I feel that Mono.SIMD is lagging behind as many features are missing.

Some of the issues I am facing include:

  • The lack of a point product that can be implemented in 1 operation since SSE4.1 (appeared in 2006 and is now supported on 70% of computers), while Mono.SIMD requires 3 operations. In addition to this, the programmer must write a function for each version of SSE, the work that the JIT must perform (since it was created specifically so that the programmer does not worry about the versions of the CPU).
  • There is no possibility to add / multiply Vector4f and Vector4i (or any other vectors that are different).
  • There is no correct casting of vectors (bits do not change at all, so the results are very strange and almost completely useless).
  • Many other features that are not included, such as rounding.

So, does anyone know what is happening with Mono.SIMD or SIMD support in general (and if so, then)? Or, alternatively, does anyone know a good solution to any of the problems mentioned?

+7
c # sse simd mono
source share
2 answers

AFAIR development is not performed. The project is open source, and the mechanism is not too complicated, so you can improve the current implementation. I thought about adding some instructions, but then, as usual, there was not enough time (also the application was canceled). You may be interested in looking at the stream: http://lists.ximian.com/pipermail/mono-devel-list/2012-February/038632.html

+4
source share

Another answer was made a few years ago. So I wrote this to list all the necessary bits for 2018 readers.

When Mono started supporting SIMD, they were requested by the Unity guys,

http://tirania.org/blog/archive/2008/Nov-03.html

He seemed in a hurry, so the overall design of the API still has room for growth.

Microsoft began work on a more complete and standardized SIMD library, and that was a few years later in 2014.

https://www.infoq.com/news/2014/04/SIMD-CLR

Therefore, you should pay attention to this newer option.

Microsoft opened .NET Core in 2015, and SIMD has been accelerated since then.

Last year, Mono 5.0 announced the intransigence of Mono.SIMD in favor of Microsoft,

http://www.mono-project.com/docs/about-mono/releases/5.0.0/ (SIMD acceleration support section).

+1
source share

All Articles