Re: Popcount optimization using AVX512
От | Nathan Bossart |
---|---|
Тема | Re: Popcount optimization using AVX512 |
Дата | |
Msg-id | 20240329191312.GA1411904@nathanxps13 обсуждение исходный текст |
Ответ на | RE: Popcount optimization using AVX512 ("Amonson, Paul D" <paul.d.amonson@intel.com>) |
Ответы |
Re: Popcount optimization using AVX512
|
Список | pgsql-hackers |
Okay, here is a slightly different approach that I've dubbed the "maximum assumption" approach. In short, I wanted to see how much we could simplify the patch by making all possibly-reasonable assumptions about the compiler and CPU. These include: * If the compiler understands AVX512 intrinsics, we assume that it also knows about the required CPUID and XGETBV intrinsics, and we assume that the conditions for TRY_POPCNT_FAST are true. * If this is x86_64, CPUID will be supported by the CPU. * If CPUID indicates AVX512 POPCNT support, the CPU also supports XGETBV. Do any of these assumptions seem unreasonable or unlikely to be true for all practical purposes? I don't mind adding back some or all of the configure/runtime checks if they seem necessary. I guess the real test will be the buildfarm... Another big change in this version is that I've moved pg_popcount_avx512_available() to its own file so that we only compile pg_popcount_avx512() with the special compiler flags. This is just an oversight in previous versions. Finally, I've modified the build scripts so that the AVX512 popcount stuff is conditionally built based on the configure checks for both autoconf/meson. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
Вложения
В списке pgsql-hackers по дате отправления: