Intel Demonstrates Up To 48% Improvement For AVX-512 Optimized PostgreSQL
([Intel] 4 Hours Ago
AVX-512 + PostgreSQL)
- Reference: 0001491115
- News link: https://www.phoronix.com/news/Intel-Bit-Count-AVX-512-Postgre
- Source link:
With the upcoming PostgreSQL 17 database server release there is some initial [1]AVX-512 optimizations that are looking quite nice according to Intel's findings.
Since earlier this year there's been a [2]pg_popcount() optimized for AVX-512 :
"Optimize pg_popcount() with AVX-512 instructions.
Presently, pg_popcount() processes data in 32-bit or 64-bit chunks when possible. Newer hardware that supports AVX-512 instructions can use 512-bit chunks, which provides a nice speedup, especially for larger buffers. This commit introduces the infrastructure required to detect compiler and CPU support for the required AVX-512 intrinsic functions, and it adds a new pg_popcount() implementation that uses these functions. If CPU support for this optimized implementation is detected at runtime, a function pointer is updated so that it is used by subsequent calls to pg_popcount()."
Intel has published a technical paper exploring that PostgreSQL AVX-512 optimized pop count implementation. Intel engineers found as much as a 46~48% performance improvement with PostgreSQL's bit_count() function. Here is the Intel finding over AVX-512 gains for PostgreSQL bit counting on their Xeon processors on-premise and in the cloud:
Those wanting to learn more about Intel's findings around this initial AVX-512 usage for PostgreSQL can find the paper on [3]Intel.com .
In case you missed it PostgreSQL this summer also rolled out [4]up to 4x query performance with SIMD-optimized JSON escaping .
Separately there is also a [5]proposal from Intel for AVX-512 CRC32C usage within PostgreSQL.
It's great seeing continued new areas where AVX-512 is paying nice dividends for performance from [6]speedy JSON parsing to databases.
PostgrSQL 17 with this AVX-512 bit counting and [7]many other new features is currently up to its release candidate phase. PostgreSQL 17.0 stable should be out as soon as later this month.
[1] https://www.phoronix.com/search/AVX-512
[2] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=792752a
[3] https://www.intel.com/content/www/us/en/developer/articles/news/accelerate-postgresql-performance-intel-avx-512.html
[4] https://www.phoronix.com/news/PostgreSQL-Opt-JSON-Esc-SIMD
[5] https://www.postgresql.org/message-id/BL1PR11MB530401FA7E9B1CA432CF9DC3DC192%40BL1PR11MB5304.namprd11.prod.outlook.com
[6] https://www.phoronix.com/review/simdjson-avx-512
[7] https://www.postgresql.org/docs/17/release-17.html
Since earlier this year there's been a [2]pg_popcount() optimized for AVX-512 :
"Optimize pg_popcount() with AVX-512 instructions.
Presently, pg_popcount() processes data in 32-bit or 64-bit chunks when possible. Newer hardware that supports AVX-512 instructions can use 512-bit chunks, which provides a nice speedup, especially for larger buffers. This commit introduces the infrastructure required to detect compiler and CPU support for the required AVX-512 intrinsic functions, and it adds a new pg_popcount() implementation that uses these functions. If CPU support for this optimized implementation is detected at runtime, a function pointer is updated so that it is used by subsequent calls to pg_popcount()."
Intel has published a technical paper exploring that PostgreSQL AVX-512 optimized pop count implementation. Intel engineers found as much as a 46~48% performance improvement with PostgreSQL's bit_count() function. Here is the Intel finding over AVX-512 gains for PostgreSQL bit counting on their Xeon processors on-premise and in the cloud:
Those wanting to learn more about Intel's findings around this initial AVX-512 usage for PostgreSQL can find the paper on [3]Intel.com .
In case you missed it PostgreSQL this summer also rolled out [4]up to 4x query performance with SIMD-optimized JSON escaping .
Separately there is also a [5]proposal from Intel for AVX-512 CRC32C usage within PostgreSQL.
It's great seeing continued new areas where AVX-512 is paying nice dividends for performance from [6]speedy JSON parsing to databases.
PostgrSQL 17 with this AVX-512 bit counting and [7]many other new features is currently up to its release candidate phase. PostgreSQL 17.0 stable should be out as soon as later this month.
[1] https://www.phoronix.com/search/AVX-512
[2] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=792752a
[3] https://www.intel.com/content/www/us/en/developer/articles/news/accelerate-postgresql-performance-intel-avx-512.html
[4] https://www.phoronix.com/news/PostgreSQL-Opt-JSON-Esc-SIMD
[5] https://www.postgresql.org/message-id/BL1PR11MB530401FA7E9B1CA432CF9DC3DC192%40BL1PR11MB5304.namprd11.prod.outlook.com
[6] https://www.phoronix.com/review/simdjson-avx-512
[7] https://www.postgresql.org/docs/17/release-17.html
emansom