Closed enkore closed 3 months ago
Thanks!
works quite well, too: on a GH200 the aarch64.rs code runs at 1.7 GiB/s (versus 0.4 GiB/s for the soft implementation), OpenSSL 3 is just shy of 2 GiB/s.
We can probably switch from inline ASM back to the intrinsics at this point, given the current MSRV
Looks like these only landed in 1.76: https://doc.rust-lang.org/core/arch/aarch64/fn.vsha256su0q_u32.html
I couldn't even get them to work on 1.76, despite the documentation making it look like they should work: https://github.com/RustCrypto/hashes/actions/runs/8251432049/job/22568457459
Oh, perhaps the SHA-256 intrinsics were stabilized, but the SHA-512 ones weren't?
Looks like it, that's a bit odd.
Here's the stabilization PR: https://github.com/rust-lang/stdarch/pull/1399/files
I don't even see where e.g. vsha512h2q_u64
is defined? Edit: aha, here it is:
Gated under stdarch_neon_sha3
. Tracking issue here: https://github.com/rust-lang/rust/issues/117225
Opened #571 to track this
Fixes #568
(eref 42d478fb6976)