当前位置:首页 > 公众号精选 > 电子与信息学报
[导读]随着硅工艺发展接近物理极限,用来刻画工艺演进速度的摩尔定律也开始被打破,半导体行业迎来了后摩尔时代。然而集成电路芯片产业并没有因此而停滞发展,现场可编程门阵列(Field Programmable Gate Array, FPGA)由于所具有的高度灵活、可定制以及支持高并发等特性,被广泛应用于后摩尔时代的各个领域。

编者按

来自北京大学北京微电子技术研究所的研究团队在《电子与信息学报》发表最新综述文章:

基于机器学习的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.


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

机器学习作为人工智能领域的重要组成部分,其过程涉及到多个核心环节。本文将详细阐述机器学习的四个主要步骤:数据准备、模型选择、模型训练与评估,以及模型部署与应用,以揭示机器学习从数据到应用的完整流程。

关键字: 数据 人工智能 机器学习

随着信息技术的迅猛发展和大数据时代的到来,机器学习成为了人工智能领域中的核心技术之一。机器学习是通过模拟人类学习行为,使计算机系统能够从数据中自动发现规律、提取特征并进行预测和决策的过程。它在诸多领域取得了广泛的应用,包...

关键字: 计算机 人工智能 机器学习

机器学习算法是人工智能领域中的核心技术之一,它通过对大量数据进行学习,自动发现数据中的规律和模式,从而实现对新数据的预测、分类、聚类等任务。本文将深入探讨机器学习算法的基本过程,包括数据准备、模型选择、训练与评估等关键步...

关键字: 数据 人工智能 机器学习

随着大数据时代的到来,数据处理成为了一项至关重要的任务。传统的数据处理方法往往面临着效率低下、准确性不高等问题,而机器学习技术的兴起为数据处理带来了全新的解决方案。本文将深入探讨机器学习在数据处理中的应用,并分析其优势和...

关键字: 数据处理 计算机 机器学习

机器学习是人工智能领域的一个重要分支,它使用各种算法来使计算机系统能够从数据中学习和改进,而无需进行明确的编程。在机器学习的广阔领域中,有多种算法被广泛应用,每种算法都有其独特的适用场景和优势。本文将详细介绍机器学习中的...

关键字: 机器学习 人工智能 计算机

随着信息技术的飞速发展和大数据时代的到来,数据挖掘和机器学习作为数据处理的两大核心技术,在各行各业中发挥着越来越重要的作用。然而,尽管数据挖掘和机器学习在很多方面存在交集,但它们各自具有独特的定义、方法和应用场景。本文旨...

关键字: 数据挖掘 机器学习 数据处理

随着大数据时代的到来和计算能力的不断提升,机器学习作为人工智能领域的重要分支,正逐渐改变我们的生活方式和工作模式。机器学习涉及多个学科的理论和技术,其应用广泛且深入,为各个领域的发展带来了前所未有的机遇。那么,机器学习具...

关键字: 大数据 机器学习 人工智能

随着信息技术的飞速发展,机器学习(Machine Learning)作为人工智能领域的重要分支,正在逐步改变我们生活的方方面面。那么,什么叫做机器学习呢?简单来说,机器学习是一门研究如何让计算机从数据中自动获取知识和技能...

关键字: 机器学习 人工智能 计算机

随着信息技术的飞速发展,数据已经成为现代社会的重要资源。数据挖掘和机器学习作为处理和分析数据的两大关键技术,在多个领域得到了广泛应用。尽管它们在某些方面存在重叠,但数据挖掘和机器学习在定义、目标、方法以及应用场景等方面存...

关键字: 数据挖掘 机器学习 计算机

随着信息化时代的快速发展,数据已经渗透到各行各业,并成为了重要的生产要素。数据挖掘和机器学习作为处理和分析数据的两大核心技术,对于从海量数据中提取有价值的信息、优化决策过程和提高业务效率具有至关重要的作用。本文将详细介绍...

关键字: 信息化 机器学习 数据挖掘
关闭