微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 且让世界听龙吟:理实交融的龙芯基础研究

且让世界听龙吟:理实交融的龙芯基础研究

时间:12-12 整理:3721RD 点击:
http://www.ict.cas.cn/cxwh/cxqs/201204/P020120409552277976099.pdf
    求实·创新 2012年1月 总第94期
    且让世界听龙吟:理实交融的龙芯基础研究
    钱 诚 陈云霁
    2007年,龙芯3号的设计揭开序幕,当被人问到龙芯3号的意义时,胡伟武老师微笑不语,提笔写下一行字,“如果说龙芯1号是在迷雾中起步,还看不到先行者的影子,那么龙芯2号完成后,在当时实际上已经超过了一些同行者,看清了领先者的背影,而龙芯3号的完成将使龙芯大踏步赶上并超过领先者。”
    四年时间过去,龙芯3号已经从设计变成现实,并已发展出一系列改进型号。依托龙芯3号的研发,龙芯团队已经实现了胡老师的预期,走在了世界体系结构研究的最前沿。从2008年开始,龙芯在顶级会议和期刊上发表了一系列论文:IEEE Trans.on Computers、IEEE Micro、ISSCC、ISCA、HPCA、IJCAI、HotChips、SPAA和DATE等等。可以说,相比美国顶尖大学的一个研究组的论文发表水平也毫不逊色。更重要的是,龙芯的研究已经形成了鲜明的理实交融的风格。
    十年砺刃度清苦,一朝亮剑破敌阵。龙芯的研究也已经走过了十年的历程。无论前六年的求实探索,还是后四年的风云激荡,都是龙芯乃至计算所宝贵的积累。围绕着一个个芯片型号的工程实践,龙芯研究走了一条求真、求实、不取巧的最难走的研究工程紧密结合的路。龙芯研究水平的提高,是龙芯工程水平提高的体现和保障。龙芯最宝贵的研究财富,不是一些论文或者学术影响力,而是走通这条理实交融的路:我们的研究问题和方法,不是来自于外国人的论文,而是来自于自己的工程实践;而从我们的工程实践中提出的理论,能够在龙芯实践中真正发挥作用。笔力所限,我们无法展示这条路上每一次披荆斩棘。在此只能罗列几个闪亮的瞬间,以飨读者。
    龙芯3号体系结构
    早在龙芯2号的设计过程中,胡伟武老师就开始了对龙芯3号结构的构思。和单核的龙芯2号处理器相比,多核的龙芯3号的设计选择更加的多样化。要有多少个核,每个核的规模有多大,怎样把核联起来,每个核应该支持哪些应用?这些问题在胡老师心头萦绕了很久。的确,这些问题无论是学术界还是工业界都没有定论。龙芯已经不再跟着别人的脚步奔跑,必须直面这些世界前沿水平的学术和工程问题。
    从什么角度来回答这些问题,从中找到一条适合龙芯发展的道路呢?胡老师的思路是清晰和一贯的,那就是市场才是体系结构研究好坏的最终标准。学术界和工业界最终都必须回到这个标准上。普通用户并不需要那么多核,他们更希望有少数很强大的核帮他们解决棘手的问题。同时,科学计算的用户又需要处理器提供一定程度的可扩展性。基于这两点考虑,胡老师采用了交叉开关加Mesh两维网络的多核结构,每个核具备较强的计算能力,同时提供x86虚拟机的支持。这样兼顾了普通用户和科学计算,给龙芯3号留下了广阔的扩展空间,同时又为x86上大量的应用提供了支持。
    五年前的这个抉择,给龙芯3号的发展指出了正确的方向,奠定了良好的基础。沿着这个方向胡老师带领高翔、陈云霁等技术骨干加班加点,完成了首款龙芯3号芯片芯3A的结构设计。龙芯3A在x86模拟、可扩展互联方面的特点,被高性能芯片顶级会议HotChips08(大陆第一篇)和体系结构领域顶级期刊IEEE Micro收录。可以说,龙芯研究路线的开创性和实用性是得到了广泛认可。Intel最终采取了和龙芯类似的技术路线,也就是少量大核(Nehalem)。去年,Intel决定停掉他们大量小核的计划Larrabee。他们也承认,没有用户愿意为32个以上的核买单。
    创新是永无止境的。龙芯3A在学术上受到的关注并没有让龙芯人裹足不前。一般来说,通用处理器相对专用芯片来说性能功耗比比较差。一些龙芯3号的重要客户,需要龙芯3号能以超过DSP的性能功耗比完成一些重要的信号处理应用。如何突破通用处理器的桎梏,让龙芯3号在较低的功耗上达到极高的性能呢?胡老师时常感慨,“客户提出来的问题,比论文里面的问题难多了”。是的,但是龙芯的精神就是越难的问题就越要上。胡老师带着期许将这个艰巨的担子压在了年轻科研人员陈云霁的身上。陈云霁对CPU、GPU、MPU和DSP等芯片结构的异同进行了深入的思考,试图找出CPU性能功耗比差的本质原因。通过和胡老师的反复讨论,他们最终发现,通用处理器问题不在于计算部件不行,也不在于访存部件不行,而是访存部件的数据没有办法以合适的格式很舒服地喂给计算部件,很多带宽和时间都浪费在捣腾数据格式上了,最终导致性能功耗比差。因此,他们提出了XPU的结构,让处理器在数据通路的每个阶段都能自动地对数据进行重新组织,这样计算部分就能全负荷地开足马力,一下子就解决了性能功耗比的问题。同时XPU作为CPU、GPU、MPU和DSP的融合,可以实现很多传统CPU不适合解决的问题(如信号处理、媒体处理等)。
    XPU技术应用到龙芯3B上,使得龙芯3B性能功耗比达到了惊人的3.2GFlops/W(Intel的Westmere大约1.3GFOPS/W,IBM的Power7大约1.5GFLOPS/W),居目前世界上所有通用处理器第一位。相关工作发表在HotChips10和集成电路领域最好的会议,号称集成电路的奥林匹克的ISSCC11上。可以说,龙芯3B标志着龙芯处理器真正走到了世界最前沿。
    全局时钟并行理论
    多核处理器系统设计验证中一个无法回避的关键问题是如何判断并行程序在多核处理器上的执行结果是否正确。这个NP难问题就像拦路虎一样阻挡在每一个多核设计者面前。事实上,Intel、IBM和Sun等国际大公司在他们的处理器设计过程中,都被并行执行正确性判断问题深深困扰。他们始终都投入了大量精力进行研究,在ISCA、HPCA和SPAA等顶级会议上进行大量讨论,但始终无法从根本上解决这个问题。
    在龙芯3号的研制过程中,并行执行正确性判断问题也横亘在龙芯人面前。如果不能取得突破,就意味着每次在龙芯3号上跑一个程序要花几千万甚至上亿倍的时间来检验跑得对不对。面对这个前人无法克服的挑战,陈云霁及验证组多位同志反复推敲,在经过许多个不眠之夜后,终于找到了问题的源头:并行执行正确性的判断构建于Lamport在70年代末并行理论基础逻辑时间序之上,也就是仅考虑并行系统中的因果性。经过反复讨论,他们提出采用一个全局时钟上的物理时间序把整个问题切割成多个片段,从而实现分治求解。通过物理时间序的概念,成功地将这个问题时间复杂度从指数级降到了O(n^2)。该论文最终被体系结构领域顶级学术会议HPCA’09接收,是该会议第一篇来自大陆的论文。紧接下来,他们在胡老师的指导下乘热打铁进一步把复杂度降到了O(n),从而彻底解决了这个困扰体系结构学术界和工业界十多年的大问题。相关工作也被计算机领域顶级期刊IEEE Trans. on Computers收录。
    物理时间序的想法乍看起来十分不符合常理,以至于HPCA’09的多位审稿人都表示从未见过此类想法。学术权威Lamport早就说过,分布式系统里就不要考虑物理时间序了,还是依靠基于因果关系的逻辑时间序吧。因此,这个观念已经根植于并行理论的骨髓中30年了。龙芯人没有畏惧权威,止步不前的传统。但是打破传统观念除了需要勇猛无畏,也需要细致入微。在HPCA’09之后,陈云霁请来专门从事理论研究的陈天石(当时还是科大博士生),二人通过反复讨论终于悟到前人没有想到物理时间序的原因。原来,在分布式系统中,由于进程之间的物理距离较大,要获得准确的、同步的全局物理时间是极其困难。然而当代的多核处理器已经能在一个芯片上集成多个处理器核,实现全局物理时钟是易如反掌。不幸的是,早期研究中多处理器系统通常被简单地当成分布式系统的一个特例,几十年来这种思想桎梏了对多核处理器中时钟和序关系的研究,严重阻碍了并行领域的发展。
    一旦破除了仅有逻辑时间序的传统观念,并行领域中的许多问题就迎难而解。在不长的时间内,龙芯连续发表了多篇有关并行系统中时钟的工作,包ISCA’10(计算机体系结构最好的会议)、DATE’10(EDA领域顶级会议)和SPAA’11(并行理论最好的会议)上。其中ISCA10的工作有人评价为“终结了硬件确定性重放”。
    人工智能和体系结构的结合
    2011年3月31日,IJCAI’11组委会发出正式通知,龙芯的一篇由郭崎等人发表的关于微处理器设计空间搜索论文被录用为regular paper,并受邀同时参加oral和poster presentation。IJCAI全称是人工智能国际联合大会,是人工智能领域最好的会议,此次会议录用率仅为17%。微处理器中心的这篇文章是计算所的在该会议上发表第一篇oral presentation paper论文(此外计算所还在IJCAI’11上发表了三篇poster)。听起来,人工智能和体系结构天差地远。为什么龙芯要在二者的结合上进行研究呢?这就要回溯到很多年前。
     从龙芯项目一开始,龙芯的设计人员就在工程中始终面临着一个重要的问题:如何找到一个最合适龙芯的设计参数组合?无数个设计选项构成了指数级的设计空间。例如龙芯应该有多少寄存器,多大的访存队列,多少项保留站,等等等等。在庞大的设计空间中,找一个最优方案无异于大海捞针。郭崎和陈云霁在这个问题上花费了大量的时间和精力,始终未能解决这个难题。
    转机发生来自2010年。人工智能理论研究方向的能手陈天石博士从科大毕业加入到龙芯团队中。当他了解到龙芯面临的设计空间搜索问题后,一下子就和龙芯已有的研究摩擦出了火花,提出人工智能中的半监督学习方法,很可能可以解决这个问题。有了这把人工智能的快刀,设计空间搜索的乱麻一下子就被解开了。郭崎等人通过大量实验发现,半监督学习方法极大地降低了搜索的误差。通过和南京大学的周志华老师的深入交流,他们在人工智能方法上又得到了进一步的提高。人工智能领域对于这种重要的体系结构应用很感兴趣,而新颖的人工智能方法又促进了体系结构的研究。顺理成章地,这个工作被投稿到IJCAI之后,很快就得到了认可。
    除此之外,人工智能方法更是进一步在龙芯的设计验证各个环节得到了广泛推广,例如郭崎和陈天石等人合作的另一篇论文,通过机器学习方法而不是传统的覆盖率来预测和评估验证的质量,也发表在EDA领域顶级会议DATE上。
    理实交融的龙芯基础研究
    一腔赤诚血,十年风雨路。在产学研结合的路上,龙芯的研究从工程中来,到工程中去,源于工程,高于工程,逐渐形成了理实交融的龙芯基础研究思路:
    不拘泥于结构研究的小框架,而是立足于工程实践,从应用算法往下做结构或者从底层电路往上做结构,辅以编译、操作系统、验证等技术的支持,极大的拓展了结构研究的视野和方法,取得了丰硕的成果。迄今在龙芯基础研究中涌现的研究,不跟在洋人后面亦步亦趋(龙芯的大量顶级会议期刊论文在没有国际合作的情况下,依然得到广泛认可,随着更多国际合作的接踵而来,龙芯研究必将给国际主流研究注入自己的特色)而是解决自己现,在遇到或将要遇到的问题。其所解决的龙芯3号中的问题,正是整个体系结构领域也要面对的问题。龙芯的工程使得龙芯人能更早于学术界一步得到实践的反馈。
    尽管龙芯基础研究已现鲜明特色,然而对龙芯人来说,这些还远远不够。胡老师的理想是龙芯在研究上像Bell实验室和IBM的Watson实验室一样,为人类科技进步作出突出的贡献。实现这个理想很艰巨,需要在计算机体系结构方面、整个计算机领域(包括理论计算机、人工智能和操作系统等)、乃至自然科学(包括材料甚至物理)的最前沿做出实质性贡献。为了实现这个目标,胡伟武老师决定筹划成立专门的基础研究部门。必须看到,面对繁重的产业化任务,龙芯人把绝大部分精力都投入到紧张的工程开发中,因此目前龙芯并不提倡占用工程时间进行研究(除了面临毕业的博士生),这些顶级论文也都只是龙芯人利用晚上或者周末进行的业余创作。随着龙芯专门的基础研究部门的成立,龙芯理论研究的春天即将开启。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top