通过lscpu拿到cpu flags字段,可以对比指令之间的差异。Cpu flags的定义,可以参考Linux内核的头文件:cpufeatures.h « asm « include « x86 « arch - kernel/git/torvalds/linux.git - Linux kernel source tree
根据下表的对比,可以发现Hygon基于AMD Zen1,在加解密、安全防护、性能加速等方面是有指令缺失的。海光2代相比1代多出了cpb和ssbd两个指令集。
AMD EPYC 7401P(Zen1) | Hygon C86 7185 | Hygon C86 7285 | 差异 |
fpu | fpu | fpu | |
vme | vme | vme | |
de | de | de | |
pse | pse | pse | |
tsc | tsc | tsc | |
msr | msr | msr | |
pae | pae | pae | |
mce | mce | mce | |
cx8 | cx8 | cx8 | |
apic | apic | apic | |
sep | sep | sep | |
mtrr | mtrr | mtrr | |
pge | pge | pge | |
mca | mca | mca | |
cmov | cmov | cmov | |
pat | pat | pat | |
pse36 | pse36 | pse36 | |
clflush | clflush | clflush | |
mmx | mmx | mmx | |
fxsr | fxsr | fxsr | |
sse | sse | sse | |
sse2 | sse2 | sse2 | |
ht | ht | ht | |
syscall | syscall | syscall | |
nx | nx | nx | |
mmxext | mmxext | mmxext | |
fxsr_opt | fxsr_opt | fxsr_opt | |
pdpe1gb | pdpe1gb | pdpe1gb | |
rdtscp | rdtscp | rdtscp | |
lm | lm | lm | |
constant_tsc | constant_tsc | constant_tsc | |
rep_good | rep_good | rep_good | |
nopl | nopl | nopl | |
nonstop_tsc | nonstop_tsc | nonstop_tsc | |
cpuid | cpuid | cpuid | |
extd_apicid | extd_apicid | extd_apicid | |
amd_dcm | amd_dcm | amd_dcm | |
aperfmperf | aperfmperf | aperfmperf | |
pni | pni | pni | |
pclmulqdq | PCLMULQDQ指令可以高效地执行无进位乘法,可应用于加速AES加密算法的执行. | ||
monitor | monitor | monitor | |
ssse3 | ssse3 | ssse3 | |
fma | fma | fma | |
cx16 | cx16 | cx16 | |
sse4_1 | sse4_1 | sse4_1 | |
sse4_2 | sse4_2 | sse4_2 | |
movbe | movbe | movbe | |
popcnt | popcnt | popcnt | |
aes | 高级加密标准指令集,用于提升AES加密和解密速度 | ||
xsave | xsave | xsave | |
avx | avx | avx | |
f16c | f16c | f16c | |
rdrand | rdrand | rdrand | |
lahf_lm | lahf_lm | lahf_lm | |
cmp_legacy | cmp_legacy | cmp_legacy | |
svm | svm | svm | |
extapic | extapic | extapic | |
cr8_legacy | cr8_legacy | cr8_legacy | |
abm | abm | abm | |
sse4a | sse4a | sse4a | |
misalignsse | misalignsse | misalignsse | |
3dnowprefetch | 3dnowprefetch | 3dnowprefetch | |
osvw | osvw | osvw | |
skinit | skinit | skinit | |
wdt | wdt | wdt | |
tce | tce | tce | |
topoext | topoext | topoext | |
perfctr_core | perfctr_core | perfctr_core | |
perfctr_nb | perfctr_nb | perfctr_nb | |
bpext | bpext | bpext | |
perfctr_llc | perfctr_llc | perfctr_llc | |
mwaitx | mwaitx | mwaitx | |
cpb | cpb | AMD Core Performance Boost,一种动态加速技术,可以根据负载需求自动提高处理器的频率,以提供更好的性能。类似于Inte睿频技术。 | |
hw_pstate | hw_pstate | hw_pstate | |
sme | AMD Secure Memory Encryption,主内存加密, | ||
ssbd | ssbd | Speculative Store Bypass Disable,防止幽灵漏洞 | |
sev | 支持加密虚拟机 | ||
ibpb | ibpb | ibpb | |
vmmcall | vmmcall | vmmcall | |
fsgsbase | fsgsbase | fsgsbase | |
bmi1 | bmi1 | bmi1 | |
avx2 | avx2 | avx2 | |
smep | smep | smep | |
bmi2 | bmi2 | bmi2 | |
rdseed | rdseed | rdseed | |
adx | adx | adx | |
smap | smap | smap | |
clflushopt | clflushopt | clflushopt | |
sha_ni | SHA1/SHA256 Instruction Extensions,用于提升SHA1/SHA256加解密速度 | ||
xsaveopt | xsaveopt | xsaveopt | |
xsavec | xsavec | xsavec | |
xgetbv1 | xgetbv1 | xgetbv1 | |
xsaves | xsaves | xsaves | |
clzero | clzero | clzero | |
irperf | irperf | irperf | |
xsaveerptr | xsaveerptr | xsaveerptr | |
arat | arat | arat | |
npt | npt | npt | |
lbrv | lbrv | lbrv | |
svm_lock | svm_lock | svm_lock | |
nrip_save | nrip_save | nrip_save | |
tsc_scale | tsc_scale | tsc_scale | |
vmcb_clean | vmcb_clean | vmcb_clean | |
flushbyasid | flushbyasid | flushbyasid | |
decodeassists | decodeassists | decodeassists | |
pausefilter | pausefilter | pausefilter | |
pfthreshold | pfthreshold | pfthreshold | |
avic | avic | avic | |
v_vmsave_vmload | v_vmsave_vmload | v_vmsave_vmload | |
vgif | vgif | vgif | |
overflow_recov | overflow_recov | overflow_recov | |
succor | succor | succor | |
smca | smca | smca |
参考公开资料:
2 X Hygon C86 7185 32-core Benchmarks, Linux Performance - OpenBenchmarking.org
2 X Hygon C86 7285 32-core Benchmarks, Linux Performance - OpenBenchmarking.org