[PATCH] Add Zhaoxin x86 processor support
DylanFan-oc
DylanFan-oc at zhaoxin.com
Thu Apr 8 12:32:11 UTC 2021
Hi Torbjörn,
>(1) Why do you set up paths for zen (as a fallback)?
>Doing that seems wrong unless all these 3 CPUs support every zen
>instruction. Do they?
>Also, passing k8 to the compiler adn choosing zen asm code makes very
>little sense to me. If zen makes sense for asm code, why does it not
>make sence for compiler-generated code?
>A more conservative strategy is to pick file-by-file from the desired
>x86_64 subdir. E.g., if mpn_mul_basecase from x86_64/foo runs great for
>the kx6000 CPU, do
>MULFUNC_PROLOGUE(mpn_mul_basecase)
>include_mpn(`x86_64/foo/mul_basecase.asm')
>in x86_64/kx6000/mul_basecase.asm.
>(At some point, providing specific asm code for these CPUs might be
>desirable, of course.)
I try to use paths for zen and k8 compiler parameter. This runs great in
test. I now realize that this is a wrong setup. I'm going to modify it with
the strategy you recommend.
>(2) Testing specific stepping.
>You check for stepping 0xE specifically. I assume the "nano" CPU has
>lower stepping values than 0xE, and Zhaoxin variants currently have
>exactly 0xE. It then feels more future-proof to check >= 0xE, as that
>would allow Zhaoxin to do stepping iterations without GMP silently
>falling back to "nano" for such steppings.
Right. Zhaoxin will do iterations by more model values. The "nano" CPU
and the "zxc" CPU have the same model (model=15), so I distinguish
between them by stepping.
Thanks
Dylan
More information about the gmp-devel
mailing list