Fix code for probing availability of AVX-512.
Nathan Bossart <nathan@postgresql.org>
Fix code for probing availability of AVX-512. This commit fixes a few things: * Instead of checking for CPU support of the "xsave" extension, we need to check for OS support of XGETBV instructions via the "osxsave" flag. * We must check that additional XCR0 bits are set to be sure the ZMM registers are fully enabled. * We should use the recommended ordering of steps. Specifically, we need to check that the ZMM registers are enabled prior to checking for AVX-512 via CPUID. In passing, split this code into separate functions to improve readability. Reported-by: Andrew Kane Reviewed-by: Akash Shankaran, Raghuveer Devulapalli Discussion: https://postgr.es/m/20240418024459.GA3385227%40nathanxps13
Files
| Path | Change | +/− |
|---|---|---|
| src/port/pg_popcount_avx512_choose.c | modified | +47 −33 |
Discussion
- Popcount optimization using AVX512 173 messages · 2023-11-02 → 2024-11-07