PG电子设计中科院团队用AI计划了一颗CPU

      |      2023-07-03 17:13:07

  PG电子官方网站六月底,来自中科院的团队正在预印本平台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个输出设计,正在这种情景下假如直接利用线巨细的真值表,云云大的真值表根本上是不不妨正在合理的时刻内天生的,并且也没有可行的算法来措置如许大的真值表。对此,论文提出的看法是,可能利用一种新的算法PG电子,该算法可能只利用真值表的一幼个别来锻练,就也许天生自愿推理出真值表的其他个别,而且保障有很高的切实度。于是,计划流程就形成了:用户供应一个芯片逻辑真值表的一个别(需假使高质料数据,也许收拢电途逻辑的首要特性),机械练习算法按照这个逻辑真值表自愿推理并补全真值表的其他个别,而且把该无缺真值表送到古代的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个,于是表面上无缺线)个输入输出数据,而团队利用的锻练数据集只是无缺真值表所需数据微不够道的一幼个别,同时也可能正在合理的时刻内发作出来。

  之后,团队利用了该锻练集正在5幼时内完结了算法的锻练,而且把天生的BSD送入EDA软件中实行归纳,正在颠末FPGA验证后实行了流片,末了CPU芯片能跑正在300MHz时钟频率而且能告捷运转Linux和Dhrystone。

  最先,该论文中的算法锻练时刻仅仅为5幼时,云云的时刻远远幼于通例的措置器完结计划的时刻——纵使是全盘的架构界说和输入输出样例都仍旧具备设计,人为完结云云的计划需求的时刻起码是正在几缜密一个月的级别,这远远高于5幼时的锻练时刻。更紧要的是,改日跟着揣度平台算力的升级,该算法锻练需求的时刻可望进一步减幼:以目前每两年人为智能算力翻倍的势头来看,约莫五年内该锻练时刻就可能做到一幼时以下。

  其次,该算法是楷模的数据驱动,需求巨额的高质料数据。这意味着改日看待芯片计划来说,奈何发作这些数据会额表紧要。正在论文中,咱们可能看到这些数据出处于RISC-V措置器的成效模仿器(simulator),换句话说改日芯片计划师的职业不妨会越发纠集到上层的成效界说以及描画(比如利用Python或者C叙话看待芯片的成效实行修模)。好像的利用高级叙话来描画电途并竣工归纳的考试仍旧有十余年(比如高级叙话归纳High level synthesis,HLS等),不过取得的告捷继续有限,仅仅正在极少特定的电途中取得操纵;而现在利用机械练习的举措配合高级叙话实行电途成效描画不妨是竣工好像高级叙话归纳的一个可行途途设计。

  末了,固然论文中利用机械练习直接发作了一个CPU云云的大型计划,不过从家产界的角度,更有不妨的做法是从中幼型IP起先,搭修一个基于AI的计划平台,而且正在颠末几轮迭代后再逐步引申到更大的计划,而且最终简化计划的流程。

  咱们以为,BSD的提出是一个自愿计划的一个冲破,由于它冲破了之前计划归纳需求无缺真值表的束缚。同时,咱们也以为接下来BSD算法会进一步迭代并博得更好的结果,而且和其他人为智能算法一同进一步简化芯片计划。

  最先,论文中提到的BSD的搭修是从零起先,而且通过锻练数据来完结创修。一个有不妨的改日发达对象是,奈何从一个根柢参考计划起先做必然的改动,来竣工一个新的计划?好像的参考计划举措是芯片计划行业的通例操作,而正在人为智能业界,相对应的做法便是预锻练和微调——即正在较大的锻练数据集前实行锻练竣工一个根柢模子,然后利用一个较幼的数据集来微调来知足定造化。假如改日BSD能竣工云云的参考计划和微调,那么将进一步减幼看待用户发作数据量的需乞降锻练时刻,从而进一步提拔BSD的利用体验。

  其次,BSD可能和其他人为智能算法维系来进一步提拔计划的效力。比如设计,目前的ChatGPT类大叙话模子看待Python仍旧有了很好的维持,不过看待Verilog等叙话的维持以及计划流程的维持还不敷具备;正在改日,看待一个芯片IP的计划,咱们可望看到ChatGPT类大叙话模子去帮帮天生上层利用Python描画的成效模子,利用该成效模子去天生输入输出数据,然后利用BSD来完结最终的数字逻辑计划设计。

  归纳上述的分解,咱们以为BSD有希冀成为改日EDA流程中的紧要一环,它可能帮帮激动高级叙话逻辑归纳,同时也可望和其他人为智能大叙话模子一同进一步简化芯片计划流程,而且大大低落芯片计划需求的时刻和本钱。改日的芯片计划中,看待芯片计划师的央求越来越多会纠集到更上层的成效界说,而不是简直的逻辑编写。PG电子设计中科院团队用AI计划了一颗CPU