Re: Proposal for enabling auto-vectorization for checksum calculations
Matthew Sterrett <matthewsterrett2@gmail.com>
From: Matthew Sterrett <matthewsterrett2@gmail.com>
To: Nazir Bilal Yavuz <byavuz81@gmail.com>
Cc: Stepan Neretin <slpmcf@gmail.com>, pgsql-hackers@lists.postgresql.org, "Devulapalli, Raghuveer" <raghuveer.devulapalli@intel.com>, "Shankaran, Akash" <akash.shankaran@intel.com>
Date: 2025-05-22T21:54:28Z
Lists: pgsql-hackers
Attachments
- v4-0005-Use-dummy-function-to-avoid-linker-error-move-dec.patch (application/octet-stream) patch v4-0005
- v4-0004-fix-bench-compiling.patch (application/octet-stream) patch v4-0004
- v4-0002-Fix-compilation-on-systems-where-immintrin.h-is-n.patch (application/octet-stream) patch v4-0002
- v4-0001-Enable-autovectorizing-pg_checksum_block.patch (application/octet-stream) patch v4-0001
- v4-0003-Benchmark-code-for-postgres-checksums.patch (application/octet-stream) patch v4-0003
- v4-0006-Workaround-for-clang-19-crash.patch (application/octet-stream) patch v4-0006
> You can see the failure at the artifacts -> > 'log/tmp_install/log/install.log' file on the CI web page [1]. > > If you want to replicate that on your local: > > $ ./configure --with-llvm CLANG="ccache clang-16" > $ make -s -j8 world-bin > $ make -j8 check-world > > should be enough. I was able to replicate it with these commands. I > hope these help. Thanks so much for helping me figure this out! Okay, I've determined that versions of LLVM/Clang before 19 crash when compiling this patch for some reason; it seems that both make check-world and make install will crash with the affected LLVM versions. Unfortunately, what matters seems to be the version of the linker/LTO optimizer, which I don't think we can check at compile time. I added a check for Clang>=19 which works at preventing the crash on my system. I think it's possible some unusual combination of clang/LLVM might still crash during the build, but I think this is a reasonable solution
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Use AVX2 for calculating page checksums where available
- 5e13b0f24039 19 (unreleased) landed