「」谷歌会超越三大巨头垄断芯片EDA设计工具吗?


本文作者:西南交通大学研究生导师邸志雄博士 。
近日 , 有报道称谷歌将深度强化学习方法引入芯片设计中 , 6小时内完成芯片布局设计 , 而完成相同设计步骤 , 人类专家往往要花费数周时间 。 该报道一度引起人们对机器设计芯片的浓厚兴趣 。 那么芯片后端设计的过程中能否引入AI算法 , 用芯片设计芯片能否成为现实 , 本文引用最新的权威前沿研究成果为你揭开谜团 。
EDA在芯片设计流程中的作用
文章开头提到的谷歌研究论文题目为《芯片布局与深度强化学习 (Chip Placement with Deep Reinforcement Learning)》 。 文中研究人员针对芯片设计流程中最复杂耗时的布局布线阶段提出了一种基于深度强化学习的芯片布局方法 , 目标是将宏(如SRAM)和标准单元(逻辑门 , 如NAND、NOR和XOR)的网表节点映射到一个芯片版图上 , 从而优化功率、性能和面积(PPA) , 同时遵守对布局密度和布线拥塞的约束 。
我们翻译了文章的摘要如下:“在这项工作中 , 我们提出了一种基于学习的芯片放置方法 , 这是芯片设计过程中最复杂、最耗时的阶段之一 。 与之前的方法不同 , 我们的方法具有从过去的经验中学习并随着时间的推移而改进的能力 。 特别是 , 随着我们对更多的芯片块进行训练 , 我们的方法在快速生成以前未见过的芯片块的优化放置方面变得更好 。
为了实现这些结果 , 我们将放置作为一个强化学习(RL)问题 , 并训练一个代理将芯片网表的节点放置到芯片版图上 。 为了使我们的RL策略能够泛化到未见过的芯片块 , 我们将表征学习置于预测放置质量的有监督任务中 。 通过设计一个能够准确预测各种网表及其放置质量的神经架构 , 我们能够生成丰富的输入网表的特征嵌入 。 然后 , 我们使用这个架构作为我们的策略和价值网络的编码器来实现转移学习 。 我们的目标是将PPA(功率、性能和面积)降到最低 , 我们表明 , 在6个小时内 , 我们的方法可以在现代加速器网表上生成超人类或可与之相媲美的放置 , 而现有的基线需要人类专家在循环中进行 , 并需要几周的时间 。 ”
我们首先看一下为何AI算法可以用到芯片设计中 。 传统EDA工具要做的事就是尽可能高精度地在虚拟的软件世界中重新和拟合现实中的物理和工艺问题 , 以期望在芯片设计阶段将其纳入考虑范围之内 , 以系统性的方法和预测性的裕量来应对和纠正 , 最终保证芯片设计仿真结果同流片结果一致 。 EDA工具需要对数千种情境进行快速设计探索 , 以求得性能、功耗、面积、成本等芯片物理指标和经济指标的平衡 。 随着集成电路制造工艺进入7nm以下 , 数字芯片中标准单元数量已经达到亿数量级 , EDA算法已经成为典型的数据密集型计算的典型代表 。 且现有布局布线方法大都采用组合优化算法 , 可接受的计算时间内 , 不一定能得到局部最优解 , 甚至有可能得到一个劣解 , 算法复杂度较高 。 以上两点导致EDA算法的计算时间非常冗长 , 以小时计 。
以一个简单的布线算法示意图为例 , 以下动图为EDA工具在寻求源点和终点之间的金属走线方案 。 试想一下 , 芯片内部单元以亿级数量计 , 内部布线金属层多达数层 , 如何从一个点在只能走直线和90度拐弯的限定下 , 经过各种不可布线的障碍并不断做出前行的抉择 , 穿过层层金属 , 最终准备到达芯片中的另一个点 , 期间探索方案的计算空间需求巨大 , 且整体还要满足时序和总线长最小的目标 , 并必须考虑工艺偏差 。
「」谷歌会超越三大巨头垄断芯片EDA设计工具吗?
本文插图
为了简要说明下芯片设计流程 , 方便理解EDA算法 , 下图采用了图示法进行介绍 。 该案例来源于Prof. Jens Vygen @University of Bonn的《Combinatorial Optimization and Applications in VLSI Design》课程 。