vppinfra: Multiarch support for AMD EPYC processors
Type: feature - Added multiarch support for AMD Zen architectures Change-Id: I65d3fe94b6cc622ebecbe1ac803efa674e87c87a Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
This commit is contained in:

committed by
Damjan Marion

parent
b1c5c3fc34
commit
206592bb73
@ -136,6 +136,11 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
|
||||
OFF
|
||||
)
|
||||
|
||||
add_vpp_march_variant(znver3
|
||||
FLAGS -march=znver3 -mtune=znver3 -mprefer-vector-width=256
|
||||
OFF
|
||||
)
|
||||
|
||||
if (GNU_ASSEMBLER_AVX512_BUG)
|
||||
message(WARNING "AVX-512 multiarch variant(s) disabled due to GNU Assembler bug")
|
||||
else()
|
||||
@ -151,6 +156,11 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
|
||||
FLAGS -march=sapphirerapids -mtune=sapphirerapids -mprefer-vector-width=512
|
||||
OFF
|
||||
)
|
||||
|
||||
add_vpp_march_variant(znver4
|
||||
FLAGS -march=znver4 -mtune=znver4 -mprefer-vector-width=512
|
||||
OFF
|
||||
)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
|
||||
set(VPP_DEFAULT_MARCH_FLAGS -march=armv8-a+crc)
|
||||
|
@ -27,7 +27,9 @@
|
||||
_ (skx, "Intel Skylake (server) / Cascade Lake") \
|
||||
_ (icl, "Intel Ice Lake") \
|
||||
_ (adl, "Intel Alder Lake") \
|
||||
_ (spr, "Intel Sapphire Rapids")
|
||||
_ (spr, "Intel Sapphire Rapids") \
|
||||
_ (znver3, "AMD Milan") \
|
||||
_ (znver4, "AMD Genoa")
|
||||
#elif defined(__aarch64__)
|
||||
#define foreach_march_variant \
|
||||
_ (octeontx2, "Marvell Octeon TX2") \
|
||||
@ -147,7 +149,8 @@ _CLIB_MARCH_FN_REGISTRATION(fn)
|
||||
_ (movdir64b, 7, ecx, 28) \
|
||||
_ (enqcmd, 7, ecx, 29) \
|
||||
_ (avx512_fp16, 7, edx, 23) \
|
||||
_ (invariant_tsc, 0x80000007, edx, 8)
|
||||
_ (invariant_tsc, 0x80000007, edx, 8) \
|
||||
_ (monitorx, 0x80000001, ecx, 29)
|
||||
|
||||
#define foreach_aarch64_flags \
|
||||
_ (fp, 0) \
|
||||
@ -300,6 +303,22 @@ clib_cpu_march_priority_hsw ()
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
clib_cpu_march_priority_znver4 ()
|
||||
{
|
||||
if (clib_cpu_supports_avx512_bitalg () && clib_cpu_supports_monitorx ())
|
||||
return 250;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
clib_cpu_march_priority_znver3 ()
|
||||
{
|
||||
if (clib_cpu_supports_avx2 () && clib_cpu_supports_monitorx ())
|
||||
return 70;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#define X86_CPU_ARCH_PERF_FUNC 0xA
|
||||
|
||||
static inline int
|
||||
|
Reference in New Issue
Block a user