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

From: "Amonson, Paul D" <paul(dot)d(dot)amonson(at)intel(dot)com>
To: "Amonson, Paul D" <paul(dot)d(dot)amonson(at)intel(dot)com>, Bruce Momjian <bruce(at)momjian(dot)us>
Cc: 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>, Nathan Bossart <nathandbossart(at)gmail(dot)com>, "Shankaran, Akash" <akash(dot)shankaran(at)intel(dot)com>
Subject: RE: Proposal for Updating CRC32C with AVX-512 Algorithm.
Date: 2024-08-22 15:14:32
Message-ID: BL1PR11MB53040019FB63F7E9C40E9E5ADC8F2@BL1PR11MB5304.namprd11.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Here are the latest patches for the accelerated CRC32c algorithm. I did the following to create these refactored patches:

1) From the main branch I moved all x86_64 hardware checks from the various locations into a single location. I did not move any ARM tests as I would have no way to test them for validity. However, an ARM section could be added to my consolidated source files.

Once I had this working and verified that there were no regressions....

2) I ported the AVX-512 crc32c code as a second patch adding the new HW checks into the previously created file for HW checks from patch 0001.

I reran all the basic tests again to make sure that the performance numbers were within the margin of error when compared to my original finding. This step showed similar numbers (see origin post) around 1.45X on average. I also made sure that if compiled with the AVX-512 features and ran on HW without these features the Postgres server still worked without throwing illegal instruction exceptions.

Please review the attached patches.

Thanks,
Paul

Attachment Content-Type Size
0001-v2-Refactor-Move-all-HW-checks-to-common-file.patch application/octet-stream 16.3 KB
0002-v2-Feat-Add-support-for-the-SIMD-AVX-512-crc32c-algorit.patch application/octet-stream 40.7 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2024-08-22 15:16:00 Re: Usage of ProcessConfigfile in SIGHUP_Handler
Previous Message Alvaro Herrera 2024-08-22 14:36:38 Re: MultiXact\SLRU buffers configuration