国产龙芯水平究竟如何(续)

《国产龙芯究竟水平如何》(原文)一文发布后,不少朋友对龙芯产生了一些新的问题,也对文章内容提出了一些看法与质疑。本篇《续》旨在解答大家的疑惑,并帮助外界更好的了解龙芯的真实现状。

国产龙芯水平究竟如何(续)

很多读者提到上篇文章并没有提及龙芯3B的浮点计算表现;只比较整数测试项目,忽略浮点方面的SPEC_fp测试集是对号称特别加强浮点性能的龙芯3B的不公。那么这里就介绍一下龙芯3B的浮点运算实际水平。

目前最新的龙芯3B-1500有8个核心,工作在1.2GHZ,1GHZ下理论双精度浮点运算能力128G Flops。作为对比,i7-4770的理论浮点性能是256G Flops,而早期的i7-980X只有80G Flops。

但需要注意的是上述数据均为理论值。真实的浮点运算应用中它们的表现又是如何呢?计算所公布了龙芯3B 1.2GHZ运行SPEC_fp 2000浮点测试集的成绩,该测试集考察处理器单线程浮点运算能力,我们来和两款较老的CPU对比一下(ARM芯片很难找到这方面成绩故不参与对比):

5522cd178f63d.jpg

不幸的是,这里龙芯的差距更大了。单核心性能连i7-2600的十分之一都不到,实在凄惨。2009年古老的Core i5-760都远远胜过现在的龙芯3B

为什么龙芯的理论数据会和实际表现有如此大的差异呢?我们要知道,处理器的理论浮点运算速度并不能直接反映实际表现。实际程序运行的快慢还与很多因素有关,其中非常重要的一项指标就是内存和缓存性能。内存性能不足,就算理论性能再高也是无济于事的。

那么龙芯的内存性能又是怎样的呢?遗憾的是龙芯3B-1500虽然使用了双通道DDR3 1066内存,但由于访存部分设计水平不佳等原因,实测带宽只有理论值的10%左右—也就是2GB/s的水平。我们对比一下龙芯3B和主流CPU的内存带宽:

5522cd2f35494.jpg

其实一些高速SSD的读写性能都要比龙芯的内存更强,实在是讽刺。

SPEC CPU 2000测试集中龙芯的孱弱表现很大程度是因为带宽拖了后腿。我们再看一项服务器常见的基准测试UnixBench 5.1.3中龙芯的表现:

5522cd4846307.jpg

同样不忍直视。在这项为多核心优化的项目中8核心的龙芯3B还不如频率相近的双核赛扬。8核心的Atom C2750与四核心的Xeon E3更是将龙芯远远甩开。服务器应用对内存带宽的要求较高,龙芯的带宽瓶颈更为明显。

现实是残酷的:2008年,筹划中的曙光千万亿次超级计算机本来准备使用龙芯3B为主要处理器,成为第一台国产千万亿次超算;然而后来龙芯3B屡屡推迟发布,到2012年早期版本的3B小规模量产时,曙光项目组发现这些3B空有美好的理论参数,实际表现太差,因此只采购了原计划的30%的数量用于测试和研究。2013年新加坡曾计划使用龙芯3B建造一台超算系统,后来也没了下文。2014年计算所龙芯项目组组长胡伟武公开承认过去数年来龙芯的发展策略失败,间接宣告了龙芯3B将成为历史。

计算所宣称下一代龙芯CPU的访存性能将比现在提升10-20倍,届时龙芯的带宽瓶颈将得到极大缓解。倘若目标达成,未来的龙芯赶上AMD现在的水平还是很有希望的。不过CPU性能问题解决后,MIPS指令集的龙芯还将面临软件生态薄弱、周边硬件支持不足等困境。总之,龙芯在成为世界主流CPU企业之前还有很长的路要走。

国产龙芯水平究竟如何(续)

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/46572.html

(0)
上一篇 2021年8月5日
下一篇 2021年8月5日

相关推荐

发表回复

登录后才能评论