Exploring .NET Core platform intrinsics: Accelerating SHA-256 on ARMv8 (2018)
12 hours ago
- #.NET Core
- #SHA-256
- #ARMv8
- .NET Core 2.1 introduces platform-dependent intrinsics via System.Runtime.Intrinsics namespace, enhancing high-performance coding.
- ARMv8 Cryptography Extension includes SHA-256 accelerating instructions: SHA256H, SHA256H2, SHA256SU0, SHA256SU1.
- C# API mirrors ARMv8 SHA-256 intrinsics with methods like HashLower, HashUpper, SchedulePart1, and SchedulePart2.
- Performance benchmarks show intrinsic-based SHA-256 implementation competes closely with OpenSSL, surpassing managed implementations like BouncyCastle.
- Lack of certain intrinsics (e.g., vrev32q_u8) impacts performance, highlighting areas for future .NET improvements.