Hasty Briefsbeta

Exploring .NET Core platform intrinsics: Accelerating SHA-256 on ARMv8 (2018)

14 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.