[PATCH] x86: Don't set Prefer_No_AVX512 for processors with AVX512 and AVX-VNNI

Noah Goldstein goldstein.w.n@gmail.com
Tue Dec 7 07:47:02 GMT 2021


On Sun, Dec 5, 2021 at 9:23 PM H.J. Lu via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> Don't set Prefer_No_AVX512 on processors with AVX512 and AVX-VNNI since
> they won't lower CPU frequency when ZMM load and store instructions are
> used.
> ---
>  sysdeps/x86/cpu-features.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
> index be2498b2e7..311ade1f26 100644
> --- a/sysdeps/x86/cpu-features.c
> +++ b/sysdeps/x86/cpu-features.c
> @@ -538,8 +538,11 @@ init_cpu_features (struct cpu_features *cpu_features)
>           |= bit_arch_Prefer_No_VZEROUPPER;
>        else
>         {
> -         cpu_features->preferred[index_arch_Prefer_No_AVX512]
> -           |= bit_arch_Prefer_No_AVX512;
> +         /* Processors with AVX512 and AVX-VNNI won't lower CPU frequency
> +            when ZMM load and store instructions are used.  */
> +         if (!CPU_FEATURES_CPU_P (cpu_features, AVX_VNNI))
> +           cpu_features->preferred[index_arch_Prefer_No_AVX512]
> +             |= bit_arch_Prefer_No_AVX512;
>
>           /* Avoid RTM abort triggered by VZEROUPPER inside a
>              transactionally executing RTM region.  */
> --
> 2.33.1
>

Should we also do Rocket Lake?
According to Travis Downs at least downclocking is an issue there ether:
https://travisdowns.github.io/blog/2020/08/19/icl-avx512-freq.html#rocket-lake


More information about the Libc-alpha mailing list