近年来,随着ARM在移动端崛起,越来越多的中国IC设计公司加入了ARM阵营,除了华为海思、展讯在手机、平板SoC大展拳脚之外,华为、飞腾、华芯通还试图借势ARM进军服务器CPU市场,实现对Intel服务器CPU的替换。那么,中国芯能借势ARM挑战Intel么?
中国企业缘何能获得ARM指令集授权
一直以来,ARM在指令集授权上非常谨慎,能获得ARM 32位指令集授权的IC设计公司屈指可数。但在ARM 64位指令集授权上,ARM就大方了很多,原因就在于当时基于ARM 32位指令系统的CPU芯片在移动互联网世界占据了90%以上的份额,因此ARM为了获得更多利益,也不会将32位指令集授权给客户。
相比之下MIPS64和MIPS32,x86 64和x86 32可以完全兼容,ARM 64位指令和32位指令无法兼容。换言之,ARM 64位指令某种程度上是重新定义过的,和ARM 32位指令是两回事。最初的ARM 64位指令和32位指令有点类似于Intel当年IA-32和IA-64的关系,两者无法兼容。当年Intel正是因为IA-32和IA-64的不兼容,在IA-64的生态建设上力所不逮,被AMD抓住机会做出了64位的x86服务器芯片,迫使Intel不得不推出64位x86芯片,并放弃了安腾,才重新占据上风。
在吸取了Intel的IA-64的教训之后,ARM为了更快速地推广64位指令集和建立相应的软件生态,必然要一改过去对32位指令集授权的谨慎。ARM选择了向诸多颇有实力的厂商授权64位指令集,加速生态建设,防止被竞争对手抓住机遇。ARM之所以热衷于推销64位指令,根本原因就在于此。
趁着ARM推广ARM 64的东风,国内华为、飞腾、华芯通等企业都获得了ARM 64指令集授权。由于ARM的目的是为了快速建立ARM 64的生态和在服务器领域蚕食Intel的市场份额,因而对国内IC设计公司的指令集授权存在期限限制,到期后就必须重新谈判。如果将来ARM大势已成,这也许会是一个隐患,一旦ARM在服务器市场站稳脚跟,对国内厂商的服务器授权态度恐怕将是另一番情景。不过,这个隐患还非常遥远,ARM目前还处于市场开拓期时,与国内IC设计公司的合作也比较友好。
▲借着ARM推广64位指令集的东风,中国IC企业有了不小的发展机遇。
中国ARM服务器性能几何
目前,开发ARM服务器CPU的中国IC设计公司有三家:华为、飞腾、华芯通。华芯通是我国与高通成立的合资公司,从高通手中获得了源码并基于该源码设计自己的CPU。不过,由于华芯通北京研发中心刚刚启用,正式商用产品问世尚需时日。相比之下,华为和飞腾已经有产品问世,华为的ARM服务器CPU集成了32核ARM Cortex A57,采用台积电16nm制造工艺。也许是因为华为缺乏服务器CPU设计经验,这款服务器CPU的性能相对有限。以飞腾的FT2000作参照,华为的这款服务器CPU在制造工艺领先2代的情况下,以FT2000一半的功耗实现了不足FT2000一半的性能。因此在下面文章的解析中,中国ARM服务器CPU就以目前性能最强的FT2000为代表进行说明。
在2015年的第28届国际高性能微处理器研讨会上,飞腾公布了“火星”,也就是FT2000。FT2000采用28nm工艺,主频2GHz,功耗100W。芯片面积600多平方毫米,集成了64个FTC661 CPU核,共计48亿个晶体管。根据测试,FT2000的芯片实测成绩相对于模拟器成绩要稍低一些,在2GHz主频下,采用GCC4.8编译器,SPEC2000和SPEC2006的测试成绩见表一。其中SPEC CPU2006全芯片测试分值为定点570,浮点482,单线程测试分值为定点12.4,浮点11.3,虽然在单线程性能上和Intel依旧有不小的差距,但就多线程性能而言,足以与Intel Xeon E5-2695v3芯片相媲美。
▲FTC661 CPU核架构图
▲FT-2000在SPEC CPU2006全芯片测试中的成绩
至于实测成绩和模拟器测试成绩之间的性能差距,主要是模拟环境与真实系统之间的差异造成的。首先,模拟环境中存储系统一般是用模型来构建的,与真实芯片环境相比更加理想化;其次在模拟平台上,由于模拟运行速度较慢,benchmark问题规模不能太大,都需裁剪简化。因此,真实系统测试性能与模拟环境中得到的性能不一致是正常现象。不过,这种偏差并非无法弥补,通过研究更科学的性能评估手段,可以降低模拟系统与真实系统的性能偏差。同时基于真实系统进一步开展编译调优工作,会进一步提升性能,预计测试结果会有10%~30%的优化空间。
▲采用FT2000的服务器实物
总而言之,从性能上看,FT2000能够胜任一些国产中高端服务器的业务需求。
能打败国外同类产品么?
事实上,想借势ARM从服务器CPU市场分一杯羹的IC设计公司远不止华为、飞腾和华芯通。AMD、高通、Cavium 、APM等IC设计公司也开发了各自的ARM服务器CPU。虽然AMD依旧把重心放在x86 CPU上,即便高通早就公布了服务器CPU的规划,Centriq 2400要到2017年年末才会问世,但并不意味着国外厂商的ARM服务器CPU是只打雷不下雨。相对于进入该领域较晚的AMD、Cavium、高通等厂商,APM虽然名声不显,但由于在2010年前后就着手开发ARM服务器CPU,确实做出了性能不错的ARM服务器芯片,而且这些产品在数据中心、互联网服务器等领域已有了批量的应用。
目前,APM的X-Gene已经发展到了第3代。X-Gene3集成了32个核心,计划采用台积电16nm制造工艺,主频3GHz,最大功耗约为125W。根据Linley Group的报道,其模拟器测试成绩Spec2006单线程定点性能在550分左右。X-Gene 3XL是X-Gene3的升级版本,计划将32核升级为64核,并将SPECint_rate2006测试提升到1000。在单线程性能上,X-Gene3也非常亮眼,大约在17左右。由于Linley Group给出的单线程性能并不是通常说的单核测试性能,而是用rate分值/线程数,所以推测X-Gene3在模拟平台上的单核性能很有可能已经达到20左右了,这在ARM生态圈中是首屈一指的。
不过,由于X-Gene3尚未有样片,所有的性能都是模拟平台的结果,根据经验,由于硅前模拟平台的局限性,其模拟测试结果与硅后实测都会有一些出入,比如FT2000的模拟器成绩为SPEC2006定点672、浮点585,而实测成绩为定点570、浮点482。所以不太适合用X-Gene3的模拟器成绩与FT2000的实测成绩做比较。不过就单核性能而言,X-Gene3明显是占据优势的,FT2000的单核与X-Gene2性能相当,X-Gene3相对X-Gene2在分支预测和TLB方面做了改进,性能提升了10%左右,而且X-Gene3的频率为3GHz,也比FT2000的2GHz高出50%。
就芯片特征参数来看,X-Gene3的片上缓存为32MB(三级缓存),FT2000的片上缓存也是32MB(二级缓存,三级缓存在片外,是128MB),X-Gene的存储控制器是8个DDR4,且在片内,而FT2000的存储控制器是片外扩展16个DDR3。所以在存储带宽和容量上FT2000有优势,但访存延迟FT2000要大一些,处于劣势。IO方面,X-Gene3是42lane的PCIe 3.0,FT2000是32lane,稍逊一筹。
所以总的来说,FT2000与XGene3处在同一性能水平,都是one socket形式,存储和IO扩展能力也相当。不过,FT-2000年中已经有了样片,而且即将量产,X-Gene3目前还没有样片,这是FT2000的最大优势。
和Intel相比差距在哪里?
无论是FT2000,还是X-Gene3,虽然在多线程性能上达到了Intel中高端服务器CPU的性能,但在单线程性能上,还是有不小的差距。即便主频控制在2.5GHz,Intel服务器CPU的SPECint_base2006成绩也在25以上,而FT2000的SPECint_base2006只有12.4,X-Gene3也只有20。那么,单线程性能差距还带来什么影响呢?
单线程性能相对有限会对计算密集型场景有影响,对于无法并行化、单任务延迟敏感的应用场景力不从心。比如在IC设计中用到的一些EDA工具软件,由于并行化做得还不够好,单线程性能弱的CPU在运行时会比较吃力,跑模拟、综合、优化等任务花费的时间会较长。即便全芯片整体性能与Intel的部分服务器CPU性能相当,但由于单线程性能的不足,在部分应用场合,FT2000是无法达到Intel服务器的应用效果的。
不过,FT2000的优势在于并行性能,对于能够并行化、多任务的应用场景,FT2000能够取得不错的应用效果。比如一些互联网服务器,由于任务非常多,而每个任务的运算量不大,却对CPU吞吐率要求高,这种场景非常适合FT2000。
FT2000与Intel的服务器CPU的差异有点像当年的power和ultrasparc的技术路线之争。power是核数少线程数少,但单线程性能高,类似与现在Intel的CPU。ultrasparc是核数多线程多,单线程性能差,类似于FT2000。前者更适合充当高性能服务器,后者主要是面向网络的吞吐量高和并发度高的服务器。产生这种现象一方面可能是因为以国内的技术实力无法做出可以匹敌Intel单线程性能的CPU,另一方面也可能是在晶体管资源有限的情况下,面向不同应用做了取舍。
有观点认为,FT2000打平Intel Xeon E5-2695 v3是64核战14核的结果,言下之意就是国产CPU只能靠堆核心数。但实际上,简单堆砌核心并不一定能实现1+1=2。服务器芯片的性能很大程度上还要受存储、互连等部件性能的影响—片上集成的核数越多,对存储和互连的设计平衡性要求越高。如果平衡性做得不好,并行性能的扩展性就会直线下降,在此情形下,盲目的堆核心数量未必能获得想要的效果。而FT2000整体架构较好地实现了计算资源与存储和互连资源的平衡设计,所以从单核到多核的性能扩展性表现还不错。
写在最后
从上述分析可以看出,网络搜索、大数据、内存密集型等方面的应用,是FT2000所擅长的领域,而且在性能上也达到Intel中高端服务器CPU的水平。考虑到对于商业公司的服务器来说,不是都需要最顶级至强芯片,大部分还是至强系列芯片的中低端产品,比如E5-2640 v4,配置双路,共20核心40个线程。而这就意味着,至少在性能上,FT2000对于很多商业公司来说是完全够用的。而华为正在设计的ARM服务器CPU的设计指标SPECint_rate2006在500左右,。换言之,无论是FT2000,还是华为将来的ARM服务器CPU,只要软件跟得上,完全可以在商业市场上取代相当一部分Intel的服务器芯片。
随着大数据、云计算时代的到来,服务器市场将迎来爆发式增长。在当下的数据中心里,Intel处理器占据90%以上市场份额,这会使互联网公司和数据中心的运营者在面对Intel时缺乏议价能力。因此寻找替代解决方案实现多供应商是他们的当务之急—谷歌、百度、阿里等互联网巨头都对ARM服务器非常感兴趣。由于市场足够大,且一些互联网巨头比较青睐定制版的ARM服务器,这使得中国芯能借助ARM获得一定的市场。虽然华为、飞腾等中国ARM服务器CPU厂商无法完全替代中国市场上的Intel CPU,但借助大势攻占一部分原本属于Intel的市场是可以期待的。
评论
查看更多