Defines
-
alcpu_is_amd() alci_is_amd(ALCI_CURRENT_CPU_NUM)#
-
alcpu_arch_is_zen() alci_arch_is_zen(ALCI_CURRENT_CPU_NUM)#
-
alcpu_arch_is_zen2() alci_arch_is_zen2(ALCI_CURRENT_CPU_NUM)#
-
alcpu_arch_is_zen3() alci_arch_is_zen3(ALCI_CURRENT_CPU_NUM)#
-
alcpu_arch_is_zen4() alci_arch_is_zen4(ALCI_CURRENT_CPU_NUM)#
-
alcpu_arch_is_zen5() alci_arch_is_zen5(ALCI_CURRENT_CPU_NUM)#
-
alcpu_flag_is_available(flag) alci_cpu_has_flag(ALCI_CURRENT_CPU_NUM, flag)#
Functions
-
bool alci_is_amd(au_cpu_num_t cpu_num)#
Allows caller to check if the processor vendor is AMD.
This function will work on all AMD processors.
AOCL 5.2
alci_is_amd()
Skylake
False
Bulldozer
True
Zen1/1+
True
Zen2
True
Zen3
True
Zen4
True
Zen[X>4]
True
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_is_amd instead.
- Parameters:
cpu_num – Any valid core number starting from 0.
- Returns:
1/true if processor vendor is AMD.
-
au_error_t alci_cpu_get_vendor(au_cpu_num_t cpu_num, char *arr, size_t size)#
Get Cpu vendor info.
arr [VendorID,FamilyID, ModelID, SteppingID, UarchID], is a set of new line separated values.
User must provide a buffer of size >= 16 bytes to store the vendor info
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_get_vendor instead.
- Parameters:
cpu_num – [in] Any valid core number starting from 0.
arr – [out] Vendor info array containing newline-separated values: VendorID, FamilyID, ModelID, SteppingID, UarchID
size – [in] Size of Vendor info array in bytes.
- Returns:
Boolean, true if success.
-
bool alci_arch_is_zen(au_cpu_num_t cpu_num)#
Allows caller to check if the processor arch is ZEN.
This function is only meant for Zen based processors.
AOCL 5.2
alci_arch_is_zen()
Skylake
False
Bulldozer
False
Zen1/1+
True
Zen2
True
Zen[3,4,5]
True
Zen[X>5]
True
AOCL 4.2
alci_arch_is_zen()
Skylake
False
Bulldozer
False
Zen1/1+
True
Zen2
False
Zen3
False
Zen[X>3]
False
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_arch_is_zen instead.
- Parameters:
cpu_num – Any valid core number starting from 0.
- Returns:
1/true if processor architecture is AMD ZEN.
-
bool alci_arch_is_zen2(au_cpu_num_t cpu_num)#
Allows caller to check if the processor arch is ZEN2.
This function is only meant for Zen based processors.
AOCL 5.2
alci_arch_is_zen2()
Skylake
False
Bulldozer
False
Zen1/1+
False
Zen2
True
Zen[3,4,5]
True
Zen[X>5]
True
AOCL 4.2
alci_arch_is_zen2()
Skylake
False
Bulldozer
False
Zen1/1+
False
Zen2
True
Zen3
False
Zen[X>3]
False
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_arch_is_zen2 instead.
- Parameters:
cpu_num – Any valid core number starting from 0.
- Returns:
1/true if processor architecture is AMD ZEN2.
-
bool alci_arch_is_zen3(au_cpu_num_t cpu_num)#
Allows caller to check if the processor arch is ZEN3.
This function is only meant for Zen based processors.
AOCL 5.2
alci_arch_is_zen3()
Skylake
False
Bulldozer
False
Zen1/1+
False
Zen2
False
Zen[3,4,5]
True
Zen[X>5]
True
AOCL 4.2
alci_arch_is_zen3()
Skylake
False
Bulldozer
False
Zen1/1+
False
Zen2
False
Zen3
True
Zen4
False
Zen[X>4]
False
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_arch_is_zen3 instead.
- Parameters:
cpu_num – Any valid core number starting from 0.
- Returns:
1/true if processor architecture is AMD ZEN3.
-
bool alci_arch_is_zen4(au_cpu_num_t cpu_num)#
Allows caller to check if the processor arch is ZEN4.
This function is only meant for Zen based processors.
AOCL 5.2
alci_arch_is_zen4()
Skylake
False
Bulldozer
False
Zen[X<3]
False
Zen3
False
Zen[4,5]
True
Zen[X>5]
True
AOCL 4.2
alci_arch_is_zen4()
Skylake
False
Bulldozer
False
Zen[X<3]
False
Zen3
False
Zen4
True
Zen5
True
Zen[X>5]
True
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_arch_is_zen4 instead.
- Parameters:
cpu_num – Any valid core number starting from 0.
- Returns:
1/true if processor architecture is AMD ZEN4.
-
bool alci_arch_is_zen5(au_cpu_num_t cpu_num)#
Allows caller to check if the processor arch is ZEN5.
This function is only meant for Zen based processors.
AOCL 5.2
alci_arch_is_zen5()
Skylake
False
Bulldozer
False
Zen[X<4]
False
Zen4
False
Zen5
True
Zen[X>5]
True
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_arch_is_zen5 instead.
- Parameters:
cpu_num – Any valid core number starting from 0.
- Returns:
1/true if processor architecture is AMD ZEN5.
-
bool alci_cpu_has_flag(au_cpu_num_t cpu_num, au_cpu_flag_t flag)#
Allows caller to check if the flag is available.
List of supported flags: sse3, pclmulqdq, dtes64, monitor, dscpl, vmx, smx, est, tm2, ssse3, cid, fma, cx16, xtpr, pdcm, pcid, dca, sse4_1, sse4_2, x2apic, movbe, popcnt, tsc_deadline, aes, xsave, osxsave, avx, f16c, rdrand, hypervisor, fpu, vme, de, pse, tsc, msr, pae, mce, cx8, apic, sep, mtrr, pge, mca, cmov, pat, pse36, pn, clflush, ds, acpi, mmx, fxsr, sse, sse2, ss, ht, tm, ia64, pbe, arat, fsgsbase, tsc_adjust, bmi1, hle, avx2, smep, bmi2, erms, invpcid, rtm, mpx, avx512f, avx512dq, rdseed, adx, smap, avx512ifma, pcommit, clflushopt, clwb, avx512pf, avx512er, avx512cd, sha_ni, avx512bw, avx512vl, avx512vbmi, umip, pku, ospke, avx512_vpopcntdq, la57, rdpid, avx512_4vnniw, avx512_4fmaps, avx512_bf16, avxvnni, xsaveopt, xsavec, xgetbv1, xsaves, lahf_lm, cmp_legacy, svm, extapic, cr8legacy, abm, sse4a, misalignsse, _3dnowprefetch, osvw, ibs, xop, skinit, wdt, lwp, fma4, tce, nodeid_msr, tbm, topoext, perfctr_core, perfctr_nb, syscall, nxxd, mmxext, fxsr_opt, pdpe1gb, rdtscp, lmi64, _3dnowext, _3dnow, invtsc, npt, lbrv, svm_lock, nrip_save, tsc_scale, vmcb_clean, flushbyasid, decodeassists, pause_filter, pfthreshold, xstore, xstore_en, xcrypt, xcrypt_en, ace2, ace2_en, phe, phe_en, pmm, pmm_en, vaes, vpclmulqdq, avx512_vnni, avx512_bitalg, avx512vbmi2, movdiri, movdir64b, avx512_vpintersect, x2avic
Warning
If cpu_num is not “AU_CURRENT_CPU_NUM”, then calling this function will result in thread migration to the selected core.
Warning
This api is deprecated. Use au_cpuid_has_flag instead.
- Parameters:
cpu_num – Any valid core number starting from 0.
flag – CPU feature flag.
- Returns:
1/true if feature is available.