计算机芯片中的算术电路是使用逻辑门网络(如 NAND、NOR 和 XOR)和电线构成的。理想的电路应具有以下特点:
小:较小的区域,以便更多电路可以安装在芯片上。
快速:降低延迟以提高芯片的性能。
消耗更少的功率:芯片的功耗更低。
在我们的论文中,我们关注电路面积和延迟。我们发现功耗与我们感兴趣的电路的面积密切相关。电路面积和延迟通常是相互竞争的属性,因此我们希望找到能够有效权衡这些属性的设计的帕累托前沿。简而言之,我们希望在每次延迟时都有最小面积的电路。
在 PrefixRL 中,我们专注于一类流行的算术电路,称为(并行)前缀电路((parallel) prefix circuits.)。GPU 中的各种重要电路,例如加法器、增量器和编码器,都是前缀电路,可以在更高级别上定义为前缀图(prefix graphs)。
在这项工作〒中,我们特别提出了一个问题:AI 代理能否设计出好的前缀图?所有前缀图的状态空间都很大O(2^n^n),无法使用蛮力方法进行探索。
使用电路生成器将前缀图转换为带有线和逻辑门的电路。这些生成的电路然后由物理综合工具进一步优化,该工具使用物理综合优化,例如gate sizing, duplication和buffer insertion.
由于这些物理综合优化,最终的电路属性(延迟、面积ξ和功率)不会直接从原始前缀图属性(例如电平和节点计数)转换而来。这就是为什么ζ AI 代理会学习设计前缀图,但会针对从前缀图生成的最终电路的属性进行优化。
我们将算术电路设计视为强化学习 (RL) 任务,在其中我们训练一个代理(agent)来优化算术电路的面积和延迟特性。对于前缀电路,我们设计了一个环境,RL 代理可以在其中添加或删除前缀图中的节点,之后会发生以下步骤:
1.前缀图被合法化以始终保持正确的前缀和计算。
2.从合法化的前缀图生成电路。
3.该电路使用物理综合工具进行物理综合优化。
4.测量电路的面积和延迟特性。
在一个环节中,RL 代理通过添加或删除节点逐步构建前缀图。在每一步,代理都会收到相应电路区域的改进和延迟作为奖励。
状态和动作表示以及深度强化学习模型
我们使用 Q-learning 算法来训练电路设计代理。我◤们对前缀图使用网格表示,其中网格中的每个元素唯一地映射到前缀节点。这种网格表示用于 Q 网络的输入和输出。输入网格中的每个元素表示节点是否存在。输出网格中的每个元素代表添加或删除节点的 Q 值。
我们为代理使用完全卷积神经网络架构,因为 Q-learning 代理的输入和输出是网格表示↓。代理分别预测面积和延迟属性的 Q 值,因为面积和延迟的奖励在训练期间是单独可观察的。