-
龙芯15周年 胡伟武披露龙芯3号开发历程
关键字: 龙芯CPU处理器芯片胡伟武龙芯3B的研制过程真是一波三折。出现过龙芯从课题组向公司转型过程中的管理问题,生产厂家引起的问题,多核互相访问引起的死锁问题,处理器核Cache一致性引起的问题。在解决了一个个问题后总算取得了成功。
但龙芯3B的主要问题不在研制过程中,而是刚开始定方向就出了很大偏差。主要问题在于虽然龙芯团队从课题组转型成为了公司,但龙芯3B的研发还保持着学院派导向,过度追求多核以及浮点峰值性能的单一指标,通用处理性能不足,满足不了在“十一五”期间展开的自主CPU应用和试点对性能的要求。
龙芯3B在学术上是成功的,3B1500峰值浮点运算速度达到160GFLOPS,现在拿出来也不丢人,当时在国际上算高的。论文分别被国际顶级会议Hotchips和ISSCC录用,龙芯3B的报告引起了很大反响,美国IT Times对此专门进行了报道,MIT也发表评论,认为龙芯3B的浮点性能超过了同期的Intel处理器。但3B1500的通用处理能力比3A1000提高得不多,通过每个处理器核增加128KB的私有二级Cache以及主频及内存频率的提高,3B1500的单核通用处理性能比3A1000提高了30%-50%,但与国外主流产品的性能差距还很大。
SPEC CPU是一组国际上公认的测试通用处理器性能的测试程序。2006年SPEC CPU2006刚出来时,厂家公布的SUN的blade服务器单核性能为2-4分左右,高端Pentium IV的分值是10来分。2006-2013年是国外主流处理器通用处理性能高速增长期,在主频不怎么提高的基础上,通过微结构优化,厂家公布的SPEC CPU2006单核分值提高到50分左右,平均提高了5倍以上。当然厂家公布的分值都是经过精雕细刻编译优化(包括使用向量和多核加速)的,一般我们使用gcc编译出来的单核分值需要把这些厂家自己公布的分值打7折左右,大致是20-40分。2013年以后,国际单核性能的提高趋缓,每代提升5%就不错,已经到了天花板。SPEC CPU先后发展了1989、1992、1995、2000、2006五个版本,开始时每三年更新一版,后来五、六年更新一版,到2006年后就没有更新。从中也可以看出,CPU的通用处理性能到2010年前后已经到了天花板,运行SPEC CPU2006的时间就够长了。
“十一五”期间,多核CPU成为国际学术界的热点研究方向。因此,学院派思想主导的国内CPU在“十一五”期间都放松了单核性能的提高,而是转做多核,而且核数做得比国外还多。2006年研制成功的龙芯2E的通用处理性能与市场上主流X86处理器差1-2倍(与龙芯2E微结构相同的龙芯3A1000在900MHz时SPEC CPU2006单核分值为定点2.4分,浮点2.3分),但龙芯CPU的单核性能从2006年的龙芯2E到2013年的龙芯3B1500只提高了50%左右;而在此期间市场主流X86处理器的单核通用处理性能提高了5倍以上。也就是说,“十一五”期间我国CPU通用处理性能被国外大幅度拉开了距离,从相差1-2倍到相差一个数量级。
技术上的差距体现在市场上就是不好用。“十一五”期间,国家有关部门在涉及国家安全的领域开始了自主CPU应用试点,大量的应用往基于自主CPU和操作系统的计算机上移植。在2011-2013年的三年中,以嵌入式计算机为代表的装备类应用取得了不少成功;而以通用PC和服务器为代表的信息化类应用虽然通过基础软硬件的磨合优化取得了较大进展,但由于自主CPU的性能基础与国外产品有数量级差距,在很多应用中遭遇性能瓶颈。
由于自主CPU的通用处理性能不够,2013年起,“核高基”基本上放弃了CPU自主研发路线,转而支持引进国外CPU技术的路线。以IBM、AMD、威盛、ARM为代表的国外/境外CPU趁虚而入,纷纷寻求与国内企业合资或开放技术授权的方式,把原来的产品摇身一变成为自主CPU(操作系统和数据库也有类似情况)。这使得主要靠国家支持进行研发的龙芯CPU陷入了巨大困境。
虽然当时对“核高基”支持引进CPU不满,但究其原因,还是我们自己在“十一五”“核高基”支持的龙芯3B上没有摆脱学院派的惯性,走了弯路,满足不了当时迫切的自主信息化市场需求。问题还是出在我们自己身上。“十五”期间负责863计划的科技部高新司领导在龙芯2C没有达到预期技术指标,龙芯2E立项专家提出19条反对意见的情况下作为非共识项目支持龙芯2E的研发,给了我们一次改进的机会。而这次,机会没有了,需要我们自己想办法。
痛定思痛,知耻后勇。2013年5月,龙芯公司结合市场需求对CPU的研发路线进行了认真调整。一是龙芯3号系列多核CPU不追求核的个数而是大幅度提高单核性能,放弃高性能机专用CPU的研制,暂停16核处理器研制,重点把双核、四核处理器做精做透。二是龙芯2号系列SOC芯片不追求“大而全”的复杂度,而是重视结合用户需求定义芯片,以及SOC片内互连的通畅性。三是龙芯1号系列结合特定应用,如宇航、石油、流量表等研制专用芯片,专用芯片产业链短,容易形成技术优势并快速形成销售(如面向宇航应用的龙芯1E和1F已经为龙芯公司带来持续稳定的销售收入)。种瓜得瓜、种豆得豆。从2014年下半年开始,龙芯研发和市场结合的作用开始显现,2014年龙芯公司销售收入比2013年增长51%;2015年在2014年基础上再增长57%,为龙芯公司的可持续发展奠定了良好的基础。龙芯公司逐渐摆脱国家项目的支持,能够主要通过市场销售养活团队和产品研发。
基于上述对龙芯CPU研发路线的调整,2013年5月,我们暂停了已经完成主要设计的16核龙芯3C处理器流片,开始四核3A2000处理器的研发。核多了没有用,单核必须要强。就像体育比赛,靠人多取胜的只有拔河(相当于计算机中的高性能计算机),绝大多数项目要靠运动员个人素质。3A2000主要目标就是大幅度提高单核性能,使单核通用处理器性能提高3倍以上。当时龙芯公司承担了基于某境内40nm LL工艺的高可靠嵌入式CPU研制项目,虽然工艺性能不高,甚至比我们原来用的65nm GP工艺还慢30%,但至少流片的钱有地方出了,我们就基于该工艺研制3A2000。当时还有一个重要决定就是保持3A2000与3A1000的引脚兼容,这样龙芯客户中基于3A1000研制的已有上百种板卡解决方案可以直接通过换焊3A2000来提高性能。基于境内工艺、通过微结构优化大幅提升性能以及与3A1000引脚兼容说明3A2000开始摆脱了学院派惯性,走出结合用户需求研发CPU的关键一步。
2013年初,在龙芯最困难的时候,中科院计算所孙凝晖所长在所里资金本身就很困难的情况下,拿出500万元支持龙芯3A2000处理器核GS464E的前期研发。虽然与研制3A2000所需要的上亿元经费相比,500万显得很少,但在龙芯最困难的时候得到来自龙芯“娘家”计算所的支持,觉得非常温暖。
-
本文仅代表作者个人观点。
- 责任编辑:孙武
-
“英美贸易协议这项‘毒丸’条款,中方狠批” 评论 20“不被特朗普唬住,中国打了个样” 评论 94“显然特朗普先退一步,虽尴尬但有用” 评论 73欧盟深吸一口气:这也太荒谬了 评论 230阵容庞大!关键时刻,拉美伙伴“力挺”中国 评论 91最新闻 Hot