Re: Can SIMD in boost unordered be disabled without disabling SIMD for full compile.

Joaquin M López Muñoz via Boost-users <[email protected]> Mon, 11 Mar 2024 09:12:24 +0100
Newsgroups gmane.comp.lib.boost.user
Message-ID <[email protected]>
El 10/03/2024 a las 22:40, Ivan Matek via Boost-users escribió:
> Hi,
> I have some small maps where I am pretty sure SIMD tricks that are 
> amazing in general will just slow down the lookups since I never 
> lookup items not in the map and map is so small that benefits of not 
> looking up into the big array and trashing the cache are miniscule.
> I know I can force compiler to not support SIMD with march, but I want 
> to keep the SIMD optimizaitons for rest of the code, including large 
> boost unordered objects.

Hi Ivan,

Boost.Unordered support can be disabled by globally defining the macro
BOOST_UNORDERED_DISABLE_SSE2, but this is probably not a solution for 
you because:

* It disables SSE2 for *all* flat containers in Boost.Unordered.
* The alternative implementation to SSE2 is likely to be slower anyway.

May I suggest that you use boost::unordered_map instead of 
boost::unordered_flat_map
for those small maps and see if this improves the performance of your 
program?

Best,

Joaquín M López Muñoz

_______________________________________________
Boost-users mailing list
[email protected]
https://lists.boost.org/mailman/listinfo.cgi/boost-users