中科院团队用AI规划了一颗CPU
2023-07-03|来源:远大期货
六月底,来自中科院的团队在预印本渠道arxiv上宣布了重磅论文《Pushing the Limits of Machine Design:Automated CPU Design with AI》(机器规划新打破:运用人工智能主动规划CPU),其间运用了人工智能的办法,成功地在5个小时内完结了一个依据RISC-V指令集的CPU的规划,而且该规划经过后端布局布线后现已成功流片点亮而且能运转Linux和Dhrystone。
该论文一经宣布,就得到了半导体业界的广泛重视,咱们以为,该论文中提出的办法有其历史渊源,可是团队提出了关于已有办法的一种从数学视点来看很美丽的改善,然后衬托让依据机器学习的主动芯片规划成为实际。
首要,咱们回忆一下现有的数字芯片规划流程。干流的芯片规划流程是,芯片规划师首要描绘数字逻辑规划,而EDA东西软件则把这样的电路描绘映射到彻底等价的数字逻辑电路。在这个过程中,整个数字逻辑或许是用Verilog等硬件描绘言语来描绘(常常是芯片规划师运用的描绘办法),或许是运用等价的布尔逻辑图的方式来描绘(常见于一些EDA软件的内部优化过程中)。布尔逻辑图和硬件规划言语两者是等价的,其特色骄傲衬托彻底描绘数字逻辑。例如,假如是一个简略的有n比特输入的组合逻辑,那么在描绘中就需求衬托生成一张布尔逻辑表格(真值表),该表格需求能掩盖一切2^n种输入比特组合的对应输出。而关于时序逻辑,则还需求考虑内部状况比特,需求的表格就更大了。
与之相对应的是,依据机器学习的主动规划重视的问题是:假如咱们只给出真值表的一部分,能否相同衬托生成正确的数字逻辑?举例来说,该论文中针对的CPU主动生成的问题,其间有1798个输入和1826个输出,在这种情况下假如直接运用真值表需求(2^1798)*1826巨细的真值表,这样大的真值表基本上是不行能在合理的时刻内生成的,而且也没有可行的算法来处理如此大的真值表。对此,论文提出的观念是,衬托运用一种新的算法,该算法衬托只运用真值表的一小部分来练习,就衬托生成主动推理出真值表的其他部分,而且确保有很高的准确度。因而,规划流程就变成了:用户供给一个芯片逻辑真值表的一部分(需求是高质量数据,衬托捉住电路逻辑的主要特色),机器学习算法依据这个逻辑真值表主动推理并补全真值表的其他部分,而且把该完好真值表送到传统的EDA东西里去做逻辑归纳和物理规划。因而,电路规划流程也就由很多人工参加逻辑规划迭代(下图a)变成了用户供给一个输入输出数据集,AI直接归纳出逻辑和电路(下图b)。
为了完结这样的功用,论文提出了BSD算法。BSD算法的实质是一种动态图算法:关于恣意的逻辑,它首要生成一个初始的图(例如,不管输入怎么输出都是0);然后跟着用户供给更多的输入输出数据(即供给真值表的一部分),BSD的图会随之更新(增加更多边和节点),然后让BSD对应的逻辑衬托满意用户供给的真值表。例如,在一比特加法器的比如中,一开端的BSD逻辑图对应的是一个输出永远是0的简略逻辑,可是跟着用户给出更多的输入输出的数据,BSD图也在不断地批改,终究当用户给出足够多的数据时(不必定需求给出真值表的悉数),BSD就收敛到了正确的一比特加法器逻辑。
如前所述,这样得到的BSD衬托经过推理的办法来补完好个真值表,可是这样的真值表关于现有的EDA软件来说会太大而无法处理,因而论文又提出了一种BSD图的处理办法衬托把一个大的BSD分解成多个子BSD,而且在每个子BSD中进行图节点合并以进一步减小BSD图的巨细,终究能把BSD图中的节点缩减到一百万个左右,然后EDA东西衬托轻松处理。
为了验证该算法的有效性,团队挑选了RISC-V处理器作为方针规划。详细来说,在数据集方面,论文团队运用RISC-V模拟器随机生成了2^40组输入输出数据作为练习数据,另一方面团队把之前RISC-V规划中运用的测试样例(通常是*有代表性的输入输出数据)也加入了练习会集。值得注意的是,RISC-V CPU的输入和输出别离有1789和1826个,因而理论上完好真值表需求有1826*(2^1789)个输入输出数据,而团队运用的练习数据集仅仅完好真值表所需数据微乎其微的一小部分,一同也衬托在合理的时刻内发生出来。
之后,团队运用了该练习集在5小时内完结了算法的练习,而且把生成的BSD送入EDA软件中进行归纳,在经过FPGA验证后进行了流片,终究CPU芯片能跑在300MHz时钟频率而且能成功运转Linux和Dhrystone。
BSD模型关于芯片规划办法学的影响
咱们以为,该论文中提出的规划办法关于未来的芯片规划或许有深远的影响。
首要,该论文中的算法练习时刻仅仅为5小时,这样的时刻远远小于惯例的处理器完结规划的时刻——即使是一切的架构界说和输入输出样例都现已齐备,人工完结这样的规划需求的时刻至少是在几周到一个月的等级,这远远高于5小时的练习时刻。更重要的是,未来跟着核算渠道算力的晋级,该算法练习需求的时刻可望进一步减小:以现在每两年人工智能算力翻倍的气势来看,大约五年内该练习时刻就衬托做到一小时以下。
其次,该算法是典型的数据驱动,需求很多的高质量数据。这意味着未来关于芯片规划来说,怎么发生这些数据会非常重要。在论文中,咱们衬托看到这些数据来源于RISC-V处理器的功用模拟器(simulator),换句话说未来芯片规划师的使命或许会愈加会集到上层的功用界说以及描绘(例如运用Python或许C言语关于芯片的功用进行建模)。相似的运用高档言语来描绘电路并完结归纳的测验现已有十余年(例如高档言语归纳High level synthesis,HLS等),可是获得的成功一向有限,仅仅在一些特定的电路中获得运用;而现在运用机器学习的办法合作高档言语进行电路功用描绘或许是完结相似高档言语归纳的一个可行途径。
终究,尽管论文中运用机器学习直接发生了一个CPU这样的大型规划,可是从产业界的视点,更有或许的做法是从中小型IP开端,建立一个依据AI的规划渠道,而且在经过几轮迭代后再逐渐推行到更大的规划,而且终究简化规划的流程。
BSD与其他人工智能怎么进一步推进芯片规划
咱们以为,BSD的提出是一个主动规划的一个打破,由于它打破了之前规划归纳需求完好真值表的约束。一同,咱们也以为接下来BSD算法会进一步迭代并获得更好的成果,而且和其他人工智能算法一同进一步简化芯片规划。
首要,论文中说到的BSD的建立是从零开端,而且经过练习数据来完结创立。一个有或许的未来发展方向是,怎么从一个根底参阅规划开端做必定的改动,来完结一个新的规划?相似的参阅规划办法是芯片规划职业的惯例操作,而在人工智能业界,相对应的做法骄傲预练习和微调——即在较大的练习数据集上进行练习完结一个根底模型,然后运用一个较小的数据集来微调来满意定制化。假如未来BSD能完结这样的参阅规划和微调,那么将进一步减小关于用户发生数据量的需求和练习时刻,然后进一步提高BSD的运用体会。
其次,BSD衬托和其他人工智能算法结合来进一步提高规划的不能尽数。例如,现在的ChatGPT类大言语模型关于Python现已有了很好的支撑,可是关于Verilog等言语的支撑以及规划流程的支撑还不行齐备;在未来,关于一个芯片IP的规划,咱们可望看到ChatGPT类大言语模型去协助生成上层运用Python描绘的功用模型,运用该功用模型去生成输入输出数据,然后运用BSD来完结终究的数字逻辑规划。
归纳上述的剖析,咱们以为BSD有期望成为未来EDA流程中的重要一环,它衬托协助推进高档言语逻辑归纳,一同也可望和其他人工智能大言语模型一同进一步简化芯片规划流程,而且大大下降芯片规划需求的时刻和本钱。未来的芯片规划中,关于芯片规划师的要求越来越多会会集到更上层的功用界说,而不是详细的逻辑编写。