SIMD on Xamarin.Android and Xamarin.iOS (Mono.SIMD)

MatthewDuckerMatthewDucker NZMember, Beta
edited January 2014 in General

Do these extensions work on mobile platforms? I am the developer of a general-purpose security library written in C#, and am looking to extract some more performance (while its plenty fast enough on desktop, it might be a bit lacking on mobile) by using SIMD instructions. ARM NEON implement SIMD on a hardware level (e.g. 128 bit vectors for Vector16b struct), but I'm unsure of whether Mono actually implements it on ARM. I already make use of some [totally optional / non-required] unsafe code to provide a boost.
There are numerous opportunities for me to use SIMD to get potentially large improvements, but being the sole developer in an admittedly ambitious project, I don't want to sink time into something that isn't for-sure.

The project is https://github.com/zenith-nz/ObscurCore by the way.
I need to convert it into a PCL library for easy use with Xamarin, but it definitely works in Xamarin.Android if the code files are simply imported and compiled. Really the only things that need to be changed is adding some exceptions ; InvalidDataException, etc, is unavailable, as with Stream.Close(), and some other minor things. The only tricky thing is some System.Threading stuff being missing, which admittedly I haven't looked into that closely yet.
The library has much easy to use, customisable crypto, and enables zero dependencies on System.Security and System.Security.Cryptography, unless you want to use SSL/TLS (you'll need it still then, I'm not tackling that!). Feedback is welcomed.

Sign In or Register to comment.