Refactor and adding AVX-512 POPCNT support to PostgreSQL.(2 patches)

Edit
ID 4883
Title Refactor and adding AVX-512 POPCNT support to PostgreSQL.(2 patches)
Topic Refactoring
Created 2024-03-05 16:12:51
Last modified 2024-04-07 04:04:27 (7 months, 2 weeks ago)
Latest email 2024-11-07 20:40:32 (2 weeks ago)
Status
2024-07: Committed
Target version 17
Authors Nathan Bossart (bossartn), Paul Amonson (pamonson)
Reviewers Álvaro Herrera (alvherre), Tom Lane (tgl), Matthias van de Meent (mmeent), Andres Freund (andresfreund), Nathan Bossart (bossartn)Become reviewer
Committer Nathan Bossart (bossartn)
Links CFbot results (CirrusCI) CFbot GitHub
Checkout latest CFbot patchset Go to your local checkout of the PostgreSQL repository and run:
git remote add commitfest https://github.com/postgresql-cfbot/postgresql.git
git fetch commitfest cf/4883
git checkout commitfest/cf/4883
Emails
Popcount optimization using AVX512
First at 2023-11-02 14:22:10 by "Amonson, Paul D" <paul.d.amonson at intel.com>
Latest at 2024-11-07 20:40:32 by Nathan Bossart <nathandbossart at gmail.com>
Latest attachment (0001-fix-__attribute__-target-.-usage.patch) at 2024-11-07 20:32:09 from Nathan Bossart <nathandbossart at gmail.com>
    Attachment (0001-fix-__attribute__-target-.-usage.patch) at 2024-11-07 20:32:09 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v3-0001-use-__attribute__-target-.-for-AVX-512-stuff.patch) at 2024-11-07 02:26:47 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v2-0001-use-__attribute__-target-.-for-AVX-512-stuff.patch) at 2024-10-31 19:21:24 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v1-0001-use-__attribute__-target-.-for-AVX-512-stuff.patch) at 2024-10-16 21:04:04 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v3-0001-osxsave.patch) at 2024-04-18 21:59:02 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v2-0001-osxsave.patch) at 2024-04-18 21:01:58 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (osxsave.patch) at 2024-04-18 02:44:59 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v28-0001-Optimize-pg_popcount-with-AVX-512-instructions.patch) at 2024-04-06 19:41:01 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v27-0001-AVX512-popcount-support.patch) at 2024-04-05 15:38:11 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (avx512-peel-first-iteration.patch) at 2024-04-05 07:33:27 from Ants Aasma <ants.aasma at cybertec.at> (Patch: Yes)
    Attachment (v26-0001-AVX512-popcount-support.patch) at 2024-04-05 04:15:43 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v25-0001-AVX512-popcount-support.patch) at 2024-04-03 20:12:58 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v24-0001-AVX512-popcount-support.patch) at 2024-04-03 17:41:27 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v23-0001-inline-pg_popcount-for-small-numbers-of-bytes.patch) at 2024-04-03 02:09:14 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v22-0001-inline-pg_popcount-for-small-numbers-of-bytes.patch) at 2024-04-02 22:20:20 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v21-0001-inline-pg_popcount-for-small-numbers-of-bytes.patch) at 2024-04-02 22:01:32 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (avx512-popcnt-aligned-and-masked.patch) at 2024-04-02 20:30:39 from Ants Aasma <ants.aasma at cybertec.at> (Patch: Yes)
    Attachment (v20-0001-AVX512-popcount-support.patch) at 2024-04-02 15:53:01 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v19-0001-refactor-popcount-function-choosing.patch) at 2024-04-01 22:11:17 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (avx512-popcnt-masked-tail.patch) at 2024-04-01 21:11:59 from Ants Aasma <ants.aasma at cybertec.at> (Patch: Yes)
    Attachment (v18-0001-AVX512-popcount-support.patch) at 2024-04-01 01:17:08 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (avx512_popcnt.jpg) at 2024-03-30 20:03:29 from Nathan Bossart <nathandbossart at gmail.com> (Patch: No)
    Attachment (v17-0001-AVX512-popcount-support.patch) at 2024-03-30 03:22:09 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v16-0001-AVX512-popcount-support.patch) at 2024-03-29 19:13:12 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v15-0001-AVX512-popcount-support.patch) at 2024-03-29 15:59:40 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v14-0001-AVX512-popcount-support.patch) at 2024-03-28 21:38:54 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v13-0001-AVX512-popcount-support.patch) at 2024-03-27 22:00:10 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (v12-0001-Refactor-Split-pg_popcount-functions-into-multiple-f.patch) at 2024-03-25 15:06:16 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v12-0001-Refactor-Split-pg_popcount-functions-into-multiple-f.patch) at 2024-03-21 19:17:54 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v11-0001-Refactor-inlining-and-direct-calls-for-_slow-functio.patch) at 2024-03-20 14:23:55 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v10-0001-Refactor-inlining-and-direct-calls-for-_slow-functio.patch) at 2024-03-19 22:56:01 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v4-0001-inline-function-calls-in-pg_popcount-when-possibl.patch) at 2024-03-18 22:08:45 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (0001-inline-function-calls-in-pg_popcount-when-possible.patch) at 2024-03-18 17:53:50 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (0001-inline-function-calls-in-pg_popcount-when-possible.patch) at 2024-03-18 17:30:04 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (remove_indirect_func_call_in_pg_popcount.patch.txt) at 2024-03-17 20:56:32 from David Rowley <dgrowleyml at gmail.com> (Patch: Yes)
    Attachment (v8-0001-Refactor-POPCNT-code-refactored-for-future-accelerat.patch) at 2024-03-14 19:50:46 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v7-0001-Refactor-POPCNT.patch) at 2024-03-11 21:59:53 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v6-0001-Add-support-for-AVX512-implemented-POPCNT.patch) at 2024-03-05 16:31:15 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v5-0001-Add-support-for-AVX512-implemented-POPCNT.patch) at 2024-03-04 21:39:36 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v5-0001-Add-support-for-AVX512-implemented-POPCNT.patch) at 2024-02-27 20:46:06 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v4-0001-Add-support-for-AVX512-implemented-POPCNT.patch) at 2024-02-09 17:39:46 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (v3-0001-Add-support-for-AVX512-implemented-POPCNT.patch) at 2024-02-07 10:13:14 from Alvaro Herrera <alvherre at alvh.no-ip.org> (Patch: Yes)
    Attachment (Official-PostgreSQL-AVX-512-POPCNT.patch) at 2024-02-06 18:16:23 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: Yes)
    Attachment (perf-avx512-1.8mrows.svg) at 2024-01-25 05:43:41 from "Shankaran, Akash" <akash.shankaran at intel.com> (Patch: No)
    Attachment (proposed_popcnt.patch) at 2023-11-15 20:27:57 from "Shankaran, Akash" <akash.shankaran at intel.com> (Patch: Yes)
    Attachment (ifunc_test.patch) at 2023-11-07 20:14:41 from Nathan Bossart <nathandbossart at gmail.com> (Patch: Yes)
    Attachment (AVX512 Popcount Benefits.png) at 2023-11-02 14:22:10 from "Amonson, Paul D" <paul.d.amonson at intel.com> (Patch: No)
History
When Who What
2024-04-07 04:04:27 Nathan Bossart (bossartn) Closed in commitfest 2024-07 with status: Committed
2024-04-02 22:14:32 Nathan Bossart (bossartn) Changed authors to Nathan Bossart (bossartn), Paul Amonson (pamonson)
2024-04-01 01:17:22 Nathan Bossart (bossartn) New status: Ready for Committer
2024-03-25 15:10:00 Paul Amonson (pamonson) Changed name to Refactor and adding AVX-512 POPCNT support to PostgreSQL.(2 patches)
2024-03-11 21:15:09 Paul Amonson (pamonson) Changed topic to Refactoring
2024-03-11 21:15:09 Paul Amonson (pamonson) Changed name to Preliminary Refactor before adding AVX-512 POPCNT support to PostgreSQL.
2024-03-07 17:16:30 Nathan Bossart (bossartn) Changed committer to bossartn
2024-03-07 17:16:30 Nathan Bossart (bossartn) Changed targetversion to 17
2024-03-05 16:48:15 Noah Misch (nmisch) Removed nmisch from reviewers
2024-03-05 16:29:58 Paul Amonson (pamonson) Changed reviewers to Álvaro Herrera (alvherre), Tom Lane (tgl), Andres Freund (andresfreund), Noah Misch (nmisch), Nathan Bossart (bossartn), Matthias van de Meent (mmeent)
2024-03-05 16:29:58 Paul Amonson (pamonson) Changed authors to Paul Amonson (pamonson)
2024-03-05 16:29:58 Paul Amonson (pamonson) Changed targetversion to stable
2024-03-05 16:12:51 Paul Amonson (pamonson) Attached mail thread BL1PR11MB5304097DF7EA81D04C33F3D1DCA6A@BL1PR11MB5304.namprd11.prod.outlook.com
2024-03-05 16:12:51 Paul Amonson (pamonson) Created patch record
Edit