转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net]

Paper原文:https://dl.acm.org/doi/pdf/10.1145/3543853​​​​​​​

目录

0 ABSTRACT

1 INTRODUCTION

2 BACKGROUND AND DEFINITION

2.1 Electronic Design Automation

2.2 Graphs

2.3 Shallow Embeddings Methods

2.4 Graph Neural Networks

3 CLASSIFICATION OF GRAPH NEURAL NETWORKS

3.1 Recurrent Graph Neural Networks

3.2 Convolutional Graph Neural Networks

3.3 Graph Autoencoders

3.4 Spatial-Temporal Graph Neural Networks

4 GRAPH NEURAL NETWORKS PIPELINE

4.1 Graph Definition

4.2 Task Definition

4.3 Model Definition

5 PIPELINE APPLICATION TO EDA

5.1 Logic Synthesis

5.2 Verification and Signoff

5.3 Floorplanning

5.4 Placement

5.5 Routing

5.6 Testing

5.7 Reverse Engineering

5.8 Analog Design

6 LESSONS LEARNED: APPLICATION RESULTS TO EDA

6.1 GNNs Superiority

6.1.1 Compared to shallow ML methods.

6.1.2 Compared to deep ML methods.

6.1.3 Compared to task-specific baselines.

6.2 Graph Types

6.3 Models Depth

6.4 Classical Machine Learning Techniques

6.5 Tools

7 CHALLENGES AND FUTURE RESEARCH

7.1 GNNs Challenges

7.2 GNNs in EDA Challenges

7.3 Future Work

7.3.1 Exploiting Transfer Learning

7.3.2 Exploiting Feature Information

7.3.3 Enlarging Datasets

8 CONCLUSION

ACKNOWLEDGMENTS


0 ABSTRACT

在摩尔定律的推动下,芯片设计的复杂度在稳步增加。电子设计自动化 (EDA) 已经能够应对具有挑战性的超大规模集成过程,确保可扩展性、可靠性和适当的上市时间。然而,EDA 方法需要时间和资源,而且它们通常不能保证最佳解决方案。为了缓解这些问题,机器学习 (ML) 已被纳入设计的许多阶段,例如布局和布线。许多解决方案采用欧几里德数据和 ML 技术,而没有考虑到许多 EDA 对象自然表示为图形。趋势图神经网络 (GNN) 是直接使用电路、中间 RTL网表的图结构来解决 EDA 问题的机会。在本文中,我们全面回顾了将 EDA low for chip design 和 Graph Neural Networks 联系起来的现有工作。我们通过定义图形、任务和模型类型将这些工作映射到设计流水线。此外,我们分析了它们的实际意义和结果。最后,我们总结了在 EDA 设计中应用 GNN 时面临的挑战。

1 INTRODUCTION

随着时间的推移,芯片设计集成了多种软件工具来高效可靠地综合、模拟、测试验证不同的电子设计。这些工具的概要称为电子设计自动化 (EDA)。这些工具使图 1 中所示的芯片设计自动化。然而,流程是顺序的并且需要时间。通常,必须对设计进行验证和测试,以确保正确性、可靠性和目标收敛。但只有在物理验证和签名以及测试期间,才能衡量设计在功率、性能和面积 (PPA) 方面的质量。通常需要在中间步骤中进行纠正修改,这会导致设计的多次迭代。因此,在设计的早期阶段对 PPA 的估计将减少所需的迭代次数,增加设计的可靠性,同时深入研究flow,并最终提高结果质量 (QoR)。

Fig. 1. Chip Design Flow

在过去几年中,由摩尔定律驱动的设计复杂性有所增加。芯片容量大约每两年翻一番,这意味着对更多样化芯片的设计和验证的努力越来越大。 EDA 工具旨在应对新挑战,并为超大规模集成 (VLSI) 提供自动化解决方案。 EDA 工具通常面临 NP-complete 问题,机器学习 (ML) 方法可以更好更快地解决这些问题。因此,ML 已集成到 EDA 中,尤其是逻辑综合、布局、布线、测试和验证 [23]。在 [23] 中,确定了四个主要的行动领域。首先,ML 用于预测传统方法的最佳配置。其次,ML 学习模型的特征及其性能来预测看不见的设计的行为,而无需运行昂贵的综合步骤。此外,在优化 PPA 的同时,可以通过 ML 进行设计空间探索。最后,强化学习 (RL) 探索设计空间、学习策略并执行转换,以通过“人工智能辅助设计流程”获得展望未来的最佳设计。

在 EDA 中使用 ML 的一个促成因素是 EDA 工具在设计过程中生成的大量数据。要在此类数据上应用 ML,必须对这些数据进行预处理和标记。现有解决方案使用欧几里得数据等数据,即在二维欧几里得空间中表示它们,允许使用 ML 方法,如 [11、53] 中所做的卷积神经网络 (CNN)。然而,用于图形的趋势神经网络框架称为图形神经网络 (GNN)在处理直观地为图形的数据时显示出显着的改进。尽管 GNN 早在 2005 年就出现了,但它们最近与卷积和池化等深度学习 (DL) 操作的结合在分子图 [65]、推荐系统 [64] 和轨迹预测 [66] 等领域引起了极大的关注。

在 EDA 中,电路、中间 RTL、网表和布局最自然的表示是图形。在过去两年中,很少有研究认识到这个机会,并结合使用 GNN 来解决 EDA 问题。

本调查全面回顾了最近在 EDA 流程的不同阶段使用 GNN 的一些研究。它首先提供了这两个领域的背景,然后是一系列开创性的相关工作。本调查的其余部分组织如下:在第 2 节中,我们简要回顾了 EDA 流程和背景概念。在第 3 节中,我们对不同类型的 GNN 进行了更详细的解释。在第 4 节中,我们从设计的角度解释了 GNN pipeline。在第 5 节中,我们讨论了将该流水线应用于 EDA 任务的不同研究,在第 6 节中我们总结了它们的主要成果。最后,第 7 节总结了一些开放的挑战和未来的方向。

2 BACKGROUND AND DEFINITION

在本节中,我们将简要回顾与 EDA 流程、图和 GNN 相关的背景概念。

2.1 Electronic Design Automation

EDA 工具和设计方法的进步,以及设计底层不同抽象层次的使用提高了硬件设计的生产力。图 1 描绘了现代芯片设计过程的各个阶段。flow开始于对所需应用进行建模的芯片规范。设计的架构分析和原型将设计表示为交互模块的集合,例如处理器、存储器和总线。在功能和逻辑设计中,这些模块的行为描述使用诸如 Verilog 之类的硬件描述语言 (HDL) 映射到寄存器传输级 (RTL) 块。如今,从系统规范到 RTL 的过渡可以通过不同的方式完成。例如,使用高级综合 (HLS),它提供从 C/C++/System-C 规范到 HDL 的自动转换,或者使用 MetaRTL [51] 和 Chisel [5] 等硬件设计框架。

 逻辑综合将 HDL 中的 RTL 块映射到从给定技术库中选择的门组合,同时针对不同目标优化设计。通常,这种优化涉及时序收敛、面积和功耗之间的权衡

物理综合中,执行四个主要步骤:布局规划、布局、时钟插入和布线。首先,将芯片、宏和端口的主要 RTL 块分配给布局区域。其次,生成的逻辑网表的门被放置在芯片的特定位置。最后,添加用于时钟信号和连接门的导线。执行这些步骤的目的是在考虑设计规则的同时实现更好的面积利用率、时序性能、拥塞​​和可布线性

