从智能文本生成大语言模型(LLMs)到创意图像和视频生成模型,生成式模型在过去几年中掀起了巨大的浪潮。在 NVIDIA,我们正在探索使用生成式 AI 模型来加速电路设计流程,并提供更好的设计,以满足对计算能力不断增长的需求。
电路设计是一个具有挑战性的优化问题。设计师通常需要平衡功率和面积等多个相互冲突的目标,并满足特定时间等约束条件。设计空间通常是组合的,因此很难找到最优设计。之前对前缀电路设计的研究使用手工制作的启发式和强化学习来探索广阔的设计空间。有关更多详细信息,请参阅《Towards Optimal Performance-Area Trade-Off in Adders by Synthesis of Parallel Prefix Structures and Cross-Layer Optimization for High Speed Adders: A Pareto Driven Machine Learning Approach》。
虽然这些方法有助于克服庞大的搜索空间,但它们与训练的高计算成本有关,并且通常难以泛化。
我们的论文 CircuitVAE:Efficient and Scalable Latent Circuit Optimization(最近在设计自动化大会上发表),揭示了生成模型在电路设计中的潜力。我们证明,变分自动编码器(VAEs),一类生成模型,可以生成更好的前缀加法器设计,而所需的计算成本远低于之前方法所需的成本。
电路设计的复杂性
前缀加法器的设计空间非常庞大:大约有 tg₀ 可能设计用于添加两个 n 位数,因此这确实是一项针对干草堆式挑战。电路由逻辑门(例如 AND、OR 和 XOR)组成。连接它们以实现相同功能的方法有很多,但不同的连接会改变电路的观察功率、性能和面积。
在我们的论文中,我们重点讨论了优化前缀加法器,这是现代 GPUs 中常见的一类电路。如图 1 所示,我们用树表示前缀加法器。我们将面积和延迟这两个指标最小化,并使用加权和将其合并为单个目标。
什么是变分自编码器?
VAEs 是估计一些数据分布的生成模型。训练一个 VAE 模型后,我们可以从估计的分布中进行采样。VAEs 可用于对从图像到图形等不同模式的数据建模。一个 VAE 模型由编码器和解码器组成。
在图像生成时,编码器会将输入图像映射到称为 latent space 的向量分布。解码器会将编码图像的向量转换回图像。VAE 的训练方法是最大限度地减少输入和输出之间的重建损失,以及 latent space 的正则化损失。VAE 是生成模型,因为它们可以通过从 latent space 采样向量并使用习得的解码器对其进行解码来生成新的输出。
电路 VAE:用于电路设计的 VAE
CircuitVAE 是一种搜索算法,可在连续空间中嵌入计算图形,并通过梯度下降优化学习的物理模拟代理。它学习将电路嵌入连续隐空间,并根据隐表示预测质量指标(例如面积和延迟)。当使用神经网络进行实例化时,成本预测器是完全可微的。因此,可以在隐空间中应用梯度下降来优化电路指标,从而规避在组合设计空间中搜索的挑战。
电路 VAE 训练
CircuitVAE 训练损失分为两部分:
- 标准 VAE 重建和正则化损失。
- 真值和预测区域之间的均方误差,以及使用编码电路隐向量的成本预测器模型产生的延迟。
在拟合成本预测器的同时,隐性空间根据成本进行组织,这适用于基于梯度的优化。一组加法器通过遗传算法生成,以引导训练。还可以使用随机样本的加法器开始。
基于梯度的优化
在训练 CircuitVAE 模型后,该模型将用于寻找可最大限度降低成本的前缀树结构。首先,使用成本加权采样技术选择 latent vector,这种技术可确保从良好的设计开始。然后,通过最大限度地减少成本预测器模型估计的成本,对该向量进行梯度下降修改。最终,latent vector 被解码为前缀树并进行合成,以获得其实际成本。
迭代
完整的 CircuitVAE 算法交织在训练和优化阶段。在每一轮模型训练后,都会通过基于梯度的优化和物理合成来收集更多数据。模型拟合会随着不断增长的电路和相关指标数据集恢复,从而导致成本预测器模型的准确性提高,形成良性循环,实现更有针对性的优化。
结果
我们测试了具有 32 个输入和 64 个输入(前缀树电路的宽度,分别对应 32 位和 64 位)的电路设计方法。为了为我们的物理合成提供模拟所需的组件,我们使用了名为 Nangate45 的开源单元库。
图 4 显示了成本进度,而每种方法都通过物理模拟评估更多设计。与基准方法相比,CircuitVAE 始终实现最低的成本。RL 和 GA 在离散域中进行优化,探索速度缓慢,而 CircuitVAE 的速度要快 2-3 倍,这要归功于隐空间中基于梯度的优化。
我们使用专有单元库评估了CircuitVAE在现实世界的前缀加法器任务中的表现,该单元库使用从完整数据路径中捕获的输入-输出定时。图5显示,CircuitVAE生成的设计能够形成比商业工具更好的Pareto前沿边界和延迟。
结束语
CircuitVAE 展示了生成模型在电路设计任务中的强大功能。在潜在空间(而不是电路设计的组合式大型离散空间)中运行,可以通过降低计算成本的形式获得持续优化的好处。我们认为,从离散到连续的这种转换在硬件设计的其他领域(例如位置和路线)中具有前景。我们预计,生成模型将在硬件设计中发挥越来越重要的作用。
有关 CircuitVAE 的更多信息,请参阅 CircuitVAE:高效且可扩展的潜在电路优化。