《中国龙芯3A5000与性能计数器评测.docx》由会员分享,可在线阅读,更多相关《中国龙芯3A5000与性能计数器评测.docx(13页珍藏版)》请在第一文库网上搜索。
1、中国龙芯3A5000与性能计数器评测龙芯的3A5000代表了中国国内的另一项小努力。它实现了四个1A464内核,面向从台式机到服务器再到联式应用程序的所有应用。就像我们之前介绍的兆信KX-6640MA和PhytiumD2000一样,龙芯的芯片以低时钟速度运行。但与其他中国芯片不同的是,龙芯使用的是基于MIPS的ISA。之前的龙芯芯片兼容MIPS64,但该公司改用名为1oongarch的ISAo1oongarch共享MIPS的大部分语义,但使用不同的指令编码。龙芯还扩展了ISA以支持256位矢量执行。我们将在这里做一些简短的基准测试。这样做的目的不是测试大量应用程序以提供全面的性能图。Phoro
2、niX己经有一些结果,以防您想知道CPU通常位于何处。相反,我们正在运行几个测试,并使用我们可用的少量性能计数器来分析它们。我们将使用这些数据来帮助我们分析龙芯的架构。为了进行比较,我们将使用幽的Zen1架构,因为一些网站认为3A5000可能与Zen1相当。泰坦尼克号友好地设置了具有双通道则7-1800的RyZen4X系统2400T。AmpereA1tra,以来自出空Ie云的免费四核实例的形式,也将在这里展示。NeoverseN3内核可能与500OA中的内核更具可比性,因为它们同样不会达到高时鲤速度。高级性能7-Zip是一个高效的压缩程序,我们看到压缩从分析Firefox编译中生成的巨大文件需
3、要多长时间。执行的指令流几乎完全由标量整数运算组成。此处的结果无法与此站点上以前的结果直接比较,因为我们这次指定了16个线程。尽管我们将其限制为四个内核,但运行更多线程可以提高利用率和性能。7-ZipCompression(2.67GBET1Fi1e,16Threads)3A5000在绝对性能上无法与Zen1相提并论。但是,如果我们不让Zen1在一个内核中使用两个SMT线程,则每个时钟的性能具有竞争力。龙芯的实际性能更接近四核安培AItra设置。但即使在那里,它的表现也大大优于。同样,每个时钟的性能很接近,但2.5GHz是一个非常低的时钟速度,即使对于不优先考虑单线程性能的服务器芯片也是如此。
4、视频编码1ibx264是一个用于处理H264编解码器的免费软件库。尽管H264相当古老,但由于广泛的硬件解码支持和H265等较新编解码器的许可问题,H仍然很受欢迎。在这里,我们正在转码守望先锋游戏玩法的短片,使用“非常慢”预设来优先考虑质量。毕竟,如果您不关心质量并且想要最快的编码,您只需使用GPU的硬件编码器。x264_8_cwe1ght-w16node1asejse?;XvTdrep1.h$xr1,$r*8,(2)xv1dr*p1.hSXre,r8,()cee0xr4jSxr1xvna1.hSxr3,xr3,xvaaxi.hC464xvssr1n1.bu.hSxr4,xr3,e82e3xv
5、pri.dSx3.x4483484xvprai.dJxr4,xr4,1JMJCc4ee3vst$vr3,$r4.vstx$vr4,$Z,$r5C18e6a1s1.d$r6t$r7,$r6.C1a4a1s1.dSr4,Sr5.Sr4,13644ebff929addi.w$r9t$r9,()ffb889bit5rW,-()4ceee2jir1$re,ir1.Adi$re,$re.1364SCand1一些从1OOngarCh1ibx264中反汇编的代码,显示了使用“xr”256位1ASX矢量寄存器,以及“辽”256位1SX寄存器此测试中执行的指令流包含高百分比的向量指令。1OOngSOn使用内部函数
6、在其1ibx264的分布式版本中添加了1SX和1ASX支持。这非常好,因为尝试仅使用编译器生成的代码进行视频编码或其他计算繁重的任务将导致性能极差。Iibx2644KEncode,verys1owpreset,erf24Ryzen18X,4c8t(1CCX)1.94Rze18X,4c4t(1CCX)1.68AmpereAtra4c1.121gson3A5O0.960.00.51.01.52.02.5FramesPerSecond不幸的是,性能并不出色。依赖纯C代码通常会导致性能降低个数量级。值得庆幸的是,龙芯避免了这种情况。但3A5000与ZCn1相比表现不佳。它也无法与四核安培A1tra相匹
7、配。考虑到这两个芯片都有128位执行单元,这是一个糟糕的表现。至少在支持AVX2的x86芯片上,此测试中执行的指令中有10%以上是256位的。Zen1确实支持AVX2,但将256位指令解码为两个微操作。安培A1tra当然仅限于128位NEON指令。Zen1和NeoverseN1都不以强大的矢量性能而闻名,但都击败了3A5000。指令计数和IPC性能计数器让我们跟踪很多事件,其中最重要的事件之一是停用指令的数量。在无序执行的CPU中,指令停用是指内核提交指令的结果并使其可见(换句话说,已完成执行并通过所有必需的检查)。我们在这里不是使用熟悉的ISA测试CPUo如果ISA有影响,一个迹象是指令计数
8、的巨大差异。7-ZipCompression(2.67GBET1Fi1e,16Threads)使用7-Zip,指令数差异小于5%0很好。没有人会执行更多的指令来完成工作。IPC方面,龙芯做得相当不错。IPC与每时钟性能不同,尤其是在使用不同的ISA或ISA扩展时。但在此压缩基准测试中,指令计数具有可比性,因此IPC与每个时钟的性能密切相关。在这种情况下,3A5000的主要弱点归结为其非常低的时钟速度。Iibx264是一个不同的故事。尽管有1AVX支持,但35000必须处理12%到23%的指令才能完成相同的工作。ISA不仅仅是扩展,而不仅仅是矢量宽度。也许1AVX缺少NEON和AVX2的一些专业
9、指令。我们没有完整的1VX和1AVX指令列表,所以这只是一个猜测。同样,龙芯的IPC相当不错。但与7-Zip机箱不同的是,3A5000执行了更多指令来完成工作。这意味着每个时钟的性能明显低于Zen0前端:分支预测分支预测的准确性很重要。所有三个测试的CPU的预测准确性非常相似。即使是Zen1在加载两个SMT线程时也不会受到太大影响。但是,3A5000每条指令遭受的误预测更多,这意味着它比这里的其他CPU更容易遭受错误预测处罚。虽然它的分支预测器似乎做得很好,但1oongarch指令流的17.7%由分支组成,而x15-1为86.64%,16位迺为1.64%0AmpereAVe4c97.44%Am
10、pereAtra4c1SoRyZeniaOOX.44tCCX)IooncsonMSOOO1S61oornIASOOORyxenIa(XU,4c4t(1CCX)1J7RV1enIeOoXe4cSt(1CCX)9650%RyZen10X.4cSt(1(XX)21592、%、98%100K1MitprfdictedBnnchw/BranchesMsp0dctciBrnchwP*r101rttoos(MPKI)在视频编码测试中,龙芯稍稍落后。Zen1和Ne。VerSeN1的分支预测因子在此测试中表现更好,尽管差距并不大。在精度方面,当AMD的核心必须处理两个线程时,3A5000接近ZenI0龙芯确实有
11、相当的每条指令的错误预测率,但这有点红鲜鱼。3A5000执行的指令比Zen1多得多,以完成工作。所以,这意味着龙芯正在处理分支之间的更多指令。所有三个CPU的执行分支计数相差不到10%(尽管有趣的是,龙芯的执行分支数最高,为1.2万亿,而Zen1和AmpereA1tra分别为1.1和16.1万亿)。前端:指令提取3A5000具有64KB、4路设置关联11指令缓存,有助于加快指令交付速度。NeoverseN1和Zen1也有不错的64KB11指令缓存。在7-Zip上,它足以容纳“热”指令足迹。事实上,在此测试中,Zen1的微操作缓存提供了管道微操作的85%以上,这表明7-Zip的指令占用空间非常小
12、。IMEaox.ya(22)Tty*nao.44t(XcoqiRVMCocH,4ck(1cooRyteA10A,4cnUOO,4c1(1OOQ9SN7%AinpereAtrtfcaorgon5A5ooo012S4Si7MHpredictedBrsncheiPerIOOoInftrvctMm(I在所有三个经过测试的CPU中,每条指令的未命中数都非常低。对于龙芯来说,它特别低,这很好,因为3A5000在必须从12获取代码时就没有那么好了。但是对于每个人低于1MPKI的人来说,这无论如何都不是一个很大的因素。Iibx2644KEncode,VerySIoWpreset,erf24IibX2644KE
13、ncode,VeryS心Wpreset,erf241ibx264也有很高的11i命中率,尽管我们看到所有三个CPU上的11i未命中率更高。龙芯现在遭受的痛苦更大,尽管2MPKI仍然不是特别令人担忧。后端:11D命中率这里测试的三个CPU在数据方面有更多的差异。AMD的Zen架构具有相对较小的32KB、8路集关联11Do龙芯的3A5000和NeoVerSeNI都具有更大的64KB,4路11D。在7-Zip中,龙芯的11D表现出人意料地差。根据性能计数器,11D命中率要低得多。NeoverseN1具有最佳的11D命中率,即使具有类似的缓存几何形状。N1也击败了Zen1的11D命中率,因此关联性较小
14、的11D应该更好。也许龙芯没有一个好的替换策略,或者经常积极地预取和踢出有用的数据。7-ZipCompression(2.67GBET1Fi1e,16Threads)对于7-Zip,每条指令的未命中数在很大程度上讲述了同样的故事,因为执行的指令计数相似。龙芯的11I)遭遇了很多失误。在1ibx264中,龙芯的表现稍好一些。11D命中率仍然不是它应该考虑其容量优势的地方,它仍然无法赶上Zen。但是,这也不太远。Iibx2644KEncode,verys1owpreset,erf241ib2644KEncode,verys1owpreset,erf24AmpefeAtrtic9686Ryzen180QX,44t(1CCX)9670*1OOfWSOn3A5O9594%I1yjen1OQX,4cfc1OCX)95S1K90%97%94%96%98%100%11DHftrat