谷歌研究新突破:6小时完成芯片设计
2021-06-17
来源:OFweek电子工程网
一直以来,芯片设计的难度丝毫不亚于芯片制造工艺。直到八十年代EDA技术诞生以后,芯片自动化设计的出现帮助芯片设计以及超大规模集成电路的难度大大降低,工程师只需要将芯片的功能用编程语言进行描述并输入计算机,再由EDA工具软件将语言编译成逻辑电路,然后再进行调试即可。但现在的芯片越来越高端,动辄上百亿个晶体管布局,即使依靠EDA工具进行芯片设计,如此浩瀚的工程往往也需要几个月的时间来完成。
随着人工智能技术与芯片设计的深度融合,未来的芯片设计或许只需要数个小时就能完成!
将芯片设计变成“棋盘游戏”
英国《自然》杂志9日刊载了一项人工智能突破性成就,来自由Jeff Dean领衔的谷歌大脑团队以及斯坦福大学计算机科学系的科学家们在一项联合报告中证明,机器学习工具已可以极大地加速计算机芯片设计。团队科学家们给出了一种基于深度强化学习的芯片布局规划方法,该方法能给出可行的芯片设计方案,且芯片性能不亚于人类工程师的设计。最重要的是,整个设计过程只要几个小时,而不是几个月,这为今后的每一代计算机芯片设计节省数千小时的人力。该方法已经被谷歌用来设计下一代张量处理单元(TPU)加速器。
Jeff Dean相信大家都不陌生,他是被誉为“谷歌传奇”、“谷歌AI掌门人”的天才,曾荣获2021年IEEE冯诺依曼奖,获奖理由是“以表彰对大规模分布式计算机系统和人工智能系统科学与工程的贡献”。1999年加入谷歌后,Jeff Dean设计并部署了Google广告、抓取、索引和查询服务系统的大部分内容,以及位于Google大部分产品下方的各种分布式计算基础架构,也是Google新闻、Google翻译等产品的开发者。还曾参与创办谷歌大脑,搭建著名的深度学习框架TensorFlow。
在大牛的带队下,这支研究团队最新的研究表明,人工智能机器学习工具已经可以用来加速芯片设计中“布局规划”的流程。简单来说,科学家们让这个机器学习工具把“布局规划”看作一种棋盘游戏,“棋子”就是电子元器件,而“棋盘”是放置电子元器件的电子画布,下棋得到的“获胜结果”就是通过一系列评估指标获取最优性能(基于一个包含1万例芯片布局的参考数据集)。
大家都知道,芯片的布局规划十分复杂,即使是人类工程师也要多番思考后才能对比选择出最优的布局方案,对于人工智能机器学习工具来说,它需要从经验中不断学习,以便于确定放置新芯片模块的时候更好更快。这其中最大的困难在于,如何让人工智能知道自己放置新芯片模块达到了最优条件呢?这就需要让它学习优化所有可能的芯片网表,设计出芯片画布上的所有可能出现的布局。
正如上文提到的“棋盘游戏”,“棋子”元件包括了网表拓扑、宏计数、宏大小和纵横比等元素;“棋盘”电子画布可以看做不同的芯片画布大小和纵横比组成的各种方案;“获胜”则是在不同的评估指标或不同的密度和路由拥塞约束的相对重要性。任何一个元件,在画布上位置的不同,都可以看做是整个网表中状态的变化,对全局造成影响。
这种方法其实很像当年名震一时,先后打败李世石、柯洁等围棋冠军的“AlphaGo”的设计原理。AlphaGo正是结合了监督学习和强化学习的优势,通过训练形成一个策略网络,将棋盘上的局势作为输入信息,并对所有可行的落子位置生成一个概率分布。
在获取棋局信息后,阿尔法围棋会根据策略网络探索哪个位置同时具备高潜在价值和高可能性,进而决定最佳落子位置。在分配的搜索时间结束时,模拟过程中被系统最频繁考察的位置将成为阿尔法围棋的最终选择。在经过先期的全盘探索和过程中对最佳落子的不断揣摩后,阿尔法围棋的搜索算法就能在其计算能力之上加入近似人类的直觉判断。这样设计一个围棋人工智能的程序就会依据既定好的策略执行,直到最后获得棋盘上最大的地盘。
图|人类设计的微芯片平面图(a)与机器学习系统设计(b)的不同(来源:Nature)
再回到原本的话题,人工智能技术在帮助芯片设计的过程中,除了对芯片布局规划的直接影响外,这种形式还能被应用在广泛的科学和工程应用中,例如硬件设计、城市规划、疫苗测试和分发以及大脑皮层布局研究等。
结果显示,在不到6小时时间里,这种方法自动生成的芯片平面图不管是功耗、性能,还是芯片面积等参数都优于或与人类专家生成的设计图效果相当,要知道人类工程师达到同样的效果往往需要数个月的努力。
将芯片设计问题转变为一个机器学习问题并不容易,美国加州大学圣迭戈分校科学家对此认为,开发出比当前方法更好、更快、更省钱的自动化芯片设计方法,有助于延续芯片技术的“摩尔定律”。
人工智能技术能帮助芯片设计解决哪些难题
此前OFweek电子工程网在采访MathWorks首席战略师Jim Tung时曾了解到,将人工智能算法应用在电子设计自动化软件中其实已经很常见,比如知名的光刻机龙头ASML在开发基于机器学习的半导体制造虚拟计量技术时,哪怕本身是一名不具有神经网络机器学习方面经验的ASML工艺工程师,也能通过MATLAB软件案例及其中提供的各种案例,去学习使用这款工具进行开发。
Jim Tung还提到,MathWorks所提供的激光雷达工具箱、预测性维护工具箱、无线工具箱、机器学习/深度学习/增强学习工具箱、自动驾驶工具箱、虚拟道路仿真工具箱,以及关于视觉检测、医学成像、土地分类等一系列的参考案例中,都有人工智能技术的参与。
同样,对于谷歌来说这已经不是他们第一次利用人工智能技术加速芯片开发的实验了。过去几年里,谷歌表示其内部正在将人工智能技术用于一系列芯片设计项目中,比如谷歌开发了AI硬件家族——Tensor Processing Unit(TPU芯片),专门用在服务器计算机中处理AI。使用AI来设计芯片是一个良性循环,AI让芯片变得更好,经过改良的芯片又能增强AI算法,依此类推。
人工智能技术到底能帮助解决芯片设计中的哪些难题?第一点就是芯片层的设计规划,芯片布局不是简单的二维平面问题,而是复杂的三维设计问题,需要在一个受限制的区域内跨多个层小心地配置成百上千个组件。人类工程师会手动设计配置,以最小化组件之间使用的电线数量来提高效率,然后使用电子设计自动化软件来模拟和验证它们的性能,而仅一个单层的平面图就需要花费超过30个小时。现在,人工智能技术也能以人类启发式思维去考虑芯片性能、复杂性、制造成本等多个因素,以最佳方式进行设计。
第二点是时间成本,传统意义上芯片的寿命在2到5年之间,光是芯片设计就占据了几个月的时间,随着人工智能技术的快速发展,越来越多优化芯片层规划的算法开始出现,极大缩减研发人员的开发时间。
第三点是智能化程度,比如上文提到的机器学习算法使用正反馈和负反馈来学习复杂的任务,研究人员设计了一种“奖励函数”根据算法的设计表现对其进行奖惩。直到该算法产生数万到数十万个新设计,每个设计都在几分之一秒内完成,并使用奖励函数对它们进行评估。随着时间的推移,它最终形成了以最佳方式放置芯片组件的策略。
最后一点,研究人员发现,算法可以计算到人们脑力无法企及的空白区,训练计算的数量上去了,可作为优选的方案自然也就更多了。换言之,算法的许多平面图其实比人类工程师设计的要好,也就是说它还教会了人类一些新技巧,这也是一个相互学习的过程。
当然,强大的算法虽然可以缩减芯片设计的时长,但并不意味着具有完全自主决策的能力,它更多的还是扮演着“AI助理”的角色,只不过这个助理丰富的案例和超快计算能力能够更好的帮助人类工程师实现快速的芯片设计流程。
参考资料
1、《A graph placement methodology for fast chip design》
2、《AI system outperforms humans in designing floorplans for microchips》