Re: Proposal for enabling auto-vectorization for checksum calculations - Mailing list pgsql-hackers

From Andrew Kim
Subject Re: Proposal for enabling auto-vectorization for checksum calculations
Date
Msg-id CAK64mnc6jbehHv5AHc84tVFRJg4zeMiFuvPX9xZkRpq0210MFA@mail.gmail.com
Whole thread Raw
In response to Re: Proposal for enabling auto-vectorization for checksum calculations  (John Naylor <johncnaylorls@gmail.com>)
List pgsql-hackers
Hi John,

Thank you for reviewing and bringing this up regarding checksum architecture.

On Tue, Oct 28, 2025 at 7:50 PM John Naylor <johncnaylorls@gmail.com> wrote:
>
> On Fri, Oct 24, 2025 at 2:49 PM Andrew Kim <tenistarkim@gmail.com> wrote:
> > The function signatures (pg_checksum_block, pg_checksum_page) remain
> > identical, and checksum_impl.h still contains the complete
> > implementation that external programs can include. The runtime
> > dispatch only affects internal PostgreSQL usage.
>
> I don't quite understand the architecture here -- all
> platform-specific definitions were put in the "checksum_impl.h"
> header. My thinking was that checksum.c would have all that, with thin
> wrappers around the functions included from that header.

The v9 patch series is attached.
I've implemented the architecture as you described.
checksum_impl.h
-No platform-specific code (removed all AVX2, CPUID, intrinsics)
-External programs get a clean, portable standalone implementation
-Uses #ifndef PG_CHECKSUM_INTERNAL guard to prevent conflicts

checksum.c (full implementation for checksum):
-Includes checksum_impl.h for the basic implementation and common definitions
-Contains all platform-specific code (AVX2, CPUID detection, runtime dispatch)
-Implements thin wrapper functions that provide the public interface
-Uses #define PG_CHECKSUM_INTERNAL before including the header

>
> --
> John Naylor
> Amazon Web Services


Thanks
Andrew

Attachment

pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Re: Suggestion to add --continue-client-on-abort option to pgbench
Next
From: Chao Li
Date:
Subject: Re: doc: Improve description of io_combine_limit and io_max_combine_limit GUCs