祝贺您获得2022年度“CCF青年科技奖”,也感谢您接受
CCCF
的专访,请您先介绍一下自己的研究经历。
王颖
:我2007年本科毕业于哈尔滨工业大学航天学院,之后在本校读硕士,当时研究的是集成电路可测性设计(DFT)与电路级自动容错技术;2009年到中国科学院计算技术研究所攻读博士学位,围绕众核处理器的片上网络以及共享主存系统,从事电子设计自动化(EDA)与体系结构相关的研究,主要面向当时处理器走向异构与众核的趋势,研究如何提升多核片上系统(MPSoC)的设计效率;2014年毕业留所,在当时的计算机体系结构国家重点实验室从事专用处理器(ASIP)的设计自动化技术研究,包括片上系统(SoC)的软硬件自动划分与协处理器的自动生成等;目前还关注面向多芯粒专用集成芯片系统的设计方法。
体系结构研究一般有两个思路,一个是自上而下地从应用和领域共性出发,例如您的工作是通过指令集扩展从微架构与电路设计的全方位推进专用处理器乃至系统的自动设计;另一个是自下而上地利用现有器件与新型硬件,通过组合适配的方法适应并加速新应用,比如您关于集成芯片系统以及新型近数据计算系统方面的工作。您在这两个思路上对专用处理器的自动化技术研究有什么心得呢?
王颖
:专用处理器的本质和目的就是通过最大限度地面向应用定制架构,达成超越通用处理器能效的目标。目前影响这个目标实现的因素有两个:一个是通用性,这是专用处理器区别于专用集成电路(ASIC)的本质要求;一个是敏捷性,这也是设计自动化的重要目标。选择自上而下和自下而上都是出于在不同场景下对这组矛盾的不同侧重与平衡,都有其价值。在实际情况下,自上而下或自下而上都不是绝对的。
即便是自上而下的设计方法,也就是面向领域应用的专用处理器自动设计方法,也存在侧重灵活性或高能效的不同路线。比如高层次综合方法,直接从高级语言描述的应用出发,以牺牲灵活性和可编程性为代价追求面向应用定制专用逻辑设计。有意思的是,这条路线应用最广泛的场景恰恰是与自下而上方法的结合,也就是采用可重构逻辑(如FPGA)作为底层硬件。另外一条路线则被很多商用EDA或IP公司接受,即基于简单的通用处理器扩展专用指令,用专用指令和紧耦合协处理器加速目标应用或者应用领域的核心运算任务。前者结合编译器保证硅后的可编程性,后者通过电路层的定制满足能效的需求。这条路线诞生了不少商用工具,比如Tensilica、Codasip等。有意思的是,这条路线同样也离不开自下而上的思想,因为不论是Tensilica还是AnySP,默认的协处理器架构和指令类型当时都是限定在数字信号处理(DSP)和单指令流多数据流(SIMD)阵列这类中后端类型,大大限制了它们加速应用的能效上限。
我对专用处理器自动设计问题的兴趣产生于读博期间。当时我和我的组长韩银和、张磊两位老师参与了徐志伟老师发起的“海云计算”(中国科学院先导项目下的“可重塑处理器
”(Elastic Computing))
课题。可重塑处理器是徐老师提出的概念,他希望在后摩尔时代可以选择一条不同于Intel专用处理器的技术路线,实现物端计算高能效与可编程性的双重需求。当时我很难领会徐老师的战略性思维,于是翻阅了大量的相关论文,从美国和欧洲过去20年针对多媒体、软件无线电乃至4G通信等应用提出的可重构计算路线中寻求一条可重塑处理器的可行路线。从那时起,类似Tensilica的专用处理器自动综合技术、粗粒度可重构计算以及高层次综合技术进入了我的脑海。我开始设想一种融合高层次设计方法,利用编译器和指令集的灵活性以及后端多样性满足可重塑处理器的“硅前”重塑和“硅后”重塑的双重需求。现在回顾起来,这就是“自上而下”与“自下而上”的朴素结合。在这个项目中,我最初尝试解决的应用是多媒体和信号处理等传统嵌入式负载。到2014年,神经网络和内存计算等新型应用发展起来了,这类应用都提供了很好的编程框架,自带很规整的高层次表示,非常适合针对框架算子库自动生成扩展指令乃至全部加速电路库,因此我开启
了DeepBurning这
个项目,相关论文发表在
DAC 2015(2015年ACM/SIGDA国际设计自动化大会),作
为当时该领域的代表性工作获得了不少关注,甚至帮我们在一些实际的系统设计挑战赛(IEEE/ACM DAC SDC 2016/2018)中获得冠军,也为后来中国科学院计算技术研究所孵化的芯片公司奠定了一些基础
。DeepBurning看
似是解决了一个热点问题,但其中的技术路线在早些年的“可重塑处理器”项目中就已经成型了。
相比自上而下地垂直定制硬件,自下而上的技术路线通常有一个更为实际的出发点,也是自动化技术非常关注的一个层面,那就是设计周期与成本。虽然通过指令、架构乃至电路层面的自动化设计能够大幅度降低设计成本,但是许多项目无法承受硬件尤其是芯片定制的代价,因此从当下最合适的硬件设计空间出发,尽量适配计算负载的特性就显得更加现实。比如我在2015年与航天科技集团一院某部合作的项目就有非常严格的开发期限,我只能从国产处理器和国产FPGA系统中做选择去定制目标系统,好在FPGA本身的硅后可重构能力依然可以提供潜在的多种微架构,为扩展指令选择最合适的后端,最终通过工具将专用指令与目标应用关联,快速地完成设计,保证了项目的顺利完成。另外一个例子是我提出的“认知存储器”项目,它采用近存计算技术实现大规模非结构化数据的检索分析,这是当时很多人公认的技术路线,但是无论是采用动态随机存储器
(Dynamic Random-Access Memory,DRAM)、静态随机存储器(Static Random-Access Memory,SRAM)
还是新型存储器件设计基于存算一体、存内计算抑或近数据计算的大规模非结构化数据(Billion-scale条目)分析原型系统,在当时还都是纸面上的设想,所以我们结合眼下可用的可重构计算和Flash器件实现了按语义索引非结构化数据的“认知存储系统”,这也是学术界最早将智能引入存储系统的近数据计算项目之一。再后来,我们与华为公司在此基础上合作,承担了两期AIR项目,探索智能与定制化近数据计算系统的结合,这个项目2024年获得了华为公司的奥林帕斯奖。
现在看来,自上而下也好,自下而上也好,本质上是可以统一的。如果在自下而上的设计空间里考虑足够多的后端架构选项,同时考虑指令层抽象满足通用需求,或者自上而下地把后端定制对象局限在有限的几种架构,而不是一个巨大的不可求解的设计空间,那么两者是可以殊途同归的。
您如何看待人工智能(AI)、大模型乃至通用人工智能对处理器设计自动化层面的冲击?
王颖
:广义的AI在EDA领域里的应用由来已久,并不是近年来深度学习技术发展起来之后才有的。统计学习、贝叶斯、强化学习在EDA各个流程中的应用与研究一直存在。在处理器设计层面,无论是早期设计阶段的设计空间搜索,还是性能功耗预测,抑或是具体的某个模块,比如预取或者访存调度器,都涉及AI技术。深度学习技术,如深度强化学习、对抗生成式学习等,配合GPU算力的增长,确实让过去一些很难收敛的处理器设计参数优化,乃至巨大的跨层设计空间搜索问题变得可行。相比传统EDA问题,专用处理器由于涉及复杂的基于人工经验的架构设计空间,指令以及调度等与硬件高度耦合的设计空间,其问题更难以进行形式化表达,且不同层之间的问题又难以统一,因此我们在计算机体系结构国家重点实验室工作时提出的处理器设计自动化
(Processor Design Automation,PDA)技术
希望把它和传统电路层次的EDA问题区分并对接起来,希望有朝一日利用深度学习的新工具做到端到端的从处理器需求描述到芯片版图的自动设计。我们的PDA早期(2019年前后)工作也都集中在上述两个层面。
近年来,大模型的出现又仿佛让端到端设计处理器的期待引入新的变量,尤其是大模型提供的强大的自然交互与理解能力。我们也尝试将原有的PDA流程从基于高级语言与应用框架的设计转向基于自然语言的设计,提出了ChipGPT的流程(flow),这几乎是学术界最早的自然语言硬件设计流程(同期还有纽约大学的ChipChat),而且还基于此项目与开放原子开源基金会的openDACS共同举办了国内第一届面向自然语言设计处理器芯片的比赛,目的是在教学竞赛中初步实践这个目标。目前这个方向在国内外的工业界和学术界中的关注度都很高,我们可以用大模型重塑EDA流程,至少在设计用户界面这个事情上让人拭目以待。
当前设计自动化领域存在不少“卡脖子”问题,解决这些问题的主战场在工业界,您认为学术界在这方面能做哪些事?有哪些优势?
王颖
:传统的计算机辅助设计(CAD)或电子设计自动化可以追溯到二十世纪六七十年代IBM、Calma和Applicon等美国企业引入的计算机和电路设计流程,现代EDA流程的雏形定义在八十年代基本形成,期间通过兼并重组形成了当
前Cadency、Synopsys、Mentor三家
独大的垄断趋势,这期间美国的EDA公司和学术界形成了一个合作、孵化与收购的良性循环。EDA公司也对降低芯片设计门槛、推动fabless(指只从事芯片设计与销售,不从事生产)和芯片设计分工众包模式起到重要作用,所有的集成电路从设计到foundry(指只从事芯片制造,不做芯片设计)都由这套工具流程对接,EDA起到了难以替代的作用。
要解决国内面临的“卡脖子”问题,主要依靠工业界在这套成熟体系下研发出能无缝替代的工具,以最小代价融入现有的芯片设计产业链。学术界可以针对传统EDA流程积累技术并加以产业化或者开源,比如中国科学院计算技术研究所处理器芯片全国重点实验室集成团路团队在可测试性设计领域深耕多年,也走到了这一步。除此之外,就是另起炉灶,发展一条不考虑对现有三大EDA公司工具链进行兼容的新体系,乃至新技术路线,我认为计算所处理器芯片全国重点实验室发起的PDA、包云岗老师团队发起的iEDA,以及陈云霁老师团队基于二元猜测图
(Binary Speculation Diagram,BSD)的
AI自主设计处理器技术,都属于这条路线。针对“卡脖子”具体问题“头痛医头”固然非常重要,探索新体系预防以后可能出现的“卡脖子”问题也很重要,我们不能只满足于追赶。
关于学术研究是不是一定要面向当下的“卡脖子”问题,我也深有体会。因为我早些年前就开始研究专用处理器敏捷开发技术,关注如何通过自动化方法减少处理器芯片尤其是高层次设计过程中引入的人力和时间成本,以及降低对高水平专家的依赖,这一点对于从业人员稀缺、市场碎片化严重、抗风险能力低的IoT利基市场可能是重要的,但是对于大公司可能并不是那么重要。我也曾经在推广这条技术路线时被大公司负责人当面驳斥过,他认为自己不缺这点人力和技术,所以更看重设计质量。因此,在当下设计敏捷度和设计质量不可兼得的技术路线下,找准芯片敏捷开发技术的定位非常重要,但是也要不断利用新技术和基础设施同时推动这两个目标,直到设计质量逼近乃至超越人力设计的水平。
您刚才讲到目前更关注集成芯片(芯粒)系统的研究,可否介绍一下您这方面的心得?
王颖
:采用芯粒技术通过先进封装实现复杂处理器芯片的集成设计,既是通过复用和提升良率降低日益增长的芯片设计成本的一种方式,也是我国在先进制程技术落后的现状下利用相对不落后的封装集成技术实现大规模芯片设计的一条路线。在研究专用处理器设计自动化技术的过程中,我认识到前端设计成本乃至验证成本的下降,对于整个芯片的开发周期和成本的影响是有限的,这取决于原步骤在流程中所占的原始比重,我称之为芯片设计的阿姆达尔定律。然而,芯粒预制件重用与先进封装提供了一个减少物理设计乃至降低流片成本的可能性。因此2019年开始,我对采用芯粒模块化重用快速设计集成芯片系统产生了兴趣,并在之江实验室的资助下开展了“之江大芯片一号”项目,与此同时我所在的课题组在孙凝晖院士和韩银和老师的带领下,也开始探索并实践新的集成芯片设计方法。
同样,集成芯片设计也可以有自上而下和自下而上两条路线,前者可以面向单个或者一系列复杂芯片产品,通过划分寻找它们的“最大公约数”,即芯粒组件,以少量芯粒和更低的成本和复杂度实现目标产品或产品线。当然芯粒在组合过程中由于片间传输代价和封装成本更高,会引入一定的开销(我们称之为“芯粒税”)。如何针对目标应用场景寻找成本最优的划分方法呢?我们在亚太设计自动化大会
(ASP-DAC)
上提出了一套最优划分算法,并在国际设计自动化大会上针对假定的一套云边端AI芯片系列产品线实践了该方法,得到其中的重要芯粒和中阶层组件。另外一条路线则是自下而上,即面向现有芯粒预制件库,通过组合的方法设计目标系统,这里最重要的是如何设计建立一套公开的第三方集成标准和芯粒库,以及一套集成芯片系统自动综合与验证流程。我们借鉴基于IP的SoC自动综合方法提出了一套基于可重用硅基板的集成芯片自动综合流程(相关论文发表于国际计算机辅助设计大会
(ICCAD))。无
论选择哪种路线,市场关心的还是成本与上市时
间(time to market),
这是学术研究中常常忽略但尤为重要的指标,也是我研究处理器芯片设计自动化一贯关心的目标。近几年来,我所在的课题组在集成芯片组合与划分问题、基板架构与高层次设计工具方面做了许多探索,也发布了之江一号RISC-V处理器芯粒和处理器大芯片,这是一个新鲜事物,在与供应链合作的过程中也走了许多弯路,给了我做学术研究难以获得的体验,也让我开始重新审视设计自动化技术如何影响和适应芯片设计产业链。
王颖
:我的博士学位是在国内读的。与很多博士生一样,我对读博这件事有一个逐渐认识的过程,也经历过典型的从新鲜、有激情,到迷茫、焦虑,再到平和的螺旋上升变化,这是很正常的。读博可以没有那么多论文,也可以不写那么多代码,但唯一不能妥协的就是不能做自己不相信、不感兴趣的研究方向。读博这几年是人生精力和创造力的高峰时期,不应该仅仅用来换取一张毕业证,还应该收获思维的蜕变乃至精神层面的脱胎换骨,为留下点值得被记录的东西而奋斗。
当然,这一切都不要以身心健康为代价。
最后一点是对热点保持清醒的头脑,不要盲目追逐热点,尤其是在读博的早期阶段,容易养成差的科研品味。