2. 中国科学院大学 计算机科学与技术学院 北京 100049
2. School of Computer Science and Technology, University of Chinese Academy of Sciences, Beijing 100049, China
芯片是现代信息社会的关键基础设施。绝大部分的电子设备——小到传感器、大到超级计算机,以及我们每天用的手机、电脑,都是建立在芯片基础之上的。从20世纪60年代开始,随着半导体工艺的发展,芯片的复杂度快速增加,从只有少数晶体管的小规模开始快速发展到千百万、数十亿晶体管规模。例如,2020年英伟达(Nvidia)发布的A100芯片集成了500多亿晶体管。芯片制造工艺也已经接近量子领域,台积电(TSMC)的5 nm工艺已经开始量产芯片,英特尔(Intel)等厂商已经开展2 nm工艺的芯片研究。这些都离不开芯片设计的快速发展。
芯片设计本身是一个代价很高的过程。即使经过了40多年的发展,也集成了越来越多的先进算法,芯片设计仍然是一个周期非常长、过程非常复杂、对设计人员专业度要求很高的任务。芯片制造本身的高额费用也加剧了对于芯片设计的要求。通常整个芯片设计流程,从立项到最后交付流片,中间涵盖了逻辑设计、电路设计等复杂过程,大致需要1—1.5年的时间,需要包括系统设计人员、芯片设计人员、芯片开发人员、芯片验证和测试工程师在内的多名专业人员紧密地协作开发。
未来万物互联的智能时代需要大量不同种类的专用芯片。随着智能时代的到来和“摩尔定律”的大幅度放缓,专用芯片的数量和种类大幅度增加,芯片体系结构将要进入新的黄金时代[1],这对芯片设计提出了更大的挑战。目前,深度学习处理器芯片就有很多种。例如:国外,谷歌(Google)推出了TPU,英伟达推出DLA和包含专用加速TensorCore的多款GPGPU,英特尔收购了Neverana、Movidius等多家公司,ARM、高通(Qualcomm)、苹果(Apple)等公司的系统级芯片(SoC)也各自集成了自家的深度学习加速器硬件;国内,中科寒武纪科技公司推出了Cambricon云边端系列芯片,阿里巴巴公司推出了含光NPU,华为公司推出了达芬奇架构芯片等。据统计,从2014年开始,全球深度学习处理器芯片就从一两款增长到了几百款之多[2]。未来万物互联的智能时代对于大量种类和数量的芯片需求,也对芯片设计效率提出了新的挑战。
如何解决芯片设计需求多和芯片设计代价高之间的矛盾?其中,最关键的问题是芯片设计领域对设计人员的专业水平要求比较高,既包括专业知识,也包括从业设计经验。如果芯片设计的“门槛”能降下来,那么任何一个稍加培训的硬件设计人员就可以如同编写软件程序一样快速地完成芯片设计。本文提出芯片学习(Chip Learning)来取代芯片设计可解决上述矛盾,即采用学习的方法来完成芯片从逻辑设计到物理设计的全流程。简而言之,Chip Learning针对这样一类问题:输入是简单的功能需求描述(或者芯片的硬件程序),而输出则是电路的物理版图。Chip Learning通过学习已有芯片设计进行训练,根据输入生成满足要求的电路物理版图。我们希望Chip Learning学习到的模型在使用时完全不需要专业知识和设计经验,可以在短时间、无人参与的情况下完成芯片设计。本文首先介绍现有芯片设计的流程,同时介绍近几年人工智能(AI)技术在芯片设计中的应用,在此基础上说明实现Chip Learning的思路和面临的挑战。
1 芯片设计流程和Chip Learning 1.1 芯片设计流程芯片设计是一个复杂的过程。通常,芯片设计指的是从需求出发最后生成版图(layout)的过程。典型的芯片设计流程可以被简单地划分成5个阶段(图 1):①系统定义(chip specification)。给定需求后,进入系统定义阶段,芯片设计人员确定设计参数,并完成包括结构、接口定义等具体设计。②逻辑设计(logic design)。由芯片开发人员根据系统定义进行逻辑设计,通常采用硬件开发语言Verilog、VHDL等实现芯片的硬件代码,包括其中各个功能模块、外部接口和整体连接。③电路设计(circuit design)。在得到芯片的硬件程序后,芯片开发人员进行电路设计,把硬件描述转换成为门级的电路表示①。④物理设计(physical design)。在得到芯片网表之后,芯片开发人员进行物理设计,把门级网表转换成物理实现表示,即芯片的版图;其常见格式为图数据表示,即graphic data systemⅡ(GDSⅡ)。另外,芯片开发人员会在物理设计的各个阶段进行验证测试和迭代设计,以得到符合需求的芯片设计。⑤验证测试(test & verification)。最终完成的芯片版图送至代工厂进行制造,后续再进封装、制板、测试等工序,这样就得到了一颗完整的芯片。
① 即网表,netlist。
![]() |
图 1 典型芯片设计流程 Figure 1 Typical flow of chip design |
近些年来,以深度学习为代表的AI技术再次兴盛,已经在很多任务上表现出卓越的效果。例如,ResNet-512深度学习模型在图像识别上表现出超越人的识别能力[3],DeepMind公司提出的AlphaGo系列模型在围棋游戏上表现超越人类棋力[4]。研究人员也开始研究将最新的AI技术应用到芯片设计当中,如深度神经网络、强化学习、生成对抗网络等。这一方向也受到越来越多的关注。Cadence公司已经在2020年发布了iSpatial引擎[5],以支持机器学习进行统一布局布线和优化。Synopsys公司也在2019年推出了DSO.ai工具[6],其基于AI技术极大地提升了芯片设计效率。
然而,目前全球芯片设计中的深度学习工作还主要停留在采用人工智能技术去辅助解决传统芯片设计流程中的子问题,如评估、预测芯片设计的结果等。与之不同的是,本文提出的Chip Learning技术内涵则是取代传统芯片设计流程,通过AI模型学习专业知识,从而实现无人化(no-man-in-the-loop)芯片设计(图 2)。具体而言,类比传统芯片设计流程,Chip Learning可以分成3个重要问题:①功能生成。当用户用模糊的语言确定了系统功能,第一个重要的问题就是根据用户意图确定系统正确的功能,并生成系统的准确表达。这种准确表达可以是硬件代码,也可以是表达式,也可以是真值表。这个问题对应着传统芯片设计流程的逻辑设计。②逻辑图生成。当有了准确表达,第2个重要的问题就是要生成电路的逻辑图表达,并在这张逻辑图上进行优化,最后生成物理无关(包括工艺)的逻辑图表达。这个问题对应着传统芯片设计流程的电路设计。③物理图生成。当有了电路逻辑图后,第3个重要的问题就是要生成电路的具体物理版图,这等价于一种多种约束下(如面积、功耗、物理等限制)的图映射和优化问题。这个问题对应着传统芯片设计流程的物理设计。
![]() |
图 2 芯片学习流程 Figure 2 Design flow of Chip Learning |
逻辑设计的核心就是要得到电路的硬件描述。通常这一过程通过人工完成,也就是硬件开发人员采用硬件描述语言如Verilog、VHDL手动编写RTL的硬件程序。还有一种方法就是高层次综合(HLS)。高层次综合指的是通过高层次综合工具把C、C++或者SystemC等高级编程语言描述的硬件功能转化成为硬件描述语言Verilog、VHDL程序。传统高层次综合算法一般通过确定性的方法对高级语言进行变换。近些年来,除了传统的机器学习算法如支持向量机(SVM),最新的人工智能技术如深度神经网络(DNN)、图神经网络(GNN)也被用于高层次综合中,主要用于帮助更快速的HLS设计结果评估(质量估计[7, 8]、性能估计[9]、时序估计[10, 11]、资源开销估计[10])和FPGA设计空间搜索优化[12, 13]。
与上述2种方法相比,芯片学习更进一步:当用户给定模糊描述后,通过猜测用户意图自动编写硬件程序,或者说自动生成硬件的准确表达——可以是硬件RTL程序,也可以是硬件表达式,还可以是硬件真值表。这其中面临很多挑战,如用户意图的确定,硬件表达的准确性等。在该方面,程序综合(program synthesis)——自动构建由指定语言构成的、符合用户某种要求的程序,跟芯片学习的功能确定问题具有同样的形式。目前,程序综合已经有了很多进展可供芯片学习借鉴参考[14, 15]。
2.2 电路设计在得到芯片的硬件描述后,芯片开发人员进行电路设计。如图 3所示,在电路设计中,电路的硬件描述程序会被转化成为电路图(网表),这个过程也被称为前端设计(front-end processing)或者综合(synthesis)。
![]() |
图 3 芯片设计的逻辑设计和电路设计 Figure 3 Logic design and circuit design in chip design |
电路设计包含2个核心优化步骤:逻辑最小化和物理映射。逻辑最小化指对电路的布尔表达式和逻辑网表结构进行化简,从而得到尽可能小的逻辑表达式。物理映射则是在给定物理工艺库的情况(如可用的门的种类、标准单元),把逻辑表达式映射到这些物理单元上,生成尽可能简单的物理电路。当前,芯片设计中利用AI技术可实现的相关工作主要集中在这2个核心优化步骤上。LSOracle采用深度神经网络(DNN)去动态决定电路中不同部分是采用AndInverter Graph还是Majority-Inverter Graph优化器[16]。Haaswijk等[17]和Zhu等[18]把逻辑优化问题定义成马尔可夫决策过程(Markov decision process),采用深度强化学习框架,图卷积神经网络作为策略,来实现逻辑优化。Hosny等[19]则采用强化学习里的演员-评论家模型(A2C)来寻找时序约束下最小化面积开销的逻辑最小化方案。Deep-PowerX通过DNN来预测部分电路采用近似电路时的电路输出错误率,从而尽可能地降低电路的动态功耗[20]。
芯片学习在这个阶段要解决的问题是逻辑图生成,也即在给定电路的硬件描述(如RTL程序、表达式或真值表)和可用节点类型的约束下,生成电路相应的逻辑图。在该逻辑图中,节点是门、宏单元、已知功能模块,连线是有方向的,表示信号从一端流向另外一端。如果是时序电路,逻辑图中还会存在环路。同样的,在该逻辑图上需要做优化,以尽可能地去掉电路中的冗余,保证生成的逻辑图尽量精简。一个思路是采用传统编译的思路完成这个过程,并采用上文类似的GNN和增强学习(RL)方法实现图级别优化。另外一个思路是采用神经编译器(neural compiler)[4],直接替代传统的编译技巧,把输入转化成为逻辑图并在图上做进一步的优化,从而得到更简洁的逻辑图表达。
2.3 物理设计在得到芯片网表之后,芯片开发人员开始进行物理设计;其把门级网表转换成物理元器件及其连线并固定下来,最后得到芯片的版图。物理设计流程比较复杂(图 4),不同工艺还有其独特的地方,主要包括floorplan设计、布局(placement)、时钟树综合(CTS)、布线(route)、完成(finish)。在开始物理设计之前,设计人员需要先确定物理设计环境,包括设计所需要的物理库(physical library)、工艺(technology file)、设计约束库(constraints file)等;芯片设计相关的参数,包括设计采用的工艺、芯片采用几层金属、最小线间距、所允许的最大扇出(fanout)等。
![]() |
图 4 芯片设计的物理设计流程 Figure 4 Physical design process in chip design |
物理设计本身流程多、复杂,子问题也多,因此采用AI技术解决其中子问题的研究工作也相对多一些。在布局中,AI技术主要被用来生成更好的布局和预测布局后的结果。例如,在2021年发表的电路后端设计自动化的工作中[21],谷歌把布局问题形式化为序列决策问题,从而利用强化学习的方法来解决,不到6小时即可生成具有媲美或超过人工的现代加速器网表上的布局。He和Bao[22]使用强化学习训练一个Agent帮助选择空间搜索时下一步访问的邻居节点,用以指导生成更好的布局。在时钟树综合中,AI技术的应用主要关注对生成的时钟树做优化或预测。Lu等[23]提出采用生成对抗网络(GAN)和强化学习来预测、优化生成的时钟树,从而降低时钟漂移和时钟树长度。Nagaria和Deb [24]、Kwon等[25]分别采用卷积神经网络(CNN)、DNN来预测时钟树组件,如gatingg单元、buffer数量、wireloads等,从而帮助提高时钟树质量,降低时钟树长度、时钟漂移等。在布线中,人工智能技术主要被用来布线结果预测和评估。Liang等[26]和Alawieh等[27]将问题化为imageto-image问题,分别用CNN和条件生成对抗网络(CGAN)进行布线堵塞预测。在完成阶段,AI技术主要用于验证测试中的时序分析、信号完整性分析和功耗分析方面。Barboza等[28]用随机森林方法使时序分析可以脱离手工特征进行,同时减小布线前时序估计的误差。Ambasana等[29]、Lu等[23]、Goay和Goh[30]的多篇工作都以眼图的宽高用神经网络为基础预测电路信号串扰或抖动。
芯片学习对应的子问题是物理图生成。可以看到,在物理设计的多个阶段,AI技术被广泛地用来辅助解决其中的子问题,芯片学习则期望能够直接端到端得到一个最终的物理版图。这个子问题的难度可想而知,其中涵盖了多个子问题,也极有可能需要多个模型协同进行工作,才有可能最终解决。利用芯片学习端到端得到最终物理版图的挑战主要有2个方面:①问题和约束形式化较为困难。正如上面芯片物理设计流程中所介绍的一样,问题本身的输入是类似网表的逻辑图,最终输出的是物理版图。不同规模的电路蕴含的功能也不一样,这就意味着统一的模型能够处理变长、变规模的输入和输出。另外,物理设计中的约束也是多种多样的,包括:芯片本身的最大面积、所能容忍的最大延迟等基本约束,以及电源网络构建、crosstalk消除、天线效应等约束。这些约束需要变成结构化的信息从而可以被人工智能模型所接受,也即计合理的数据结构,这也是非常困难的。②问题对应的解空间规模大。电路物理设计过程中本身就包含了很多复杂度很高甚至于是NP完全问题②,这也就意味着物理设计本身是一个随着规模增大复杂度急剧上升的问题。
② 即多项式复杂程度的非确定性问题, 是世界七大数学难题之一。
对于解决芯片学习物理版图生成这个非常困难的问题,目前已经看到了一些曙光。谷歌使用RL和GNN替代了传统的布局过程,Liao等[31]、He和Bao[22]也提出了直接替代布线过程的小规模电路上的方案,从而证明了AI技术在传统问题上大有可为。物理版图最终是要针对工艺的,而值得庆幸的是,现在芯片设计流程中的设计规则是抽象出来与工艺无关的约束规则,这也将是芯片学习解决方案未来能够泛化到不同工艺上的基础。
2.4 验证测试验证测试贯穿整个芯片设计流程。在不同阶段,芯片开发人员都需要对得到的设计进行反复验证,如功能测试验证、逻辑测试验证、电路测试验证、网表测试验证、版图测试验证。
对于芯片学习而言,验证测试核心要解决的挑战就是黑盒解决方案的精度保证。现有的AI技术虽然能在很多问题上达到很好的效果,但其为人所诟病的一点就在于这些黑盒模型缺乏可解释性,对于输出结果的精度也无法给出理论的保证。这一点对于芯片学习尤其重要,因为芯片流片的成本非常高,即使未来在工程上芯片学习能够解决问题,AI新技术的可解释性也需要继续深入研究。
3 未来工作芯片学习是万物互联的智能时代解决芯片设计需求大和代价高之间矛盾的核心方法。目前,AI新技术在芯片设计流程中已经得到应用(表 1),然而这些工作都还是集中在芯片设计各个环节当中的子问题,主要是辅助传统设计流程,完成预测、评估方面的功能,尚未实现AI取代传统芯片设计流程;芯片学习则是希望能够完全取代传统芯片设计流程,用AI模型学习专家知识,大幅度降低芯片设计门槛,提升芯片设计效率,从而实现端到端的快速无人化芯片设计。
芯片学习未来有3点主要工作。①全流程。芯片学习在各个流程上实现取代传统算法,同时在各个流程中消除人的参与,从而实现芯片设计全流程无人化以节省人力资源,实现高效率的芯片设计。②跨层次优化。利用芯片学习,希望将芯片设计各个环节打通实现跨层次设计与优化,实现大规模芯片统一设计,从而实现更优的芯片设计。③并行加速。 AI技术以计算量大、数据量大著称,而芯片设计又是非常复杂的任务,芯片学习也需要研究并行和加速方法。例如,采用已经蓬勃发展的人工智能芯片,从而保证芯片设计效率。未来,芯片学习希望实现从设计芯片到自动生成芯片的转变,更好地支撑智能万物互联时代的应用需求。
[1] |
Hennessy J L, Patterson D A. A new golden age for computer architecture. Communications of the ACM, 2019, 62(2): 48-60. DOI:10.1145/3282307 |
[2] |
Guo K, Li W, Zhong K, et al. Neural network accelerator comparison. [2021-12-20]. https://nicsefc.ee.tsinghua.edu.cn/projects/neural-network-accelerator/.
|
[3] |
Han S S, Kahng A B, Nath S, et al. A deep learning methodology to proliferate golden signoff timing//2014 Design, Automation & Test in Europe Conference & Exhibition (DATE). Dresden: IEEE, 2014: 1-6.
|
[4] |
Shypula A, Yin P, Lacomis J, et al. Learning to superoptimize real-world programs. (2016-12-04). http://export.arxiv.org/abs/1612.01094.
|
[5] |
Cadence. Ispatial flow in genus: A modern approach for physical synthesis. (2020-06-14)[2021-11-25]. https://community.cadence.com/cadence_blogs_8/b/di/posts/ispatial-flow-in-genus-a-modern-approach-for-physicalsynthesis.
|
[6] |
Synopsys. Dso. ai: Achieve ppa targets faster with the world's first ai application for chip design. [2021-12-20]. https://www.synopsys.com/implementation-and-signoff/ml-aidesign/dso-ai.html.
|
[7] |
Zhao J R, Liang T Y, Sinha S, et al. Machine learning based routing congestion prediction in FPGA high-level synthesis//2019 Design, Automation Test in Europe Conference Exhibition (DATE). Florence: IEEE, 2019: 1130-1135.
|
[8] |
Makrani H M, Sayadi H, Mohsenin T, et al. XPPE: Crossplatform performance estimation of hardware accelerators using machine learning//24th Asia and South Pacific Design Automation Conference. Tokyo: ACM, 2019: 727-732.
|
[9] |
Ferianc M, Fan H X, Chu R, et al. Improving performance estimation for FPGA-based accelerators for convolutional neural networks//16th International Symposium on Applied Reconfigurable Computing. Toledo: Springer, 2020: 3-13.
|
[10] |
Mohammadi Makrani H, Farahmand F, Sayadi H, et al. Pyramid: Machine learning framework to estimate the optimal timing and resource usage of a high-level synthesis design//29th International Conference on Field Programmable Logic and Applications (FPL). Barcelona: IEEE, 2019: 1946-1488.
|
[11] |
Que Y H, Kapre N, Ng H, et al. Improving classification accuracy of a machine learning approach for FPGA timing closure//IEEE 24th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). Washington: IEEE, 2016: 80-83.
|
[12] |
Kim R G, Doppa J R, Pande P P. Machine learning for design space exploration and optimization of manycore systems//2018 IEEE/ACM International Conference on ComputerAided Design (ICCAD). San Diego: IEEE, 2018: 1558-2434.
|
[13] |
Wang Z, Schafer B C. Machine leaming to set metaheuristic specific parameters for high-level synthesis design space exploration//57th ACM/IEEE Design Automation Conference (DAC). San Francisco: IEEE, 2020: 1-6.
|
[14] |
Devlin J, Uesato J, Bhupatiraju S, et al. RobustFill: Neural program learning under Noisy I/O//Proceedings of the 34th International Conference on Machine Learning. Sydney: Association for Computing Machinery, 2017: 1641-1658. .
|
[15] |
Udrescu S M, Tegmark M. AI Feynman: A physics-inspired method for symbolic regression. Science Advances, 2020, 6(16): eaay2631. DOI:10.1126/sciadv.aay2631 |
[16] |
Neto W L, Austin M, Temple S, et al. LSOracle: A logic synthesis framework driven by artificial intelligence: Invited Paper//2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). Westminster: IEEE, 2019: 1558-2434.
|
[17] |
Haaswijk W, Collins E, Seguin B, et al. Deep learning for ogic optimization algorithms//2018 IEEE International Symposium on Circuits and Systems (ISCAS). Florence: IEEE, 2018, 1-4. |
[18] |
Zhu K R, Liu M J, Chen H, et al. Exploring logic optimizations with reinforcement learning and graph convolutional network//ACM/IEEE 2nd Workshop on Machine Learning for CAD (MLCAD). New York: ACM, 2020: 145-150.
|
[19] |
Hosny A, Hashemi S, Shalan M, et al. DRiLLS: Deep reinforcement learning for logic synthesis//25th Asia and South Pacific Design Automation Conference (ASP-DAC). Beijing: IEEE, 2020: 581-586.
|
[20] |
Pasandi G, Peterson M, Herrera M, et al. Deep-PowerX: A deep learning-based framework for low-power approximate logic synthesis//Proceedings of the ACM/IEEE International Symposium on Low Power Electronics and Design. New York: ACM, 2020: 73-78.
|
[21] |
Mirhoseini A, Goldie A, Yazgan M, et al. A graph placement methodology for fast chip design. Nature, 2021, 594: 207-212. DOI:10.1038/s41586-021-03544-w |
[22] |
He Y B, Bao F S. Circuit routing using monte carlo tree search and deep neural networks. (2020-06-24). https://arxiv.org/pdf/2006.13607v1.pdf.
|
[23] |
Lu T J, Wu K, Yang Z P, et al. High-speed channel modeling with deep neural network for signal integrity analysis//IEEE 26th Conference on Electrical Performance of Electronic Packaging and Systems (EPEPS). San Jose: IEEE, 2017: 1-3.
|
[24] |
Nagaria S, Deb S. Designing of an optimization technique for the prediction of CTS outcomes using neural network//2020 IEEE International Symposium on Smart Electronic Systems (iSES) (Formerly iNiS). Chennai: IEEE, 2020: 312- 315.
|
[25] |
Kwon Y, Jung J, Han I, et al. Transient clock power estimation of Pre-CTS netlist//2018 IEEE International Symposium on Circuits and Systems (ISCAS). Florence: IEEE, 2018: 1-4.
|
[26] |
Liang J H, Hari Govind V K, Poupart P, et al. An empirical study of branching heuristics through the lens of global learning rate//International conference on theory and applications of satisfiability testing. Cham: Springer, 2017: 119-135.
|
[27] |
Alawieh M B, Li W X, Lin Y B, et al. High-definition routing congestion prediction for large-scale FPGAs//25th Asia and South Pacific Design Automation Conference. Beijing: IEEE, 2020: 26-31.
|
[28] |
Barboza E C, Shukla N, Chen Y R, et al. Machine learningbased pre-routing timing prediction with reduced pessimism//56th ACM/IEEE Design Automation Conference. Las Vegas: IEEE, 2019: 1-6.
|
[29] |
Ambasana N, Gope D, Mutnury B, et al. Application of artificial neural networks for eye-height/width prediction from s-parameters//IEEE 23rd Conference on Electrical Performance of Electronic Packaging and Systems. Portland: IEEE, 2014: 99-102.
|
[30] |
Chan H G, Goh P. Neural networks for eye height and eye width prediction with an improved adaptive sampling algorithm//Asian Simulation Conference. Singapore: Springer, 2017: 189-201.
|
[31] |
Liao H G, Zhang W T, Dong X L, et al. A deep reinforcement learning approach for global routing. Journal of Mechanical Design, 2020, 142(6): 061701. DOI:10.1115/1.4045044 |
[32] |
Liao H G, Dong Q Y, Dong X L, et al. Attention routing: Track-assignment detailed routing using attention-based reinforcement learning//ASME 2020 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. New York: The American Society of Mechanical Engineers, 2020: 17-19.
|