2.5 CPU指令集对性能的提升

以Intel的Xeon系列为例,每一代新的CPU都会加入新的指令集,比如Sandybridge、Haswell、Skylake开始分别引入AVX、AVX2、AVX512指令集、Westmere开始陆续引入的AES NI指令集等。它们都是为了显著提升运算性能而引入的。AES NI对性能的提升,我们在之前的非典型性实验中已经看到,最多有100%的性能提升;而在典型性的实验中,甚至有3到10倍的性能提升。

关于AVX2相对于SSE4的性能提升,我们也通过实验来说明。有AVX2支持的客户机的SPECCPU2006的数据我们在10.2.4节已经获得。

这里我们再创建一个没有AVX2支持,而只有老的SSE4.2指令客户机(在同样的硬件平台上,但给客户机老的CPU模型“-cpu Westmere”),再运行一次SPECCPU2006,对比一下。宿主机环境同10.2.2节。

下面是启动客户机的命令。

qemu-system-x86_64 -cpu Westmere -enable-kvm -smp cpus=4,cores=4,sockets=1 -m 16G -drive file=./rhel7.img,format=raw,if=virtio,media=disk -drive file=./raw_disk.img,format=raw,if=virtio,media=disk -device virtio-net-pci,netdev=nic0 -netdev bridge,id=nic0,br=virbr0 -daemonize -name perf_test -display vnc=:1

宿主机Broadwell CPU)里是支持AVX2指令集的。

[root@kvm-host cpu2006]# cat /proc/cpuinfo | grep flags | uniq
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts

而在客户机里,因为使用了“-cpu Westmere”,它只有Westmere那一代CPU支持的指令集,有sse4_2,但没有更新的AVX2指令集。那么可以预期它的性能是要差些的,如图10-16所示。

[root@kvm-guest ~]# cat /proc/cpuinfo | grep flags | uniq
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl xtopology pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm arat

2.5 CPU指令集对性能的提升_第1张图片

从图10-17、图10-18可以看到,AVX2新指令对于老的SSE4.2,SPECCPU2006整型运算和浮点运算总分分别有3.4%和13.7%的提升。

2.5 CPU指令集对性能的提升_第2张图片

2.5 CPU指令集对性能的提升_第3张图片

你可能感兴趣的:(2.5 CPU指令集对性能的提升)