由于设计中的错误会耗费时间和资源,因此验证是一个基本步骤,在功能和物理设计之后执行。验证和签收后,设计将进入制造流程:制造、封装和最终测试。设计上的功能错误和违反约束会导致设计迭代次数少,这可能需要数天或数周时间。数字设计流程应用“分而治之”策略,该策略产生了独立工作的工具和子团队的纲要。因此,流程版本设计的迭代成本很高。为优化 EDA 流程,DARPA IDEA 计划提出了 OpenROAD1(“开放式可访问设计的基础和实现”)[3] 和 ALIGN2(“模拟布局,从网表智能生成”)[31] 项目。 OpenROAD 和 ALIGN 是免费的、完全自主的开源工具链,分别用于数字模拟流程的布局生成。

1https://github.com/The-OpenROAD-Project

2https://github.com/ALIGN-analoglayout/ALIGN-public

尽管从 RTL 到图形数据系统 II (GDSII) 的流程是高度自动化的,但它也遇到了一些缺点:(1) 它依赖于硬件设计人员的专业知识来选择合适的 EDA 工具配置(2) RTL 的设计空间探索,逻辑综合和物理综合是手动的,因此是有限且耗时的(3) 设计中的更正将重新初始化流程(4) 没有早期分析或结果的可预测性。为了应对其中的一些挑战,EDA 社区和项目(例如 OpenROAD 和 ALIGN)正在将 ML 技术整合到设计中。例如,优化时序驱动逻辑综合的设计空间探索 [3]。此外,OpenROAD 正在开发一种称为 METRICS 2.0 [20] 的数据收集和存储基础架构,以支持更多的 ML 应用程序用于工具和流程结果预测。另一方面,ALIGN 已经包含 ML 方法来创建满足专业设计师期望的高质量布局。

据我们所知,OpenROAD 和 ALIGN 都没有开始探索 GNN 的使用。但是,可以增强这两个开源框架以收集特征图,这些图直观地表示更好的 EDA 对象。克服数据生成挑战将促进 GNN 在 EDA 中的探索。这种探索的动机还在于,由于考虑了特征和拓扑信息,GNN 已被证明优于其他 ML 模型。

“GNN更有优势”

Fig. 2. Overview of diferent topologies of graphs. The colors of the nodes represent their type, i.e. the red and blue nodes are of diferent type. Note that all graphs in the figure are static, except for the dynamic graph in the fourth column. In the hypergraph example, e1 and e2 represent hyperedges.

 2.2 Graphs

        Types of Graphs.  图被分为不同的类别,如图 2 所示。如果边的方向很重要,则图是有向的,并且邻接矩阵 A 将是对称的如果边没有方向,则图是无向的。如果边用成本或实值表示,则该图称为加权图,并且 A 将具有实值作为条目。多路图可以分解为层,每一层与所属节点之间的关系是附加的层内边。图也可以是同质或异质的。在前者中,所有节点和边都具有相同的类型。在后者中,节点具有不同的类型,并且它们的属性也可能具有不同的类型[17]。在动态图中,特征和拓扑信息随时间变化。在其他情况下,它们被称为静态图 [72]。这些类别的图是正交的,即它们可以组合

GNN 架构支持不同类别的输入图,例如异构 [68]、动态 [40] 和有向 [24]。然而,在实际应用中可能会遇到更复杂类型的图。当前的研究旨在将 GNN 扩展到更多的图类型,例如超图 [70],其中超边连接到两个以上的顶点,以及二分图 [33],其顶点形成两个不相交且独立的集合。

2.3 Shallow Embeddings Methods

处理图结构数据的传统方法是使用浅嵌入方法。这些旨在将节点信息分解为低维嵌入向量,考虑图中节点的位置和邻域的结构[17]。最著名的图嵌入技术之一是 Random Walk [36]。在这种技术中,给定图中的起点,随机选择一个相邻点。作为第二步,再次选择随机选择的点的邻居。这是以递归方式完成的。这会生成一个随机的点序列,即随机游走。 DeepWalk [45] 和 Node2vec [16] 是众所周知的基于随机游走的图嵌入方法。尽管这些方法取得了突破性的成功,但它们也存在一些局限性[17]:

  • 他们的编码器将重要信息从图中映射到嵌入空间,优化每个节点的唯一嵌入向量。这在大图中的计算/统计上可能是昂贵的
  • 它们是转导的,即它们只能为训练期间看到的节点生成嵌入。这是一个主要缺点,因为该模型无法推广到看不见的节点
  • 他们没有考虑在编码过程中可以提供宝贵信息的节点特征

类似地,由于两个主要原因,其他神经网络 (NN),例如 CNN,如果不将其结构映射到固定大小的向量格式,就无法直接对图形数据进行操作。首先,图没有固定的局部性或滑动窗口概念来执行卷积操作。其次,图没有固定的节点顺序。作用在图上的操作应该对节点排序或排列保持不变。

2.4 Graph Neural Networks

为了克服浅层方法和深层 NN 的局限性,在 [14] 中引入了一种称为 GNN 的新型 NN。

GNN 是直接在图上运行的神经网络框架。在代数中,排列是一种改变元素顺序的操作。由于不假定图结构数据具有任何特定顺序,因此依赖于节点顺序的网络将为两个同构图提供不同的结果。因此,GNN 由置换不变函数和置换等变函数组成,因此也可以在节点粒度上运行。最后,GNN 可以在不丢失拓扑和特征信息的情况下处理图结构数据 [14]。最初,GNN 被制定为一种循环神经网络 (RNN),由一种时间反向传播版本训练 [26]。

有了输入图,GNN 旨在学习每个节点的嵌入向量,定义为 hu∀u ∈ V,它编码每个节点的邻域信息 [60]。 GNN 使用消息传递策略,因为节点嵌入或消息通过邻居传递。在该策略中,节点对交换基于向量的消息,并应用非线性可微函数来更新它们的节点嵌入 hu,∀u ∈ V。图结构会影响消息传递更新,因为每个节点都会聚合来自其本地邻居的消息

消息传递策略已被 GNN 的新颖架构继承,将在下一节中进行描述。

3 CLASSIFICATION OF GRAPH NEURAL NETWORKS

GNN 分为四种类型 [60]。在本节中,我们将回顾它们并描述它们的核心思想。

3.1 Recurrent Graph Neural Networks

递归图神经网络(RecGNNs)[60]通过假设节点与其邻居交换信息直到达到稳定点来循环处理节点信息。 RecGNN 定义节点聚合函数,如公式 1 所示。

在 [50] 中,所提出的架构是一个 RNN,其中神经元之间的连接分为内部连接和外部连接。前者指的是网络单元内的内部连接,而外部连接指的是已处理图的边缘。

3.2 Convolutional Graph Neural Networks

卷积图神经网络 (ConvGNN) 旨在通过堆叠多个图卷积层来学习嵌入向量。与共享权重的 RecGNN 不同,ConvGNN 每层使用不同的权重。 ConvGNN 是 CNN 对图形数据的泛化,分为光谱和空间方法 [60]:

Spectral Approaches. 在这种情况下,假定图是无向的。由于图域没有公共坐标系,也没有移位不变性,因此使用信号处理中的卷积定理定义图上的卷积,该定理指出傅里叶变换使卷积算子对角化,即时域中两个信号的卷积相等到这两个信号在频域中的乘积。因此,谱方法基于拉普拉斯算子的本征基,这取决于图结构。

