计算机视觉/视频分析

AutoDMP 利用 AI 和 GPU 优化芯片设计的宏布局

大多数现代数字芯片以存储块或模拟块的形式集成大量宏,如时钟生成器。这些宏通常比标准单元大得多,标准单元是数字设计的基本组成部分

宏布局对芯片的外观有着巨大的影响,直接影响到许多设计指标,如面积和功耗。因此,改进这些宏指令的位置对于优化每个芯片的性能和效率至关重要。

Image showing a chip floor plan where the size of macros (in red) largely dominates that of the standard cells (in gray).
图 1 。芯片平面图显示了 NVIDIA NVDLA 分区中标准单元(灰色)和内存宏(红色)之间的巨大尺寸差异

传统上,设计者会根据历史悠久的实践手动放置宏。例如,它们可能出现在楼层平面轮廓的外围。然而,手动找到最佳宏位置是非常耗时的。考虑到宏布局、标准单元布局以及由此产生的功率、性能和面积( PPA )之间的现代复杂关系,可以改进该过程

最近在改善宏观布局方面做出的两项努力是基于强化学习的宏观布局宏和标准单元格的并行放置.

强化学习方法

RL 方法将宏放置问题公式化为一个博弈。游戏代理的动作对应于宏的可能位置。通过采样许多放置示例,代理学习优化其策略(通常由神经网络表示),以提高宏放置质量。这种质量是基于替代目标来估计的,例如导线长度、拥塞和密度

这些替代目标不是根据实际放置来评估的,而是根据从快速但直接的放置算法获得的标准细胞簇的近似放置来评估,以保持运行时可管理。 RL 方法需要大量的计算资源。例如, 20 GPU 和 200 CPU 用于训练和微调代理的神经网络模型,运行 10 +小时。

并行放置方法

或者,同时放置单元格和宏的方法采用混合大小的放置方法,同时放置宏和标准单元格。最先进的混合尺寸放置工具利用数值算法来有效地优化选定的目标,例如导线长度和密度。这些也可能包括拥堵和timing considerations在目标函数中进行数值优化。这种方法已经在商业 EDA 工具中实现。

尽管并行单元和宏放置方法取得了有希望的结果,但我们相信它可以进一步改进。数值算法有许多算法参数,构成了很大的设计空间。放置的最终质量取决于所选择的参数配置。通过同时放置单元格和宏来扩展这个设计空间可以进一步增加次优性差距

此外,传统的布局算法将多个设计目标组合为一个目标进行优化。多目标优化框架可以扩展搜索空间,缩小最优性差距。

这项工作旨在证明,使用基于 ML 的多目标优化和 GPU 加速的数值布局工具,可以有效地搜索巨大的设计空间,以找到更好的宏观布局解决方案

用于宏放置的 DREAMPlace

这篇文章展示了如何使用最先进的开源分析砂矿DREAMPlace作为并发宏和单元格放置的放置引擎。 DREAMPlace 将放置问题公式化为放置密度约束下的导线长度优化问题,并对其进行数值求解

导线长度目标和密度约束都可以公式化为可微函数。导线长度目标用光滑的对数和 exp 函数近似。密度约束被视为一个静电系统,通过快速傅立叶变换的泊松方程求解

DREAMPlace 使用 GPU (由 PyTorch 框架启用的加速算法)以数字方式计算导线长度和密度梯度。仅在全球布局上,它就实现了超过 30 倍的加速。Further work还加速了 GPU 的精确放置,在工业基准上实现了 CPU 实现的 16 倍以上的加速。要了解更多信息,请参阅Place :在多线程 CPU 和 GPU 上加速基于批处理的并行详细放置.

DREAMPlace 支持混合大小的放置,可以同时放置宏和标准单元格。例如,图 2 显示了一个开源设计 MemPool 的放置过程。

A GIF showing the global placer attempting to organize the macro and standard cells in an optimal pattern.
图 2 :全局放置动画。优化期间,宏(红色)和标准单元格(灰色)在楼层平面轮廓内一起展开,以在密度约束下最小化导线长度。

放置参数

我们在 DREAMPlace 中选择了一组 16 个参数来定义设计空间。这些参数是基于观察到它们显著影响放置质量而确定的。我们包括了与优化相关的参数(如基于梯度的数值优化器及其学习率)和物理参数(如密度评估的仓数和密度目标)

除了原始的 DREAMPlace 参数外,我们还添加了下面列出的参数,以进一步扩展宏放置的设计空间。

初始位置:DREAMPlace 最初将单元和宏的所有初始位置设置在楼层平面的中心。如图 3 所示,调整这些初始位置可以显著影响最终的放置质量。

宏观光晕:为了简化宏合法化,添加了两个参数来强制宏之间的最小垂直/水平间距。间距约束转换为在宏周围添加的填充。

图 3 。从中心到右上角修改单元格的初始位置会导致两种截然不同的最终放置景观

多目标优化

我们建议在参数空间中使用多目标优化,而不是单目标优化。目标是导线长度、密度和拥塞。这三个目标都是从梦想之地的详细布局中进行评估的。导线长度近似为直线 Steiner 最小树( RSMT )长度。密度是 DREAMPlace 中使用的目标细胞密度。最后,使用RUDY algorithm.

多目标优化试图找到帕累托前沿,如图 4 所示。这是一组非支配目标空间点,其中没有一个目标可以在不降低至少一个其他目标的情况下得到改进。

An image of the 3D objective space where each point corresponds to a placement. The Pareto points dominating all other points are highlighted. The Pareto points are clustered based on their distance, and one point per cluster is selected as a candidate.
图 4 。导线长度( RSMT )、密度和拥塞的三维目标空间。多目标优化通过识别和导航 Pareto 前沿来寻找高质量的宏观布局样本。

