北京大学+北京微电子技术研究所最新综述:当机器学习遇见EDA | 《电子与信息学报》佳文速递
扫描二维码
随时随地手机看文章
来自北京大学与北京微电子技术研究所的研究团队在《电子与信息学报》发表最新综述文章:
基于机器学习的FPGA电子设计自动化技术研究综述>>
文章讨论了机器学习技术在FPGA中的应用,涉及到高层次综合、逻辑综合及布局布线等多个层面。
审稿专家意见:该选题有较高的价值,对于后续学术研究和应用均有一定帮助,通过阅读这篇论文能对机器学习在FPGA自动化应用上有整体的了解;且FPGA与当前热门的机器学习相结合,对FPGA的智能化发展具有一定的指导作用。
引 言
随着硅工艺发展接近物理极限,用来刻画工艺演进速度的摩尔定律也开始被打破,半导体行业迎来了后摩尔时代。然而集成电路芯片产业并没有因此而停滞发展,现场可编程门阵列(Field Programmable Gate Array, FPGA)由于所具有的高度灵活、可定制以及支持高并发等特性,被广泛应用于后摩尔时代的各个领域。
与此同时,为了能够适应更加复杂的电路系统,FPGA芯片的集成度也在不断增大,从最初只包含有几千个逻辑门的单功能芯片发展到了现今集成了数据信号处理(Digital Signal Processing, DSP)单元、块随机存取存储器(Block Random Access Memory, BRAM)以及多核微处理器的片上系统,FPGA芯片的集成度增加了数万倍。
如此高的芯片集成度使得手动进行电路设计已经不现实,开发设计人员更加依赖于电子设计自动化(Electronic Design Automation, EDA)工具对FPGA数字集成电路进行设计。
但随着FPGA芯片规模的不断增大以及片上设计复杂度的不断提升,例如,AMDXilinx发布的Virtex Ultra Scale+VU19P FPGA,其包含900万个逻辑单元以及近350亿个晶体管,而Intel发布的Stratix10 GX 10M FPGA,更是包含了1020万个逻辑单元以及近430亿个晶体管,基于传统的分析和优化的FPGA EDA技术越来越难以应对大规模电路设计空间探索和算法求解复杂度问题,亟需探索以机器学习为代表的智能化EDA技术,大幅提升设计实现效率。
可喜的是,国内外学者针对基于机器学习方法的FPGA EDA技术的研究已经取得了具有前瞻性的研究成果和进展。来自北京大学与北京微电子技术研究所的田春生博士后研究团队在《电子与信息学报》发表最新综述文章《基于机器学习的FPGA电子设计自动化技术研究综述》。
文章分析梳理了近年来应用机器学习解决FPGA EDA中一些关键问题的研究成果,对FPGA EDA和机器学习的背景知识进行了简要概述,调研了机器学习在FPGA EDA流程不同阶段应用的研究现状,即高层次综合(High Level Synthesis, HLS)、逻辑综合、布局以及布线,在此基础上对机器学习未来在FPGAEDA技术中的应用进行了展望。
FPGA EDA技术概述
作为FPGA芯片设计、应用过程中不可或缺的重要组成部分,在过去的30余年中,FPGA EDA的设计流程变得越来越规范且复杂,具体包括高层次综合(HighLevel Synthesis, HLS)、逻辑综合、布局、布线以及码流生成,如图1所示。
图1 FPGA EDA基本流程
HLS是指将高层次语言描述的逻辑结构自动转换成低抽象级语言描述的电路模型的过程,即HLS能够将C、C++、SystemC等具有较高的抽象度、且不具备时钟或时序概念的高层次语言自动转化为Verilog、VHDL、System Verilog等低层次语言。
由于Verilog、VHDL、System Verilog能够用来描述时钟周期精确的寄存器传输级(Register Transfer Level, RTL)电路模型,是当前FPGA设计中最为普遍适用的电路建模与描述方式。
HLS技术的应用可以提高设计速度、缩短设计周期,方便设计者在系统级进行设计方案的探索、在算法级对设计进行优化。
逻辑综合能够将HDL文件转换为描述指定FPGA器件上不同逻辑单元连接关系的网表文件,需要指出的是,网表中的连接关系只是逻辑连接,即逻辑综合工具只是给出了所需实现的设计的一个“草图”,这个“草图”最终需要由FPGA芯片中可用的逻辑资源来实现。逻辑综合是一个非常复杂的过程,通常情形下只能通过启发式方法来得到一个次优的解决方案。
布局是指在一定的约束条件下(例如,线长、时延、功耗以及面积等),将逻辑综合过程得到的电路网表中的逻辑单元与实际FPGA芯片中的物理位置建立一对一映射的过程。布局作为FPGA EDA流程中的关键环节,同时也是FPGA编译过程中最耗时的步骤之一。
由于FPGA中的布线资源都是预置的、且容量有限,一旦布局算法的解需要过多的布线资源,后续的布线过程将会失败或是需要很长的时间才会得到一个可行的布线解决方案,因此,一个好的布局解决方案对于FPGA EDA的工作流程至关重要。
布线能够在保证资源合法使用的前提下,通过配置FPGA芯片中的可编程开关,从而通过利用硬连线资源连通电路线网中所有的逻辑连接。与此同时,为了保证最终在FPGA芯片实现后的电路设计中的逻辑信号的正常传输,不同线网间的逻辑连接不能够共享相同的硬连线资源。
执行完布线操作后,便可以生成二进制的码流文件,将其下载到芯片内部,最终完成FPGA的配置流程。
得益于学术界和工业界30余年的努力,FPGA芯片的设计流程得到了很好的发展。然而,随着FPGA芯片规模的不断增长,亟需引入更加高效的设计方法来降低设计成本、提升设计效率以及QoR。
近年来,机器学习技术的飞速发展为解决上述问题提供了一个全新的视角。本文综述了机器学习技术在FPGA EDA HLS、逻辑综合、布局、布线等流程中的应用情况,并对发展趋势进行了总结,希冀为未来FPGA EDA技术的发展起到一定促进作用。
研究进展
高层次综合技术
为了提高设计效率并向更广泛的用户群体推广FPGA,高层次综合工具应运而生。高层次综合工具接受高级语言(例如C、C++以及SystemC)作为输入,能够将其自动转换为Verilog或VHDL等形式的硬件描述语言。
但随着片上设计复杂度的不断提升,如何在保证HLS工具输出结果质量的同时减少HLS所需花费的时间、提升设计空间的探索效率是现阶段迫切需解决的关键问题。
机器学习技术的引入为解决上述问题提供了一种新的思路。机器学习技术在HLS中的应用主要包括性能评估以及设计空间的探索等两方面,具体如表1所示。
表1中文献(上下滑动浏览)
[28] DAI S, ZHOU Yuan, ZHANG Hang, et al. Fast and accurate estimation of quality of results in high-level synthesis with machine learning[C]. The 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Boulder, USA, 2018: 129–132. doi: 10.1109/FCCM.2018.00029.
[29] MAKRANI H M, FARAHMAND F, SAYADI H, et al. Pyramid: Machine learning framework to estimate the optimal timing and resource usage of a high-Level synthesis design[C]. The 29th International Conference on Field Programmable Logic and Applications (FPL), Barcelona, Spain, 2019: 397–403. doi: 10.1109/FPL.2019.00069.
[30] FARAHMAND F, FEROZPURI A, DIEHL W, et al. Minerva: Automated hardware optimization tool[C]. 2017 International Conference on ReConFigurable Computing and FPGAs (ReConFig), Cancun, Mexico, 2017: 1–8. doi: 10.1109/RECONFIG.2017.8279804.
[31] USTUN E, DENG Chenhui, PAL D, et al. Accurate operation delay prediction for FPGA HLS using graph neural networks[C]. The 39th International Conference on Computer-Aided Design, San Diego, USA, 2020: 87. doi: 10.1145/3400302.3415657..
[32] MAKRANI H M, SAYADI H, MOHSENIN T, et al. XPPE: Cross-platform performance estimation of hardware accelerators using machine learning[C]. The 24th Asia and South Pacific Design Automation Conference, Tokyo, Japan, 2019: 727–732. doi: 10.1145/3287624.3288756.
[33] O’NEAL K, LIU M, TANG H, et al. HLSPredict: Cross platform performance prediction for FPGA high-level synthesis[C]. 2018 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Diego, USA, 2018:1–8. doi: 10.1145/3240765.3240816.
[34] LIU Dong and SCHAFER B C. Efficient and reliable High-Level Synthesis design space explorer for FPGAs[C]. The 26th International Conference on Field Programmable Logic and Applications (FPL), Lausanne, Switzerland, 2016: 1–8.doi: 10.1109/FPL.2016.7577370.
[35] LIU H Y and CARLONI L P. On learning-based methods for design-space exploration with high-level synthesis[C]. Proceedings of the 50th Annual Design Automation Conference, Austin, USA, 2013: 50. doi: 10.1145/2463209.2488795.
[36] MENG Pingfan, ALTHOFF A, GAUTIER Q, et al. Adaptive threshold non-pareto elimination: Re-thinking machine learning for system level design space exploration on FPGAs[C]. 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE), Dresden, Germany, 2016:918–923. doi: 10.3850/9783981537079_0350.
逻辑综合技术
逻辑综合是一个具有复杂约束条件的优化问题,需要精确的求解才能够保证后续设计流程的准确性。
使用机器学习算法来直接生成逻辑综合的解决方案是非常困难的,现阶段机器学习算法的主要应用是用来调度一些已有的优化策略。
例如,Lau等人[37]提出了一种人工智能驱动的逻辑综合架构:LSOracle,LSOracle中集成了与非图(And-Inverter Graph, AIG)和表决器非图(Major-Inverter Graph, MIG)两种优化器,首先使用k划分的方法将电路的有向无环图(Directed Acyclic Graph, DAG)划分为k个部分,在此基础上,依靠深度神经网络(Deep Neural Network, DNN)来动态决定将哪个优化器应用于电路的不同部分。
最终实验结果表明,与单独使用AIG优化器和DAG优化器相比较,LSOracle在面积-时延方面的性能平均提升了6.87%和2.70%。
当前的综合工具(例如,加州大学伯克利分校开发的ABC工具)中包含有许多逻辑转换的流程[38],为了选择一个合适的流程,Yu等人[39]提出了一种完全自动化的逻辑综合架构,该架构以待综合的HDL代码作为输入,输出为两组不同的逻辑综合流程:即“天使流程”(Angel-flows)和“魔鬼流程”(Devil-flows),它们分别对应了设计目标的最佳和最差的结果质量(QoR)。
该问题被建模为一个多分类问题并使用基于卷积神经网络(Convolutional Neural Network,CNN)的分类器进行求解。其主要思想是用一小组经过标记的随机的逻辑综合的流程来训练一个CNN的分类器,此处所提到的不同的逻辑综合流程的标签是通过一个或多个不同QoR的指标进行标记的,例如时延、面积以及功率等。经过训练后的分类器便可以用来预测未被标记的逻辑综合的流程。
最后,通过对预测置信度(即属于某个类别的概率)进行排序来生成“天使流”与“魔鬼流”。整个架构的具体流程如图2所示。Wu等人[40]提出了一种基于混合图神经网络的优化方法,针对逻辑综合的流程进行优化,以提升结果质量的评估以及优化方法的泛化能力。其关键思想在于同时利用来自硬件设计和逻辑综合流程的时空信息来预测不同设计上各种不同综合流程的性能指标,最终的实验结果也表明利用混合图神经网络的优化方法在误差精度是现有方法的7~15倍。
图2 自动化逻辑综合架构
除了上述工作外,也有研究学者提出使用强化学习(Reinforcement Learning, RL)方法来优化逻辑综合的流程。
例如在文献[42]中,图卷积网络(Graph Convolutional Network, GCN)被用作策略函数来获取每个动作的概率。文献[43]则采用无监督的优势演员-评论家(AdvantageActor Critic, A2C)机制来搜索最佳的解决方案。
宁波大学储著飞老师团队提出了一种基于强化学习的近端策略优化方法来训练调整优化序列,具体地,使用具有边缘特征聚合能力的图同构网络来学习电路表示,并将电路表示作为强化学习的智能体的状态,在此基础上,为了使智能体能够从历史的经验中学习到相关的知识,长短期记忆网络(Long Short-Term Memory, LSTM)被进一步嵌入到强化学习的模型中,与文献[43]相比较,面积指标优化了21.21%。
基于机器学习的逻辑综合技术虽然得到了大范围的研究,但上述方法要么需要大量标记数据进行训练,要么由于计算开销,在实际EDA工程的应用中受到了极大的限制。为了克服上述问题,Yu等人提出了一种全新的适用于布尔逻辑优化的端到端的、高性能的、针对特定领域的Bandit计算架构,该架构能够同时对AIG、布尔可满足性的连接范式、标准单元技术映射后的静态时序分析以及6输入查找表(LookUp Table,LUT)架构的FPGA技术映射问题进行优化,最终的实验结果也表明,该方法的运算速度要优于文献[39]与文[43]中所提出的方法。
GROSNIT等人则是提出了一种基于贝叶斯理论的方法来解决样本复杂度过高的问题,实现了高效且可扩展的基于机器学习的逻辑综合的解决方案。
布局技术
布局作为FPGA EDA工作流程中的核心步骤之一,是典型的超大规模非确定性多项式(Non-deterministic Polynomial, NP)困难组合优化问题,对时延、线网可布通性、功耗等功能指标影响巨大。
由于过去30余年FPGA架构的不断演进,现代FPGA拥有数以千计的DSP、RAM以及数百万个查找表(Look-Up Table, LUT)和触发器(Flip-Flop, FF)实例,这些异构资源通常完全分散在FPGA架构的离散位置上,这种复杂性和异构性对现代FPGA布局器的运行效率和结果质量提出了严峻的挑战,将机器学习与传统布局方法相结合是解决上述问题的有效途径,具体如表2所示。
表2中文献(上下滑动浏览)
[44] YANG Chenghao, XIA Yinshui, CHU Zhufei, et al. Logic synthesis optimization sequence tuning using RL-based LSTM and graph isomorphism network[J]. IEEE Transactions on Circuits and Systems II:Express Briefs, 2022, 69(8): 3600–3604. doi: 10.1109/TCSII.2022.3168344.
[45] YU Cunxi. FlowTune: Practical multi-armed bandits in Boolean optimization[C]. The 39th International Conference on Computer-Aided Design, San Diego, USA, 2020: 130. doi: 10.1145/3400302.3415615.
[46] GROSNIT A, MALHERBE C, TUTUNOV R, et al. BOiLS: Bayesian optimisation for logic synthesis[C]. 2022 Design, Automation & Test in Europe Conference & Exhibition (DATE), Antwerp, Belgium, 2022: 1193–1196. doi: 10.23919/DATE54114.2022.9774632.
[58] MENG Yibai, LI Wuxi, LIN Yibo, et al. elfPlace: Electrostatics-based placement for large-scale heterogeneous FPGAs[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2022, 41(1): 155–168. doi: 10.1109/TCAD.2021.3053191.
[59] LU Jingwei, CHEN Pengwen, CHANG C C, et al. ePlace: Electrostatics based placement using Nesterov's method[C]. The 51st Annual Design Automation Conference, San Francisco, USA, 2014: 1–6. doi: 10.1145/2593069.2593133.
[60] LI Wuxi, DHAR S, and PAN D Z. UTPlaceF: A routability-driven FPGA placer with physical and congestion aware packing[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2018, 37(4): 869–882. doi: 10.1109/TCAD.2017.2729349.
[61] CHEN Gengjie, PUI C W , CHOW W K , et al. RippleFPGA: Routability-driven simultaneous packing and placement for modern FPGAs[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018, 37(10): 2022–2035. doi: 10.1109/TCAD.2017.2778058.
[62] ABUOWAIMER Z, MAAROUF D, MARTIN T, et al. GPlace3.0: Routability-driven analytic placer for UltraScale FPGA architectures[J]. ACM Transactions on Design Automation of Electronic Systems, 2018, 23(5): 66. doi: 10.1145/3233244.