Spatial Approaches. 这些方法基于图形的空间结构,即它们适用于空间上接近的邻居。 CNN 是此类方法的一个示例。将图像的像素视为图形的节点,然后 CNN 对所选中心节点的像素值进行加权平均,并在每个通道内计算其相邻节点。请注意,与图像不同,图形没有规则的邻居,也没有固定的大小。

在 [27] 中,提出了一种对图结构执行卷积运算的谱方法。这称为图卷积网络 (GCN)。这种方法的主要原理是通过聚合中心节点和邻居节点的特征来提取节点的高级嵌入。在数学上,这表示为等式 2。

3.3 Graph Autoencoders

图自动编码器 (GAE) [60] 属于无监督框架家族,因为训练数据没有真实标签。因此,计算的损失取决于整个图的拓扑信息,包括节点和边缘特征[58]。

GAE 用于两种类型的任务:基于图的表示学习和图生成。在这两个任务中,首先使用编码器通过使用 ConvGNN 或 RecGNN 层为每个节点 u ∈ V 计算相应的嵌入向量 hu。请注意,编码器提取的图嵌入是低维向量,它包含节点特征但保留图的拓扑信息 [60]。编码器提供的嵌入用作解码器的输入。解码器旨在重建邻接矩阵 ^A,使到原始矩阵 A 的距离最小化,如等式 5 所示,其中 σ (·) 是 logistic sigmoid 函数 [60]。

对于表示学习任务,通过构建新的邻接矩阵来重构图结构信息。在图形生成的情况下,该过程可能涉及节点和边的逐步生成或一次输出整个图形。

在 [28] 中提出的最常用的 GAE 之一中,GCN 被用作编码器来提取图嵌入。解码器网络旨在通过应用简单的内积来学习原始邻接矩阵和重构邻接矩阵之间的相似性。此外,他们引入了 GAE 的变分版本来学习数据的生成分布。这解决了由于模型容量高而可能导致的过度拟合问题

Fig. 3. Design pipeline using GNNs. The input graph definition includes high-dimensional feature vectors X , and labels, only in supervised and semi-supervised learning setings. The GNN model is built stacking L layers of computational modules. The embedding vectors H are used to solve an end task usually using NNs.

 3.4 Spatial-Temporal Graph Neural Networks

在许多实际应用中,输入图的结构会随时间发生变化,即矩阵 A 和 X 沿时间轴变化。使用时空图的一个例子是计算机视觉领域的动作识别问题[63]。在这个问题中,人体关节,即固有的体内连接,代表了空间图连接。跨连续帧连接人体关节的边,即帧间边,表示时间图连接。

基于分别用于捕获空间和时间关系的层,不同的时空图神经网络 (STGNN) 架构以最先进的方式呈现。在 [60] 中,突出了两个主要架构:基于 CNN 和基于 RNN。前者使用 ConvGNN 来捕获空间关系,使用 1-D-CNN 层来捕获时间依赖性。因此,ConvGNN 在 At 和 Xt 上运行,一维卷积核沿时间轴在 X 上切片。基于 RNN 的 STGNN 使用两个 RecGNN 层分别捕获空间和时间关系。一个 RecGNN 层应用于 Xt,另一个应用于 Ht -1。两层的输出被聚合以构建最终的嵌入矩阵 Ht。

STGNN 解决了​​广泛的问题,例如大流行预测、活动识别和其他时间序列预测。例如,[66] 中提出了一种新的 STGNN 模型来解决轨迹预测问题。在这个模型中,空间关系是通过使用图卷积来捕获的,而时间关系是通过在时间轴上使用卷积来建模的

4 GRAPH NEURAL NETWORKS PIPELINE

在 [72] 中,介绍了 GNN 的设计流程。他们将设计分为四个主要步骤:输入图构建、图类型和尺度定义、损失函数选择和 GNN 模型构建。 GNN 学习到的图嵌入可用作其他 ML 模型的输入,构建如图 3 所示的端到端框架。我们将这一流程总结为图 4 所示的三个主要构建块。

4.1 Graph Definition

此步骤涉及如何将任务映射到图形结构,以及从第 2.2 节中讨论的图形类别映射到哪个任务。在 [72] 中,定义了两种类型的任务场景:结构性和非结构性。后者指的是数据不是明确图形的任务,应该首先转换。在此步骤中,应定义每个节点或边缘的特征向量。

4.2 Task Definition

基于要解决的问题,定义任务的粒度和监督设置。 GNN 的任务分为三个级别:节点级别、边级别和图级别。在节点级任务中,每个节点的嵌入向量用于预测单个节点的特征,对它们进行分类或聚类。在边缘级别,比较节点对的嵌入向量以对节点的连接进行分类预测链接是否存在。最后,在图级任务中,聚合所有节点嵌入向量以得出整个图的结论

基于端到端框架中目标标签的可用性,我们以不同的方式训练模型:监督,如果所有节点都被标记;半监督,如果只知道一些标签;和无监督的,当没有标签可用时 [60]。目标任务和监督设置共同决定了训练期间要使用的损失函数。例如,节点级监督回归任务需要均方误差 (MSE) 函数作为训练集中所有节点的损失函数。在节点级半监督分类任务的情况下,交叉熵损失可用于少数提供的标记节点。

此外,GNN 可以是转导的或归纳的。转导 GNN 学习训练图中每个节点的嵌入向量。因此,在推理过程中,它们不能泛化到看不见的节点。相反,归纳 GNN 学习聚合。

4.3 Model Definition

在 [72] 中,GNN 模型被定义为堆叠计算模块的概要。他们提出了三种不同类型的模块来构建可以处理大规模图的 GNN 模型:传播、采样和池化

 传播模块在保留特征和拓扑信息的节点之间传播和聚合信息。第 3 节中介绍的不同类型的 GNN 层是传播模块。由残差神经网络(ResNets)[21] 激发的跳跃连接机制也被认为是一个传播模块。跳过连接模块利用前一层的节点嵌入来缓解由信息通过深度 GNN 传播引起的梯度消失问题。跳过连接模式的示例是与所有先前层的连接,或所有层的连接仅到最后一层 [7]。

在 GNN 中,一个节点的信息被聚合到其上一层邻居的信息中。因此,深度 GNN 会导致需要考虑和聚合的邻居呈指数增长采样模块减轻了邻居爆炸采样粒度可以是节点、层和子采样级别。在节点级别,通过考虑每个节点的固定数量的邻居来限制邻域大小。在层级,每层只考虑固定数量的节点进行聚合。最后,子图级采样将邻域搜索限制为采样子图[72]。

由 CNN 中的池化层驱动的池化模块在减小图的大小的同时获得更一般的特征。文献中有两类主要的池化模块: 定向池化,也称为读出或全局池化,它对节点特征应用节点操作以获得图级表示;和分层池化,它遵循分层模式并按层学习图表示[72]。

5 PIPELINE APPLICATION TO EDA

这两篇开创性论文 [25, 41] 强调了 EDA 任务和 GNN 之间的重要联系。

[41] 中的研究首次认识到 GNN 在 EDA 中的巨大潜力。他们表示,图形结构是表示布尔函数、网表和布局的最直观方式,这些是 EDA 流程的主要关注点。他们将 GNN 视为 EDA 改进 QoR 并取代使用的传统浅层方法或数学优化技术的机会。本文列出了将分析和启发式方法以及浅层方法应用于 EDA 的相关研究。最后,他们介绍了基于光谱基于空间的 GNN,并仅展示了两个研究案例:测试点插入和时序模型选择。

图 4. 使用 GNN 构建应用程序块

图 5. 使用 EDA 对象作为图形的端到端流程。使用 EDA 工具收集用于监督/半监督训练的特征节点 x 和地面实况标签(例如红色和绿色标志)。其中一种 GNN 风格提取节点嵌入 h,它是其他 ML 方法的输入,用于在节点、图或边缘级别进行分类或回归。

在 [25] 中,对 CNN 以及在 EDA 流程中使用的 GNN 进行了回顾。他们表示,ML 可以通过预测设计空间探索、功耗分析、物理设计和模拟设计等不同阶段的重要指标来提高芯片设计期间的 QoR。与 [41] 类似,他们设想使用深度强化学习 (DRL) 来解决 EDA 中的组合优化问题,类似于 [52] 中所做的。

在 [41] 和 [25] 中,将趋势 GNN 纳入 EDA 流程的动机很明确。然而,它们并不完全集中在这两个领域。 [41] 还关注使用传统浅层方法的现有应用程序。另一方面,[25] 回顾了 CNN 和 GNN 的使用。此外,[25] 从 EDA 的角度比较了应用程序,没有透露背后 GNN 概念的细节。

表 1. 数字 EDA 流程的 GNN 总结

考虑到上述工作的缺点,本调查给出了背景,并回顾了最近将 GNN 应用于 EDA 领域的重要研究。为了阐明这两个领域之间的联系,这些研究的回顾是根据它们在数字设计低层中的相应阶段进行组织的。表 1 列出了本综述中考虑的研究。扩展 [54] 中的讨论,本调查考虑了更多的应用程序并更深入地分析了它们的结果。

EDA 管道如图 5 所示。通常,EDA 应用程序是一种结构化场景,其中数据是直观的图形,不需要额外的映射。然而,图和特征向量的定义是一个关键步骤,需要有关要解决的端到端任务的知识专长。另一方面,特征向量应该包含与我们的端到端目标相关的特征,并且可以从 EDA 工具和流程结果中为所有节点收集这些特征。这同样适用于监督或半监督设置中的节点标签。

我们通过提供有关使用的图类型、特征向量和 GNN 架构的详细信息,将第 3 节中描述的设计管道映射到 EDA 应用程序。

5.1 Logic Synthesis

逻辑综合期间,描述硬件设计的 RTL 模块被映射到技术库中的逻辑单元。此映射必须满足时序约束,以在所需时钟速率下运行,同时考虑面积和功耗。因此,综合是一个可以应用 ML 的复杂优化问题。例如,提供更早的 QoR 预测以避免耗时的合成步骤的多次运行

为了预测现场可编程门阵列 (FPGA) 块的更准确延迟,[55] 建议学习 FPGA 中算术运算的映射和聚类模式,尤其是数字信号处理器 (DSP) 和进位块。他们认识到,当前的 HLS 解决方案仅汇总了路径上每个组件的各个延迟。这不考虑在综合过程中进行的底层优化。作为一种解决方案,他们提出了一种新颖的架构 D-SAGE [55],一种 GNN,用于预测由逻辑合成完成的复杂技术映射。在 [55] 中,设计被映射到数据流图 (DFG)。节点是一组操作(即加法或乘法),边是节点之间的数据依赖关系。数据的节点类型和位宽被认为是节点属性。根据端到端任务标记节点和边。例如,如果节点映射到 DSP 模块或查找表 (LUT),它们将分别标记为 1 或 0。类似地,如果边的连接节点映射到同一设备,则边标记为 1。 D-SAGE 利用 GraphSAGE 来支持有向图并区分节点 u 的后继 SU (u) 和前驱 PR(u)。为此,等式 2 拆分为 SU (u) 和 PR(u),最后,后继和前任嵌入如等式 6 所示连接。

使用图形嵌入,D-SAGE 解决了两个端到端的任务:二进制节点分类,预测哪些节点映射到哪个设备,以及二进制边分类,将映射到同一设备的节点聚类。 D-SAGE 在节点分类、边缘预测以及跨所有数据路径的操作延迟估计方面优于 HLS 工具。

5.2 Verification and Signoff

进行验证以在功能、逻辑和物理设计之后检查设计的功能。特别是在制造之前,必须确保设计的正确性。在 signoff 步骤中,执行一组验证步骤以正式验证功能以及设计收敛、信号完整性、寿命检查等。设计收敛是根据 PPA 确定的。此步骤中的负面结果转化为在流程上倒退并增加芯片的上市时间。因此,对这些约束的早期、准确和快速估计可以加速设计过程

例如,电源完整性标志需要对设计进行电源分析。为此,基于向量的方法因其准确性而受到青睐,但它们需要门级模拟,这需要时间并且在实践中被切换活动估计器 (SAE) 所取代。 SAE 快速但不准确。在 [71] 中,提出了一种基于 GNN 的替代方法,使用切换率作为输入并提高预测精度。为此,他们基于网表构建了一个图,其中单输出组件是节点。边缘被定义为门之间的连接。从 RTL 模拟中,输入和寄存器切换速率被视为特征节点,它们被编码为 4-D 向量。最后,根据门级模拟获得的地面实况标签评估每个门的预测切换率。直观地说,切换率预计会从一个级别传播到下一个级别。因此,他们提出了 GRANNITE [71],这是 GCN 的顺序和归纳版本,其中节点嵌入不是并行计算的,而是顺序计算的。使用节点嵌入,GRANNITE 可以在几秒钟内预测 RTL 模拟的平均切换率,其准确性高于经典 SAE。

5.3 Floorplanning

芯片布局规划中,网表的主要块和较大块被放置在二维网格上,以实现最佳 PPA,同时遵守设计规则。这可以表示为马尔可夫过程可以使用 RL 来解决

该领域最重要的工作在[44]中进行了介绍。 Google 展示了使用 DRL 框架对张量处理单元 (TPU) 加速器进行局部规划的成功芯片宏放置。在 [44] 中,将 GNN 合并到 RL 框架中以对过程的不同状态进行编码,预测拥塞、密度和线路长度的奖励标签,并推广到未见的网表。所提出的架构称为基于边缘的图神经网络(Edge-GNN)[44],它计算整个网表的节点和边缘嵌入。此 RL 代理提供与人类设计师相当或更好的结果,但需要数小时而不是数月

5.4 Placement

在布局期间,设计门被映射到芯片布局的确切位置。设计越大,这个过程就越复杂放置期间的错误决定会增加芯片面积,但也会降低芯片性能如果导线长度高于可用布线资源,甚至会使其不适合制造。通常,需要多次放置迭代,这是耗时且计算效率低下的。因此,布局被视为一个约束优化问题。正在探索 ML,尤其是 GNN,以简化此步骤 [1、2、38、39、61]。

称为 Net 的 GAT 用于在 [61] 中提供预置网络和路径长度估计。为此,他们将网表转换为有向图,其中网络代表节点,边在两个方向上连接网络。单元数、扇入、扇出大小和面积用作特征节点。使用聚类和分区结果定义边缘特征节点的真实标签是放置后作为边界框的半周线长度获得的净长度。在推理过程中,Net预测每个节点的净长度,优于现有解决方案。例如,目标精度版本 Net2a 在识别长网络和路径方面的准确度提高了 15%,而目标运行时的 Net2f 速度提高了 1000 倍。

在 [38、39] 中,GraphSAGE 被用来构建 PL-GNN,这是一个帮助布局器工具做出有益决策以加速和优化布局的框架PL-GNN 将网表视为有向超图,然后将它们转换为无向的基于 clique 的图,其中节点和边缘特征基于层次结构信息和网络与内存块的亲和力。考虑了层次结构特征,因为同一层次结构中的组件彼此之间的连接比与其他层次结构中的元素之间的连接更多,而内存宏的逻辑级数提供了关于关键路径的直觉。 GNN 用于学习节点嵌入,这些节点嵌入由加权 K-Means 算法 [10] 聚类。生成的集群是最佳放置组。此外,PL-GNN 泛化到任何网表,因为节点嵌入是通过训练无监督损失函数来学习的。集群放置组可用作任何放置器工具的放置指南。与商业工具的默认放置相比,此放置指南可提高 3.9% 的线长、2.8% 的功率和 85.7% 的性能。

[2] 中介绍了将 EDA 中的 PPA 优化任务映射到 RL 问题的概念验证框架这个 RL 框架使用 GraphSAGE 和无监督训练来学习可以推广到看不见的网表的节点和边缘嵌入GCN 是一个关键组件,因为它提取 RL 代理所需的本地和全局信息。作为研究案例,分析了 2-D 放置期间的线长度优化。

在 [1] 中,自主 RL 代理以归纳方式找到最佳放置参数。网表被映射为有向图,节点和边特征是手工制作的与放置相关的属性。 GraphSAGE 学习网表嵌入并有助于推广到新设计。

5.5 Routing

在此步骤中,按照设计规则(例如允许角度的类型)连接放置的组件、门和时钟信号。这些规则决定了路由的复杂性,这主要是一个 NP-hard 或 NP-complete 问题。因此,路由工具大多是基于启发式的,它们的目标不是找到最佳解决方案。 ML 方法可以通过提供更早的估计来增强布线过程,这些估计可用于相应地调整布局,并避免大面积和长线

在 [29] 中,GAT 仅使用在物理设计后获得的特定技术门级网表来预测路由拥塞值。为此,将网表构建为无向图,其中每个门都是一个节点边定义为通过网络连接的门之间的连接特征节点是 50 维向量,包含有关单元类型、大小、引脚数和逻辑描述的信息。为了获得节点的真实标签,拥塞图被分成网格每个网格的拥塞值被作为放置在该网格中的单元格的标签。 [29] 中提出的称为 CongestionNet 的架构不超过遵循公式 4 的八层 GAT。节点嵌入用于预测局部拥塞值。使用 GAT 可以提高预测质量,对于超过 100 万个单元的电路,推理时间约为 19 秒

“单V100 GPU上训练为60小时”

在 [37] 中,提出了一个端到端框架,使用基于 GNN 的长短期记忆 (LSTM) 架构来预测端口路由 TNS。他们的最终目标是预测设计是否会满足时序符号约束,但从设计流程的早期阶段就开始。来自三个阶段的结果网表:详细布局、优化布局和时钟树综合 (CTS),被映射到特征图。每个节点的特征都与任务相关,例如单元的最差松弛、最差的输出和输入压摆以及驱动网络的开关功率。这些是从技术库中收集并生成的报告。每个阶段的网表由全局 GNN 编码。在这三个阶段中的每一个阶段,图嵌入的使用都是双重的:它们是预测模型和 LSTM 的输入,其中图嵌入用作时间序列。单一预测模型预测每个阶段的 TNS,而 LSTM 将综合低点映射到连续低点。每阶段预测平均实现小于 12.6% 的归一化均方根误差,而基于 GNN 的 LSTM 预测在两个测试电路中实现小于 5.2%。

在 [9] 中,提出了两个 RL 框架来优化布局(DeepPlace)布局布线一起优化(DeepPR)门级网表映射到超图,其中节点是门单元超边是连接组件的网络。两个 RL 框架的策略网络都使用来自 CNN 的全局嵌入和来自 GCN 的详细节点嵌入。前者使用芯片画布作为映射到二进制图像的输入。后者使用网表作为超图将全局嵌入和详细嵌入连接起来形成策略。 DeepPlace 旨在学习宏和标准单元的最佳布局,而 DeepPR 学习宏布局和路由。

5.6 Testing

测试仅在设计打包后进行设计越大,测试工具的复杂性和执行时间就越高。此外,测试应保证高覆盖率,避免冗余测试用例。测试不可扩展,它强烈依赖于人类的专业知识。为了克服这些挑战,机器学习被纳入测试阶段。

例如,通过在设计中提供最佳测试点来降低测试复杂性。 [42]提出了一种 GCN,可以在设计中插入较少的最佳测试点,同时最大限度地提高故障覆盖率。为此,使用网表和主要端口的组件作为节点,并将它们之间的连线作为边来构建有向图。节点特征是 4-D 向量,包含有关每个门的逻辑级别、可控性和可观察性属性的信息。使用测试设计工具,收集真实标签,并将节点标记为“易于观察”或“难以观察”。所提出的 GCN 模型使用等式 2 生成节点嵌入,用加权和替换聚合函数,以区分前任节点和后继节点。

表 2. 模拟 EDA 流程的 GNN 总结

有了节点嵌入,执行二进制节点分类。在推理过程中,新网表的节点被分类为“diicult”或“easy-to-observe”。然后,测试工具使用此信息来降低测试复杂性。与商业测试工具相比,[42] 在保持相同覆盖率的同时将观察点减少了约 11%。

5.7 Reverse Engineering

在 EDA 中,逆向工程 (RE) 是通过分析芯片的每一层来获取知识产权 (IP) 或集成电路 (IC) 设计、技术或功能的过程。此类分析的结果可用于验证、安全和安保目的 [43]。物理 RE 流程首先通过解封装从 IC 获得门级网表,或者通过采用延迟、成像、分割和特征提取技术从 GDSII 文件获得门级网表。另一方面,功能性 RE 流程直接从 GDSII 文件中获取门级网表。然后,从逆向工程网表中提取并标记高级组件 [4]。

GNN-RE [4] 是一种应用于功能性 RE 的隐蔽网表的 GNN。具体来说,端到端任务是子电路提取和分类。为此,反向工程的门级网表被映射到无向图,其中节点对应于门和连接它们的导线的边。每个门的特征向量包括到主要输入和输出端口的连接数、按类型连接的两跳远连接门的数量以及输入和输出度。这项广泛的工作比较了不同的 GNN 类型和计算模块,例如 GraphSAGE、GAT、采样和跳过连接。最好的结果是通过使用 GAT 和一个名为 GraphSAINT [67] 的采样模块来实现的。门嵌入将 GNN-RE 学习到的信息传递给具有 SoftMax 函数的全连接 (FC) 层,该层将每个门分类为子电路类型,平均准确率为 98.82%。

与 GNN-RE 类似,异步双向 GNN (ABGNN) [22] 应用于子电路分类的隐藏门级网表,但重点是算术块。网表映射到数据无环图 (DAG),其中节点是电路组件,边缘是互连线。端到端任务是两个独立的二进制分类,分别用于加法器块的输入和输出边界。为了识别门的作用,需要考虑表示门的输入(扇入锥)和输出(扇出锥)的节点。因此,节点的传入边不仅是定向的,而且是双向的。受异构 GNN 的启发,ABGNN 使用两个 GNN 分别聚合扇入和扇出锥的信息。节点嵌入组合区分了前任和后继,类似于 D-SAGE [55] 的公式 6。最后,受网表的非循环属性驱动,ABGNN 异步传播节点嵌入。生成的节点嵌入是具有二进制交叉熵损失的多层感知器 (MLP) 的输入。

5.8 Analog Design

 模拟设计流程的高复杂度是由于大的设计空间和信号敏感性w.r.t.噪音。因此,模拟流程可以从 ML 等现代方法中受益匪浅,从而使方法现代化并提高 QoR。特别是,GNN 正在应用于这一领域。表 2 列出了本综述中简要考虑的研究。

在[46]中,GNN 用于预测净寄生电容和器件参数。设计原理图被转换为超图,并且是 ParaGraph [46] 的输入,它是 GNN 的一个版本,结合了 GraphSAGE 和 GAT 的想法。在 [35] 中,ParaGraph 被扩展以预测寄生电阻和耦合电容。为此,使用 GAT 的 ParaGraph 版本获取源节点和目标节点的节点嵌入。为了预测这些节点之间的耦合电容和寄生电阻,它们的嵌入是使用双线性层的回归网络的输入。此外,预测的布局后寄生参数用于贝叶斯优化。

CircuitGNN [69] 使用 GCN 预测每个节点的magnetic,使用谐振器组件作为节点,边缘作为它们的磁和电耦合。 Circuit Designer [59] 使用 GCN 提取电路的节点嵌入,这些节点随后用作 RL 代理的输入,目标是与技术无关的晶体管尺寸。模拟电路被映射到一个图形,其中节点是晶体管,边缘是导线。在 [32] 中,引入了一种称为边缘注意池 (PEA) 的新架构,以评估不同的布局解决方案将如何影响模拟电路性能。

在 [30] 中,提出了一种基于 GCN 的自动网表注释 (GANA) 作为块识别的策略。这是习惯性地根据人类专业知识执行的,因此,它的自动化是模拟设计的基本部分,没有人参与。 GANA 将隐藏的晶体管级网表转换为二分图,其中网络和元素是节点,而边仅将元素连接到其对应的网络。边缘特征告诉元件如何连接到其网络,即是通过源极、漏极还是栅极。节点嵌入通过一个带有 SoftMax 函数的 FC 层进行分类。输出类标识较大模块的不同变体,例如低噪声放大器、运算跨导放大器和混频器。 GANA 的结果可用于指导电路布局优化

在与 [30] 相同的领域中,[47] 使用 GCN 进行基元结构识别。在 [47] 中,lattened 晶体管级网表被映射到无向图,其中特征节点包括设备型号和类型、有效宽度和通道长度等属性。网络被标记为电源、接地或信号。晶体管与网络之间的连接类型决定了网络编码矢量,即连接是否从漏极、源极或栅极端子到电源、接地或信号网络。与 [30] 相比,[47] 使用 K-Means 算法找到节点的部分标签,然后以半监督方式训练 GCN 以预测剩余未标记设备的类别。使用回归模型估计聚类数 K。该流水线的结果:回归模型、K-Means 和 GCN 在约束驱动设计低层中使用,以将不同的设计规则应用于每个已识别的结构。

在 [13] 中,GraphSAGE 用于模拟布局约束的自动注释。为此,GNN 用于分类节点对是否对称,即它们必须对称地放置在布局中。模拟网表映射到超图,其中节点是管脚和器件,例如晶体管、二极管、电容器和电阻器。超边是它们之间的连接。特征向量是单热编码向量,提供有关设备或引脚类型的信息。生成的节点嵌入是使用双线性评分函数的二元分类器的输入,其中对节点被分类为对称或不对称。

6 LESSONS LEARNED: APPLICATION RESULTS TO EDA

在本节中,我们总结了从上述工作中吸取的一些教训。

6.1 GNNs Superiority

基于 GNN 的架构优于其他模型和解决方案。上面列出的工作将他们的结果与浅层 ML、深度学习方法或特定任务的基线进行了比较。毫无疑问,GNN 的优越性是由于对拓扑和特征信息的考虑,这是以构建训练数据集的更大努力和更高的训练时间为代价的

“这个代价可以如何优化减小?”

6.1.1 Compared to shallow ML methods.

在 [42] 中,基于 GNN 的模型解决方案优于用于二元分类的经典 ML 技术,例如线性回归器 (LR)、支持向量机 (SVM)、随机森林和 MLP。此外,与商业工业工具相比,它在不丢失故障覆盖率的情况下,插入的测试点减少了 11%,测试模式帐户减少了 6%。在 GNN-RE [4] 中,将基于 GNN 的模型与使用每个节点相同特征向量的监督分类任务的 SVM 进行比较。但是,根据定义,SVM 只考虑单个节点的特征,不能访问邻居节点的特征。 SVM 的训练时间几乎是 GNN-RE [4] 的 10 倍。然而,分类指标清楚地表明了 GNN 的优越性。 ParaGraph [46] 与 XGBoost [6] 和 LR 模型以及普通 GraphSAGE 进行了比较。预测准确率平均为 77%,比 XGBoost 好 110%,比 GraphSAGE 好 7%。

6.1.2 Compared to deep ML methods.

D-SAGE [55] 与 MLP 和 vanilla GraphSAGE 进行了比较。基于 GNN 的模型优于 MLP,强调结构信息与操作映射的相关性。此外,由于边缘方向信息,D-SAGE [55] 相对于 GraphSAGE 获得了 17% 的相对增益。同样,定制的 ABGNN [22] 在输入和输出边界分类任务方面都优于普通 GraphSAGE、GAT 和图同构网络 (GIN) [62],同时推理时间分别减少了 19.8% 和 18.0%。与使用电平相关衰减和 (LDDS)-存在向量 (EV) 来表示电路拓扑 [11] 的 NN 相比,ABGNN [22] 的性能也更高且运行时间更低。在 [49] 中,Circuit Designer [59] 与非基于图的 RL 架构进行了比较。不同的实验表明了 GCN-RL 的优越性,它在非基于图的 RL 永远不会收敛的情况下收敛,即使有非常多的模拟步骤。 Circuit Designer [59] 的成功也归功于考虑线性晶体管参数的明确特征向量。 PEA 的 [32] 的优势被证明是针对普通 GAT 和基于 CNN 的模拟性能模型,该模型使用布局图像。

6.1.3 Compared to task-specific baselines.

GNN 的优势与两个因素有关:定义明确的初始特征和图学习能力 [39]。定义明确的特征捕捉任务的基本特征,并为图学习提供宝贵的信息。 GNN 捕获特征和拓扑信息。这与仅考虑图形连通性的方法相比,它具有明显的优势。例如,在 PL-GNN [39] 中,与层次相关的特征用于学习哪些节点相似,而与记忆相关的特征有助于平衡关键路径。 PL-GNN [39] 优于基于模块化的聚类,后者仅使用连接信息。在预测所有金属层的拥塞时,CongestionNet [29] 的先验拥塞估计性能优于基线方法 29%,而对于较低层的拥塞估计则优于 75%。尽管如此,CongestionNet [29] 训练需要在单个 GPU 上进行 60 小时。在推理期间,130 万个单元的运行时间减少到 19 秒,少于基线方法的运行时间。 Edge-GNN [44] 与开源全局布局工具 RePLAce3 [8] 和使用行业标准 EDA 工具的手动布局的结果进行了比较。在训练超过 10000 个芯片 loorplans 之后,Edge-GNN [44] 优于这两种方法,平均给出更低或相当的最差负松弛、总面积、功率和拥塞。与 Edge-GNN [44] 类似,DeepPR [9] 比 RePLAce 快约 4 倍,同时在公共基准测试中显示出有效性。 Circuit-GNN [69] 可以处理不同尺寸和拓扑的电路,与使用仿真工具的人类专家相比,仿真时间减少了 4 倍。与 GPU 加速的传统概率 SAE 相比,GRANNITE [71] 在类似的运行时平均降低了 25% 的错误。最后,GraphSAGE 优于使用图匹配和信号低分析的对称约束分类的两种基线方法。 GraphSAGE 通过保持相似的运行时间来提供更高的真阳性率和更低的假阳性率 [13]。