使用多目标树结构 Parzen 估计器它基于贝叶斯优化算法,这是一种学习内部模型作为指导的智能搜索技术

该模型从先前采样的数据中近似参数配置和目标之间的关系,这有助于为未来的样本找到更好的搜索配置。 MOTPE 的特殊性是通过基于目标值划分参数空间,对给定目标的参数的条件分布进行建模

优化过程如图 5 所示。在左边( a ),区域由在 2D 目标空间中具有三个采样点的假想 Pareto 前沿( Y *)定义。绿色区域比帕累托前沿更差,蓝色区域包括与当前帕累托前线不相上下或更好的点。在右边( b ),两个概率密度函数lg分别针对在蓝色区域和绿色区域内采样的数据学习。将绘制参数的新样本,以便它们可能处于分布状态l而不是g.

Two diagrams showing the MOTPE approach (left) and partitioning of the space from the Pareto front (right), with the resulting probability distributions.
图 5 。 MOTPE 方法( a )和从 Pareto 前沿( b )划分空间,以及由此产生的概率分布

与其他单目标优化算法相比, MOTPE 很好地支持离散搜索空间。此外,每个参数都有其条件密度,这往往会发现良好的设置较少依赖于参数交互

搜索后可能发现了许多 Pareto 最优点,这是一个积极的事实,表明了布局解决方案的多样性。然而,由于反馈延迟要求和共享资源限制(服务器、工具许可证等),在商业电子设计自动化( EDA )工具中评估所有这些点是不切实际的

相反,对 3D 点进行聚类,以将 Pareto 点减少到更小的候选集合。假设是,在客观空间中彼此靠近的点对应于看起来相似的位置。图 4 显示了这种方法,其中红点对应于 EDA 工具中使用的位置。

两级 PPA 评估

我们提出了一种两步 PPA 评估方法,以减少布局质量估计量和流末 PPA 结果之间的相关性差距(图 6 )。

A diagram showing how the parameter space of AutoDMP is first mapped to the objective space. Then, only the Pareto set is mapped to the real PPA space using the EDA tool.
图 6 。两级 PPA 评估

首先, AutoDMP 多目标参数优化找到一组布局,其估计的导线长度、拥塞和密度位于 Pareto 前沿。该步骤本质上将 AutoDMP 参数的设计空间映射到目标代理空间。

然后,将目标空间 Pareto 前沿上的宏位置映射到 EDA 工具的真实 PPA 空间。这两个 Pareto 前沿可能不匹配,因为 EDA 工具对布局进行了大量优化,其中许多是启发式驱动的,因此很难预测

因此,在目标代理空间的 Pareto 前沿的所有宏位置上运行 EDA 工具,并评估真实的 PPA 度量,例如从 EDA 工具流执行中获得的布线长度、时序和功率。为了减少对计算资源的不必要使用,请停止流,尽早评估 PPA (例如,在位置选择阶段),并放弃没有希望的宏位置。

后果

AutoDMP 是根据由TILOS AI-Institute该基准包括一组 CPU 和 AI 加速器设计,这些设计具有大量宏。最初建议公平评估谷歌电路训练方法.

为了进行评估, AutoDMP 与一个商业 EDA 工具集成在一起,如图 7 所示。首先,在NVIDIA DGX系统该系统有四个 A100 GPU ,每个都配备了 80GB 的 HBM 存储器。产生了 16 个并行进程来对参数进行采样,并在优化过程中运行 DREAMPlace 。然后,从 Pareto 前沿选择的宏布局被馈送到 TILOS 提供的 EDA 流,该 EDA 流在 CPU 服务器上运行

A diagram showing the computation flow of AutoDMP.
图 7 。 AutoDMP 的计算流程

TILOS 基准测试包括几种设计,其中一些设计只在时间和密度目标上有所不同。多目标优化为每个设计采样 1000 个设计点。在单个 DGX 系统上运行搜索只需要几个小时

从 Pareto 前沿中选择五个宏布局以由 EDA 流处理。 PPA 指标在流程结束时收集(路由后)。图 8 报告了每种设计的五个宏位置中的最佳 PPA 。所有指标都使用默认的商业宏布局流结果进行标准化

在大多数设计中, AutoDMP 导线长度、功率、最差负松弛( WNS )和总负松弛( TNS )的 PPA 指标结果等于或优于商业流量

Bar charts showing the PPA improvement obtained with AutoDMP compared with the EDA tool.
图 8 。 AutoDMP 在路由后阶段之后的 PPA 指标相对于商业宏布局结果进行了标准化。正值表示 AutoDMP 的效果更好。

我们还观察到, AutoDMP 在一个技术节点(如 NanGate45 )的设计上实现的最佳参数可以应用于另一个技术结点,如 ASAP7 。这表明, AutoDMP 发现的最佳参数可能会在微小的设计变化中转移

图 9 显示了基准测试中最大的设计 MemPool 的位置,它集成了 256 个 RISC-V 内核,占 270 万个标准单元和 320 个内存宏。经过 3.5 小时的搜索, AutoDMP 生成一组候选宏位置

Two images, one showing the placement obtained with the EDA tool and the other with AutoDMP.
图 9 。 EDA 工具和 AutoDMP 方法论的 MemPool 设计宏位置

结论

这项工作证明了将 GPU 加速砂矿与 AI / ML 多目标参数优化相结合的有效性。此外,鉴于可扩展性在现代芯片设计流程中的重要性,我们希望这种方法能够开启新的前瞻性设计空间探索技术。

有关更多信息和实验结果,请参阅AutoDMP :基于 DREAMPlace 的自动宏放置。本文将在ISPD 2023 会议,以及其他 NVIDIA 研究工作,包括:

 

Tags