|
|
|
|
|
|
d*****g 发帖数: 1616 | 1 http://www.ict.cas.cn/cxwh/cxqs/201204/P020120409552277976099.p
求实·创新 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实验室一样,为人类科技进步作出突
出的贡献。实现这个理想很艰巨,需要在计算机体系结构方面、整个计算机领域(包括
理论计算机、人工智能和操作系统等)、乃至自然科学(包括材料甚至物理)的最前沿
做出实质性贡献。为了实现这个目标,胡伟武老师决定筹划成立专门的基础研究部门。
必须看到,面对繁重的产业化任务,龙芯人把绝大部分精力都投入到紧张的工程开发中
,因此目前龙芯并不提倡占用工程时间进行研究(除了面临毕业的博士生),这些顶级
论文也都只是龙芯人利用晚上或者周末进行的业余创作。随着龙芯专门的基础研究部门
的成立,龙芯理论研究的春天即将开启。 | i*****g 发帖数: 11893 | | F*********k 发帖数: 2252 | 3 什么时代了, 计算机没有大兵团作战几乎没有胜算.CPU只是信息产业链里的小小一环,
没有一个产业生态群支持, 即便暂时有些创新也难以实用化并保持领先. 对这个表示谨
慎悲观.
【在 d*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : http://www.ict.cas.cn/cxwh/cxqs/201204/P020120409552277976099.p : 求实·创新 2012年1月 总第94期 : 且让世界听龙吟:理实交融的龙芯基础研究 : 钱 诚 陈云霁 : 2007年,龙芯3号的设计揭开序幕,当被人问到龙芯3号的意义时,胡伟武老师微笑 : 不语,提笔写下一行字,“如果说龙芯1号是在迷雾中起步,还看不到先行者的影子, : 那么龙芯2号完成后,在当时实际上已经超过了一些同行者,看清了领先者的背影,而 : 龙芯3号的完成将使龙芯大踏步赶上并超过领先者。” : 四年时间过去,龙芯3号已经从设计变成现实,并已发展出一系列改进型号。依托 : 龙芯3号的研发,龙芯团队已经实现了胡老师的预期,走在了世界体系结构研究的最前
| i*****g 发帖数: 11893 | 4 2007年,龙芯3号的设计揭开序幕,当被人问到龙芯3号的意义时,胡伟武老师微笑
不语,提笔写下一行字,“如果说龙芯1号是在迷雾中起步,还看不到先行者的影子,
那么龙芯2号完成后,在当时实际上已经超过了一些同行者,看清了领先者的背影,而
龙芯3号的完成将使龙芯大踏步赶上并超过领先者。”
(批注:这些项目,要持续支持30年,直到和米帝分庭抗礼。开始的亏损,不能以寻常
市场经济盈利心理来衡量。)
四年时间过去,龙芯3号已经从设计变成现实,并已发展出一系列改进型号。依托
龙芯3号的研发,龙芯团队已经实现了胡老师的预期,走在了世界体系结构研究的最前
沿。从2008年开始,龙芯在顶级会议和期刊上发表了一系列论文:IEEE Trans.on
Computers、IEEE Micro、ISSCC、ISCA、HPCA、IJCAI、HotChips、SPAA和DATE等等。
可以说,相比美国顶尖大学的一个研究组的论文发表水平也毫不逊色
(批注:也就是说,对阵米帝整体他们的实力其实不强,估计米帝有几百个这样的实验
室。如果说他们一个公司是intel 1/3,那还可以。)。更重要的是,龙芯的研究已经
形成了鲜明的理实交融的风格。
龙芯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等顶级会议上进行大量讨论,但始终无法从根本上解决这个问题。
(批注:NP问题好像是数学里面一个未解决的大麻烦。)
在龙芯3号的研制过程中,并行执行正确性判断问题也横亘在龙芯人面前。如果不
能取得突破,就意味着每次在龙芯3号上跑一个程序要花几千万甚至上亿倍的时间来检
验跑得对不对。面对这个前人无法克服的挑战,陈云霁及验证组多位同志反复推敲,在
经过许多个不眠之夜后,终于找到了问题的源头:并行执行正确性的判断构建于
Lamport在70年代末并行理论基础逻辑时间序之上,也就是仅考虑并行系统中的因果性
。经过反复讨论,他们提出采用一个全局时钟上的物理时间序把整个问题切割成多个片
段,从而实现分治求解。(批注:我这么理解,所谓因果时间,就是部件1完成事情,
通知部件2,然后部件2开始工作。所谓物理时间序列,就是固定一个序列时间,把机器
的各个部件工作,都挂在这个序列上。)通过物理时间序的概念,成功地将这个问题时
间复杂度从指数
级降到了O(n^2)。该论文最终被体系结构领域顶级学术会议HPCA’09接收,是该会议第
一篇来自大陆的论文。紧接下来,他们在胡老师的指导下乘热打铁进一步把复杂度降到
了O(n),从而彻底解决了这个困扰体系结构学术界和工业界十多年的大问题。相关工作
也被计算机领域顶级期刊IEEE Trans. on Computers收录。
物理时间序的想法乍看起来十分不符合常理,以至于HPCA’09的多位审稿人都表示
从未见过此类想法。学术权威Lamport早就说过,分布式系统里就不要考虑物理时间序
了,还是依靠基于因果关系的逻辑时间序吧。因此,这个观念已经根植于并行理论的骨
髓中30年了。龙芯人没有畏惧权威,止步不前的传统。但是打破传统观念除了需要勇猛
无畏,也需要细致入微。在HPCA’09之后,陈云霁请来专门从事理论研究的陈天石(当
时还是科大博士生),二人通过反复讨论终于悟到前人没有想到物理时间序的原因。原
来,在分布式系统中,由于进程之间的物理距离较大,要获得准确的、同步的全局物理
时间是极其困难。然而当代的多核处理器已经能在一个芯片上集成多个处理器核,实现
全局物理时钟是易如反掌。不幸的是,早期研究中多处理器系统通常被简单地当成分布
式系统的一个特例,几十年来这种思想桎梏了对多核处理器中时钟和序关系的研究,严
重阻碍了并行领域的发展。
理实交融的龙芯基础研究
一腔赤诚血,十年风雨路。在产学研结合的路上,龙芯的研究从工程中来,到工程
中去,源于工程,高于工程,逐渐形成了理实交融的龙芯基础研究思路:
不拘泥于结构研究的小框架,而是立足于工程实践,从应用算法往下做结构或者从
底层电路往上做结构(批注:就是从一个层面做通做到整个系统。),辅以编译、操作
系统、验证等技术的支持,极大的拓展了结构研
究的视野和方法,取得了丰硕的成果。迄今在龙芯基础研究中涌现的研究,不跟在洋人 |
|
|
|
|
|