3 https://github.com/The-OpenROAD-Project/RePlAce

6.2 Graph Types

所有经过审查的应用程序的输入都是一个网表。但是,这些网表到图形的映射是不同的图的类型、特征向量和尺度取决于任务、设计流程(即模拟或数字流程)和抽象级别。表 3 和表 4 总结了本调查所考虑的应用程序中使用的图形类型。

表 3. 数字设计流程中用于 GNN 应用的输入图类型

6.3 Models Depth

GNN 模型的层数是一个超参数添加过多的层会使输出嵌入变得平滑并降低端到端任务的准确性。因此,更深层次的模型需要更大的数据集 [64]。

表 4. 模拟设计流程中用于 GNN 应用的输入图类型

在 GANA [30] 等模拟应用中,电路的数量是有限的,因此,使用了两层 GNN,并在两个小时内训练了大约 1000 个电路。在 GNN-RE [4] 中,进行了扫描 GNN 深度的实验,他们通过将 GNN 深度增加到 4 报告了过度平滑的问题。对于更少的层,性能的提高是以更长的训练时间为代价的。在 Net2 [61] 中,通过超参数调整找到层数。结果,使用了三个 GNN 层,然后是两个 FC 层。相比之下,D-SAGE [55] 使用两个 GNN 和三个 FC 层。 [37] 使用两个 GNN 和两个 FC 层,用于预阶段预测器和 LSTM 网络。 PEA [32] 使用四个 GAT 和 ive FC 层。由于数据集足够大,ParaGraph [46] 更深入并使用了 ive GNN 和四个 FC 层。总而言之,ConvGNN 中的层数以及过滤器大小是需要微调的超参数。据我们所知,使用的层数总是在二到五之间。

“2~5层所涉及的论文用到的参数吧?”

6.4 Classical Machine Learning Techniques

从非图机器学习模型中学到的一些经验也适用于 GNN。

例如,GANA [30] 使用批量归一化来保证所有输入特征都在相同的数值范围内,并使用 dropout 来避免过拟合。训练数据分为训练和验证。后者用于优化超参数,例如学习率、正则化和衰减率。最后,还评估了 ReLU 和 tanh 等激活函数。在 GNN-RE [4] 中,对不同的 GNN 结构进行了超参数搜索。最好的架构采用 dropout,ReLU 作为激活函数,Adam 作为优化器,Random Walk 作为采样模块。在 Net2 [61] 中,进行了超参数搜索以查找学习率和动量因子为了更好地收敛,在每个 GNN 层之后应用 Bach 归一化,并选择随机梯度下降 (SGD) 作为优化器。 D-SAGE [55] 还定义了学习率、权重衰减因子、ReLU 作为激活函数以及 SGD 作为优化器。此外,它对端到端二元分类任务使用二元交叉熵损失,并对训练损失使用早期停止策略。同样,在 Edge-GNN [44] 中,一旦策略收敛,提前停止机制就会停止 RL 训练,以避免过度训练

其他 ML 技术也与 GNN 结合使用。例如,在 [35] 中,图嵌入是贝叶斯优化器的输入,该优化器利用 dropout 来预测预测的不确定性。在 [37] 中,通过使用 t 分布随机邻域嵌入 (t-SNE) [56] 技术进行降维来评估和可视化图嵌入

表 5. 每个应用程序的目标技术摘要

6.5 Tools

ML 模型在不同领域的广泛使用与可用的免费和开源 ML 框架和数据集相关联。类似地,现有的 GNN 框架、EDA 工具和技术鼓励探索 GNN 以解决 EDA 任务。

最流行的 GNN 框架是用于 PyTorch 的 PyTorch Geometric (PyG)4 [12],用于 TensorFlow 和 Keras 的 Spektral5 [15],以及与框架无关的深度图库 (DGL)6 [48]。 PL-GNN [39]、CongestionNet [29]、Net2 [61] 和 [37] 使用 PyG。而 ParaGraph [46]、它在 [35] 中的扩展、GRANNITE [71] 和 ABGNN [22] 使用 DGL。在 GNN-RE [4] 和 GANA [30] 中,使用了 TensorFlow。

关于 EDA 工具,PEA [32]、GANA [30]、电路设计器 [59] 和 [13] 等模拟应用程序使用 SPICE 构建数据集。后者还使用由开源工具 ALIGN 生成的数据集。 [1]、GNN-RE [4]、Net2 [61]、PL-GNN [39]、ABGNN [22] 和 [37] 等数字应用程序使用 Synopsis® 工具进行综合,例如 Design Compiler® 和 IC Compiler™ . Cadence Innovus™ 用于 [1] 和 Net2 [61] 中的放置;和 RePLAce 在 Edge-GNN [44] 中用于全局放置。 D-SAGE [55] 使用 Vivado™ HLS,CircuitGNN [69] 使用商用 (EM) 模拟器 CST Studio Suite™。

4 https://pytorch-geometric.readthedocs.io

5 https://graphneural.network/

6 https://www.dgl.ai/

不同的应用程序还针对不同的技术,如表 5 所列。其他应用程序使用商业技术,没有提供更多细节。 Circuit Designer [59] 使用五种不同的技术来评估迁移学习的结果。

7 CHALLENGES AND FUTURE RESEARCH

在下文中,我们将介绍 GNN 和 EDA 中 GNN 的总体挑战。最后,我们指出了一些未来的工作方向

7.1 GNNs Challenges

在 [72] 中,提出了 GNN 的四个主要开放问题鲁棒性、可解释性、预训练和复杂图类型。 GNN 与其他 NN 一样,容易受到对抗性攻击,并且表现得像一个黑匣子。要在实际应用中使用 GNN,应保证预测的安全性和可解释性。另一方面,GNN 的训练过程通常对时间和数据集大小要求很高。为了克服这些问题,应该像其他神经网络一样探索预训练方法。最后,实时应用程序数据通常映射到复杂的图结构,例如超图、异构图和动态图。这些图类别是正交的,GNN 有望适应这种图的多样性。

“四个主要开放问题,复杂图类型关注一下”

“嗯,分布式考虑一下”

我们还认为图的可扩展性是 GNN 面临的一个公开挑战图越大,训练时间越长。我们希望 GPU 的使用和上述计算方法(例如采样、池化和跳过连接)得到扩展并缓解这种情况。

“这个就是一个优化点”

7.2 GNNs in EDA Challenges

从 EDA 的角度来看,在将 GNN 应用于设计流程时,尤其是图形的可扩展性和多样性 [41] 时,先前的挑战会加剧。在 EDA 中,输入图代表不同抽象级别的电路网表,通常具有非常大的尺寸大图会导致巨大的稀疏邻接矩阵和非常大的节点列表,其计算耗时且计算量大。另一方面,与简单的无向图或有向图相比,EDA 对象在直觉上更类似于复杂的图类型。直观地,电路网表是有向超图或异构图,如 [39] 中所述,DAG 如 [22] 中所述,或 DFG 如 [55] 中所述。为了与这些图类型相结合,应该制定新的 GNN 架构,如 [22, 55] 中所做的那样。为 EDA 对象定制 GNN 架构并提高其处理复杂图形类型的性能仍然是一个开放的研究课题

在实践中,我们认为数据生成仍然是一个开放的挑战。 EDA 工具链是生成 EDA 对象、统计数据和报告的独立工具的汇编。数据可用,但没有标准的数据收集基础设施可以加速数据生成和图形映射。此外,EDA 工具的结果在数据收集和标记过程中被用作真实标签。当它们使用固定的工具超参数运行时,这可能会导致非最优、稀疏或有偏差的数据

