Boost logo

Boost :

From: Ruben Perez (rubenperez038_at_[hidden])
Date: 2024-12-10 18:02:49


On Tue, 10 Dec 2024, 16:35 Peter Dimov via Boost, <boost_at_[hidden]>
wrote:

> Andrey Semashev wrote:
> > Here's the output on my machine:
> >
> > sha1_160 (1024 bytes): 1220.093078 MiB/s
> > sha1_160 (1048576 bytes): 1317.424120 MiB/s
> > sha1_160 (16777216 bytes): 1318.296514 MiB/s
> > sha2_256 (1024 bytes): 406.139530 MiB/s
> > sha2_256 (1048576 bytes): 430.141013 MiB/s
> > sha2_256 (16777216 bytes): 429.341694 MiB/s
> > sha2_512 (1024 bytes): 629.593514 MiB/s
> > sha2_512 (1048576 bytes): 712.100583 MiB/s
> > sha2_512 (16777216 bytes): 711.549426 MiB/s
> > openssl_sha1_160 (1024 bytes): 1531.142208 MiB/s
> > openssl_sha1_160 (1048576 bytes): 2759.062140 MiB/s
> > openssl_sha1_160 (16777216 bytes): 2738.579482 MiB/s
> > openssl_sha2_256 (1024 bytes): 1541.291824 MiB/s
> > openssl_sha2_256 (1048576 bytes): 2462.035414 MiB/s
> > openssl_sha2_256 (16777216 bytes): 2449.770143 MiB/s
> > openssl_sha2_512 (1024 bytes): 781.187505 MiB/s
> > openssl_sha2_512 (1048576 bytes): 1086.239840 MiB/s
> > openssl_sha2_512 (16777216 bytes): 1082.922782 MiB/s
> >
> > So, depending on the input message size, OpenSSL is faster from 1.24x to
> > 5.72x. Interestingly, despite what is said in Boost.Hash2 documentation
> (and
> > confirmed by the test), OpenSSL's implementation of SHA2-256 is faster
> than
> > SHA2-512. This could be because of the SHA ISA extensions in my CPU.
>
> These are interesting timings. Originally I assumed that this is
> because OpenSSL uses SIMD. But you're right that it might
> actually use SHA-NI instead.
>
> https://en.wikipedia.org/wiki/Intel_SHA_extensions
>
> For some reason I thought that SHA-NI only supported SHA1,
> but it does support SHA2-256 as well.
>
> Is there an easy way to check what OpenSSL uses? Probably
> not because it selects the instruction set at runtime.
>

Is it expected to reach similar levels of performance in the future using
Hash2? Or is this not in scope for the library?

Thanks,
Ruben.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk