RE: Proposal for Updating CRC32C with AVX-512 Algorithm.

From: "Devulapalli, Raghuveer" <raghuveer(dot)devulapalli(at)intel(dot)com>
To: Nathan Bossart <nathandbossart(at)gmail(dot)com>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "Shankaran, Akash" <akash(dot)shankaran(at)intel(dot)com>
Subject: RE: Proposal for Updating CRC32C with AVX-512 Algorithm.
Date: 2024-10-29 21:00:17
Message-ID: PH8PR11MB8286B0A041063F2FA057FBB1FB4B2@PH8PR11MB8286.namprd11.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Here are the latest set of patches built on top of your patch to use __attribute__(target) for AVX-512 popcount. Couple of changes made:

(1) The SSE42 and AVX-512 CRC32C also use function attributes to build with ISA specific flag.
(2) Fixes a bug in the earlier version of patch which had performance regressions on SKX because of a bug in the compile time and runtime checks involving the AVX-512 CRC32C code.

Raghuveer

> -----Original Message-----
> From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
> Sent: Friday, October 18, 2024 9:32 AM
> To: Devulapalli, Raghuveer <raghuveer(dot)devulapalli(at)intel(dot)com>
> Cc: Bruce Momjian <bruce(at)momjian(dot)us>; Alvaro Herrera <alvherre(at)alvh(dot)no-
> ip.org>; Andres Freund <andres(at)anarazel(dot)de>; pgsql-
> hackers(at)lists(dot)postgresql(dot)org; Shankaran, Akash <akash(dot)shankaran(at)intel(dot)com>
> Subject: Re: Proposal for Updating CRC32C with AVX-512 Algorithm.
>
> On Tue, Oct 08, 2024 at 08:19:27PM +0000, Devulapalli, Raghuveer wrote:
> > Hi all, I'm currently in the process of reviewing and analyzing Paul's
> > patch. In the meantime, I'm open to addressing any questions or
> > feedback you may have.
>
> I've proposed a patch to move the existing AVX-512 code in Postgres to use
> __attribute__((target("..."))) instead of per-translation-unit compiler flags [0]. We
> should likely do something similar for this one.
>
> [0] https://postgr.es/m/ZxAqRG1-8fJLMRUY%40nathan
>
> --
> nathan

Attachment Content-Type Size
v5-0001-Add-a-Postgres-SQL-function-for-crc32c-testing.patch application/octet-stream 3.2 KB
v5-0002-Move-all-HW-checks-to-common-file.patch application/octet-stream 16.4 KB
v5-0003-Add-support-for-the-SIMD-AVX-512-crc32c-algorithm.patch application/octet-stream 40.8 KB
v5-0004-New-COMP_CRC32C-macro-for-AVX512-simplify-code-so.patch application/octet-stream 7.6 KB
v5-0005-use-__attribute__-target-.-for-AVX-512-stuff.patch application/octet-stream 22.2 KB
v5-0006-Use-__attribute__-target-.-for-SSE42-and-AVX512-C.patch application/octet-stream 52.4 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2024-10-29 21:28:49 Re: Reorganize cache memory contexts
Previous Message Jacob Champion 2024-10-29 20:39:36 Re: [PoC] Federated Authn/z with OAUTHBEARER