Re: add AVX2 support to simd.h
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Nathan Bossart <nathandbossart@gmail.com>, Ants Aasma <ants@cybertec.at>
Cc: John Naylor <johncnaylorls@gmail.com>, pgsql-hackers@postgresql.org
Date: 2024-01-09T14:03:39Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Improve style of pg_lfind32().
- 7188a7806d20 17.0 landed
-
Fix compiler warning for pg_lfind32().
- 1f42337be535 17.0 landed
-
Micro-optimize pg_lfind32().
- 7644a7340c8a 17.0 landed
-
Introduce helper SIMD functions for small byte arrays
- 9f225e992bed 17.0 cited
-
Optimize xid/subxid searches in XidInMVCCSnapshot().
- 37a6e5df3713 16.0 cited
On 29.11.23 18:15, Nathan Bossart wrote: > Using the same benchmark as we did for the SSE2 linear searches in > XidInMVCCSnapshot() (commit 37a6e5d) [1] [2], I see the following: > > writers sse2 avx2 % > 256 1195 1188 -1 > 512 928 1054 +14 > 1024 633 716 +13 > 2048 332 420 +27 > 4096 162 203 +25 > 8192 162 182 +12 AFAICT, your patch merely provides an alternative AVX2 implementation for where currently SSE2 is supported, but it doesn't provide any new API calls or new functionality. One might naively expect that these are just two different ways to call the underlying primitives in the CPU, so these performance improvements are surprising to me. Or do the CPUs actually have completely separate machinery for SSE2 and AVX2, and just using the latter to do the same thing is faster?