7.3 Future Work

我们期望未来的工作能够解决上述挑战。基于列出的EDA应用,我们也确定了三个主要方向:

7.3.1 Exploiting Transfer Learning

CongestionNet [29] 等应用程序与技术无关,即它们根据所使用的技术构建具有特征向量和标签的数据集对于针对新工艺技术的实验,应重新构建数据集并重新训练模型。我们期望未来的 EDA 应用程序评估 GNN 的迁移学习技术的使用,例如 [19、32、44、59] 中已经完成的。例如,GCN-RL Circuit Designer [59] 受益于 RL 的可转移性,并利用它在 5 个不同的技术节点和拓扑之间进行知识转移。

7.3.2 Exploiting Feature Information

如 [39] 中所述,GNN 的一个成功因素是定义明确的特征向量。因此,我们相信未来的研究将评估不同的特征节点,以提高当前解决方案对更先进技术和复杂任务的可扩展性和泛化性探索新功能的影响也被提议作为 Circuit Designer [49、59] 和 CongestionNet [29] 的未来工作。例如,当前的 Circuit Designer 实施仅使用线性晶体管参数作为特征。未来的工作应该涵盖非线性特征以支持非线性组件类型。在 [29] 中,进行了消融研究以确定特征对 CongestionNet 预测的重要性。因此,与cell类型或功能相关的特征比与cell几何形状相关的特征更重要。因此,未来的工作建议包括新的特征,如引脚和边缘类型。此外,他们建议使用有向图或超图而不是无向图。 Net2 [61] 在净长度估计方面提供了很好的结果。作为未来的工作,应该扩展功能集以解决更复杂的布局前时序分析任务。类似地,用于净寄生电容预测的 ParaGraph [46] 被扩展到预测 [35] 中的耦合电容和寄生电阻。这个扩展的 ParaGraph 预计将有助于模拟设计的优化和自动化。

7.3.3 Enlarging Datasets

在某些应用中,基于 GNN 的解决方案仍然没有达到完全的准确性。这可以使用 GNN 的结果作为进一步后处理步骤的输入来解决,如 GANA [30] 中那样。然而,我们希望未来的工作能够扩大训练数据和特征集以提高准确性,正如 GRANNITE [71] 中所提出的那样。更大的数据集将启用更深层次的模型,这可以转化为更好的结果。对于数据集生成,我们期望更多地使用开源 EDA 工具和技术一个开放和标准的数据收集基础设施将最大限度地减少图形构建、映射和标记工作。此外,它将增强对 GNN 和 EDA 的研究,并实现研究结果比较和基准测试。

8 CONCLUSION

据我们所知,我们的工作是第一个收集关于 EDA 和现代 GNN 之间交叉的开创性论文。在所展示的作品中,GNN 优于基线方法。然而,随着 EDA 中电路的复杂性不断增长,可扩展性和异构性仍然是开放的挑战。我们预计 GPU 的使用有助于缓解这一瓶颈。我们相信 ML 与 GNN 结合的巨大潜力将为更多针对 EDA 低点的解决方案打开大门。我们希望直接使用网表、布局和中间 RTL 作为图结构可以加速硬件指标的早期预测,以及使用 RL 解决 EDA 低的组合任务。最后,我们还期望 GNN 的未来工作针对一些与开放图相关的挑战,例如图的异质性、可扩展性和多样性。

ACKNOWLEDGMENTS

作为 ProgressivKI (19A21006C) 研究项目的一部分,本文所述的工作部分由德国联邦经济事务和能源部 (BMWi) 资助。

【阅读】A Comprehensive Survey on Electronic Design Automation and Graph Neural Networks——EDA+GNN综述翻译相关推荐

  1. #Reading Paper# Profiling the Design Space for Graph Neural Networks based Collaborative Filtering

    #论文题目:Profiling the Design Space for Graph Neural Networks based Collaborative Filtering(基于协同过滤的图神经网 ...

  2. 【论文阅读】Learning Effective Road Network Representation with Hierarchical Graph Neural Networks

    目录 简介 论文简介 ABSTRACT 1 INTRODUCTION 2 RELATED WORK 3 PRELIMINARIES 4 MODEL 4.1 Contextual Embedding f ...

  3. TNNLS | GNN综述:A Comprehensive Survey on Graph Neural Networks

    目录 前言 Abstract I. Introduction II. Background And Definition A. Background B. Definition III. Catego ...

  4. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](6)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](6) GNN playground Some empirical GNN ...

  5. cs224w(图机器学习)2021冬季课程学习笔记9 Graph Neural Networks 2: Design Space

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. A General Perspective on Graph Neural Networks ...

  6. 【阅读】A Comprehensive Survey on Distributed Training of Graph Neural Networks——翻译

    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] (本文中,涉及到公式部分的翻译不准确,请看对应原文.) 另一篇:[阅读]Distributed Graph Neural Networ ...

  7. 综述论文阅读”A comprehensive survey on graph neural networks“(TNNLS2020)

    论文标题 A comprehensive survey on graph neural networks 论文作者.链接 作者:Wu, Zonghan and Pan, Shirui and Chen ...

  8. A Comprehensive Survey on Graph Neural Networks(图神经网络综合研究)

    A Comprehensive Survey on Graph Neural Networks 图神经网络综合研究 Zonghan Wu, Shirui Pan, Member, IEEE, Feng ...

  9. [论文翻译]-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》

    文章目录 摘要 1 简介 1.1 GNN简史 1.2 Related surveys on graph neural networks 1.3 Graph neural networks vs. ne ...

最新文章

  1. 实用Common Lisp编程——函数
  2. Java 调用Oracle的存储过程
  3. Kmeans聚类算法分析(转帖)
  4. 自学python转行-转行学习python 需要多久?应该如何学习?
  5. 二:SpringAOP
  6. 六种微服务架构的设计模式
  7. 微信小程序- 初试小程序之tabbar(选项卡,底部导航)的使用
  8. Adonis结果P值小于0.05,一定代表两组样品物种构成差异显著吗?
  9. mysql jdbc 多数据源_springboot jdbc连接多个数据源
  10. web安全day38:使用Vulhub一键搭建测试靶场
  11. Android 进程之间通信
  12. js 正则表达式判断非法字符以及常用正则表达式。
  13. 使用共享文件夹实现上位机和下位机的信息传输
  14. 前端第四天 盒子模型/浮动与定位
  15. python怎么变成动图_python 生成动图
  16. 利用R语言对RNA-Seq进行探索分析与差异表达分析
  17. 在使用计算机结束时,计算机使用完毕后应将显示器的电源关闭对吗?
  18. 传播正能量——做一个快乐的程序员
  19. pcb排版技巧_借鉴大师的排版技巧
  20. c30-程序中的三国天下(c31-程序中的内存布局)

热门文章

  1. 计算机开机需要注意什么,笔记本电脑第一次开机注意事项
  2. 【java毕业设计】基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码)——连连看游戏
  3. node+express 搭建商城项目(1-项目搭建)
  4. 外箱条码标签如何用条码标签编辑软件制作?
  5. Docker 安装和使用日常命令全覆盖
  6. python能参加奥赛吗-信息竞赛一定要python吗
  7. Ubuntu 16.04如何使用无线网卡上网
  8. Unity 2D 摄像机平滑跟随
  9. AndLua加密解密
  10. 如何让横坐标倾斜(Matlab画直方图)