Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2024-12-10 21:00:09


On 12/10/24 21:15, Peter Dimov via Boost wrote:
> Ruben Perez wrote:
>>
>> Is it expected to reach similar levels of performance in the future using Hash2?
>> Or is this not in scope for the library?
>
> I don't see why it wouldn't be in scope; performance optimizations are never
> ruled out.
>
> Taking advantage of SHA-NI when it's statically known to be available (under
> GCC/Clang -march=native, for instance) should be relatively easy to add.

Requiring SHA instructions unconditionally sets a rather high bar on the
CPU requirements.

> Dynamic dispatch is a bit more convoluted because of constexpr but should
> be possible.

SIMD intrinsics (at least x86 ones) are not constexpr-friendly as they
require reinterpret_cast to access memory. Only AVX-512 added load/store
intrinsics taking void pointers. Maybe gcc's vector extensions are
better, but I'm not sure if SHA intrinsics will work with them. I
suspect the constexpr version will have to always use the generic code,
and the runtime version may use CPU detection and vectorized code.


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