Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

John Russell作者

几个GPU工作数天≈10人团队工作大半年,英伟达用AI高效设计芯片

「同样是移植一个新的技术库,如果使用人力,我们需要一个 10 人左右的团队工作大半年,但借助 AI,我们只需要花几天时间运行几个 GPU 就能完成大部分工作。」

近几年,芯片设计成为 AI 落地的一个重要领域,谷歌、英伟达、三星、西门子等多家公司都已经计划或开始尝试在芯片设计中使用 AI。其中,同时在芯片设计和 AI 领域深耕多年的英伟达有着得天独厚的优势。在前段时间的 GTC 大会上,英伟达首席科学家、计算机架构大师 Bill Dally 介绍了他们在这方面取得的进展以及所使用的 AI 工具。

以下是 Bill Dally 在 GTC 大会上的介绍原文。


预测电压降

作为 AI 专家,我们自然希望利用 AI 来设计更好的芯片。我们有几种不同的方法:一是利用现有的计算机辅助设计工具(并融入 AI),例如我们有一个可以绘制 GPU 中用电位置的地图,它还可以预测电压网下降多少——电流乘以电阻压降,被称为 IR 压降。在传统的 CAD 工具上运行该流程需要三个小时。

这是一个迭代的过程,所以进行起来有点麻烦。我们想训练一个 AI 模型来处理相同的数据。我们做了一系列的设计来进行这样的操作,然后就可以输入电源图了,最后推断时间只需三秒。当然,如果算上特征提取的时间,我们要花 18 分钟,很快就能得到结果。

我们没有使用卷积神经网络,而是用到了神经网络,这是为了估计电路中不同节点的开关频率。同样,我们能够比传统工具更快地获得非常准确的功率估计,并且只需很少的时间。


预测寄生参数(parasitics)

我特别喜欢的一项工作是用神经网络预测寄生参数。之前这项工作要花费大量时间,因为以前的电路设计是一个迭代的过程,你要画一个原理图,就像左边这张图。但你不知道它的性能如何,直到设计师采用该原理图进行 layout,提取寄生参数,再运行电路仿真,才会发现设计可能不符合规格,才能知道电路的性能。

接下来,设计师就要修改原理图,并再次通过 layout 来验证电路的有效性。这是一个非常漫长、反复甚至不人道的劳动密集型工作。

现在,我们可以训练神经网络来预测寄生参数,而无需进行 layout。因此,电路设计人员可以非常快速地进行迭代,而无需手动执行 layout 步骤。事实表明:我们的神经网络对寄生参数的预测非常准确。


布局、布线挑战

我们的神经网络还可以预测布线拥塞(routing congestion),这对于芯片 layout 至关重要。在传统的流程中,我们需要制作一个网表(net list),运行布局和布线过程,这可能非常耗时,通常需要几天的时间。但如果不这么做,我们就无法得到实际的布线拥塞并发现最初布局的缺陷。我们需要对其进行重构并以不同的方式布局 macro 以避免出现下图所示的红色区域(穿过该区域的电线过多,类似于交通堵塞)。

现在借助神经网络,无需运行布局和布线,我们就可以获取这些网表并使用神经网络大致预测拥塞的位置,准确率也非常高。这种方法暂时还不完美,但它能够显示出存在问题的区域,然后我们就能采取行动并非常快速地进行迭代,而无需进行完整的布局和布线。


自动化标准单元迁移

以上方法都是在用 AI 评价人类已经完成的设计,但实际上更令人兴奋的是用 AI 来实际设计芯片。

我来举两个例子。第一个是我们称之为 NV cell 的系统,它使用模拟退火和强化学习来设计我们的标准单元库(标准单元库是底层电子逻辑功能的集合,例如 AND、OR、INVERT、触发器、锁存器和缓冲器 )。所以在每次技术迭代的时候,比如从 7 纳米迁移到 5 纳米,我们都会拥有一个单元库。我们实际上有成千上万个这样的库,它们必须用新技术重新设计,有一套非常复杂的设计规则。

我们借助强化学习来放置晶体管,但随之而来的可能是一堆设计规则错误,而这正是强化学习所擅长的。设计芯片就像一个雅达利游戏,但它是一个在标准单元中修复设计规则错误的游戏。通过强化学习检查和修复这些设计规则错误,我们基本上能够完成标准单元的设计。

下图显示的是该工具完成度为 92% 的单元库,没有设计规则或电气规则错误。这些单元中的 12% 比人类设计的单元要小。总的来说,在单元复杂性方面,该工具做得和人类设计的单元一样好,甚至比人类的还好。

这对我们有两大好处。一是节约大量劳动力。同样是移植一个新的技术库,如果使用人力,我们需要一个 10 人左右的团队工作大半年,但借助 AI,我们只需要花几天时间运行几个 GPU 就能完成大部分可以自动化的工作(92%),然后再由人来完成剩下的 8%。很多时候我们都能拿到更好的设计,所以这个方式不光节省人力,效果也比人类手工的结果好。


原文链接:https://www.hpcwire.com/2022/04/18/nvidia-rd-chief-on-how-ai-is-improving-chip-design/

理论GPU英伟达
相关数据
重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

雅达利游戏技术

雅达利(英语:Atari,NASDAQ:ATAR)是美国诺兰·布什内尔在1972年成立的电脑公司,街机、家用电子游戏机和家用电脑的早期拓荒者。不少诸如《乓》、《爆破彗星》等的经典早期电脑游戏的发行,使雅达利在电子游戏历史上举足轻重。经典游戏主机为1977年发行的雅达利2600。

推荐文章
暂无评论
暂无评论~