《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 人工智能 > 業(yè)界動(dòng)態(tài) > 中科院團(tuán)隊(duì)用AI設(shè)計(jì)了一顆CPU

中科院團(tuán)隊(duì)用AI設(shè)計(jì)了一顆CPU

2023-07-03
作者: 李飛
來(lái)源:半導(dǎo)體行業(yè)觀察
關(guān)鍵詞: 中科院 AI CPU

本文作者: 李飛

本文來(lái)源:半導(dǎo)體行業(yè)觀察

原文鏈接:https://mp.weixin.qq.com/s/KZO_pWsdWN6p0cBcBN7lgQ


  六月底,來(lái)自中科院的團(tuán)隊(duì)在預(yù)印本平臺(tái)arxiv上發(fā)表了重磅論文《Pushing the Limits of Machine Design:Automated CPU Design with AI》(機(jī)器設(shè)計(jì)新突破:使用人工智能自動(dòng)設(shè)計(jì)CPU),其中使用了人工智能的方法,成功地在5個(gè)小時(shí)內(nèi)完成了一個(gè)基于RISC-V指令集的CPU的設(shè)計(jì),而且該設(shè)計(jì)經(jīng)過(guò)后端布局布線后已經(jīng)成功流片點(diǎn)亮并且能運(yùn)行Linux和Dhrystone。

微信截圖_20230703134043.png

  該論文一經(jīng)發(fā)表,就得到了半導(dǎo)體業(yè)界的廣泛關(guān)注,我們認(rèn)為,該論文中提出的方法有其歷史淵源,但是團(tuán)隊(duì)提出了對(duì)于已有方法的一種從數(shù)學(xué)角度來(lái)看很優(yōu)美的改進(jìn),從而能夠讓基于機(jī)器學(xué)習(xí)的自動(dòng)芯片設(shè)計(jì)成為現(xiàn)實(shí)。

  首先,我們回顧一下現(xiàn)有的數(shù)字芯片設(shè)計(jì)流程。主流的芯片設(shè)計(jì)流程是,芯片設(shè)計(jì)師首先描述數(shù)字邏輯設(shè)計(jì),而EDA工具軟件則把這樣的電路描述映射到完全等價(jià)的數(shù)字邏輯電路。在這個(gè)過(guò)程中,整個(gè)數(shù)字邏輯或者是用Verilog等硬件描述語(yǔ)言來(lái)描述(常常是芯片設(shè)計(jì)師使用的描述方法),或者是使用等價(jià)的布爾邏輯圖的形式來(lái)描述(常見(jiàn)于一些EDA軟件的內(nèi)部?jī)?yōu)化過(guò)程中)。布爾邏輯圖和硬件設(shè)計(jì)語(yǔ)言?xún)烧呤堑葍r(jià)的,其特點(diǎn)就是能夠完全描述數(shù)字邏輯。例如,如果是一個(gè)簡(jiǎn)單的有n比特輸入的組合邏輯,那么在描述中就需要能夠生成一張布爾邏輯表格(真值表),該表格需要能覆蓋所有2^n種輸入比特組合的對(duì)應(yīng)輸出。而對(duì)于時(shí)序邏輯,則還需要考慮內(nèi)部狀態(tài)比特,需要的表格就更大了。

  與之相對(duì)應(yīng)的是,基于機(jī)器學(xué)習(xí)的自動(dòng)設(shè)計(jì)關(guān)注的問(wèn)題是:如果我們只給出真值表的一部分,能否同樣可以生成正確的數(shù)字邏輯?舉例來(lái)說(shuō),該論文中針對(duì)的CPU自動(dòng)生成的問(wèn)題,其中有1798個(gè)輸入和1826個(gè)輸出,在這種情況下如果直接使用真值表需要(2^1798)*1826大小的真值表,這樣大的真值表基本上是不可能在合理的時(shí)間內(nèi)生成的,而且也沒(méi)有可行的算法來(lái)處理如此大的真值表。對(duì)此,論文提出的觀點(diǎn)是,可以使用一種新的算法,該算法可以只使用真值表的一小部分來(lái)訓(xùn)練,就能夠生成自動(dòng)推理出真值表的其他部分,并且保證有很高的準(zhǔn)確度。因此,設(shè)計(jì)流程就變成了:用戶(hù)提供一個(gè)芯片邏輯真值表的一部分(需要是高質(zhì)量數(shù)據(jù),能夠抓住電路邏輯的主要特點(diǎn)),機(jī)器學(xué)習(xí)算法根據(jù)這個(gè)邏輯真值表自動(dòng)推理并補(bǔ)全真值表的其他部分,并且把該完整真值表送到傳統(tǒng)的EDA工具里去做邏輯綜合和物理設(shè)計(jì)。因此,電路設(shè)計(jì)流程也就由大量人工參與邏輯設(shè)計(jì)迭代(下圖a)變成了用戶(hù)提供一個(gè)輸入輸出數(shù)據(jù)集,AI直接綜合出邏輯和電路(下圖b)。

微信截圖_20230703134211.png

  為了實(shí)現(xiàn)這樣的功能,論文提出了BSD算法。BSD算法的本質(zhì)是一種動(dòng)態(tài)圖算法:對(duì)于任意的邏輯,它首先生成一個(gè)初始的圖(例如,無(wú)論輸入如何輸出都是0);然后隨著用戶(hù)提供更多的輸入輸出數(shù)據(jù)(即提供真值表的一部分),BSD的圖會(huì)隨之更新(添加更多邊和節(jié)點(diǎn)),從而讓BSD對(duì)應(yīng)的邏輯能夠滿足用戶(hù)提供的真值表。例如,在一比特加法器的例子中,一開(kāi)始的BSD邏輯圖對(duì)應(yīng)的是一個(gè)輸出永遠(yuǎn)是0的簡(jiǎn)單邏輯,但是隨著用戶(hù)給出更多的輸入輸出的數(shù)據(jù),BSD圖也在不斷地修正,最后當(dāng)用戶(hù)給出足夠多的數(shù)據(jù)時(shí)(不一定需要給出真值表的全部),BSD就收斂到了正確的一比特加法器邏輯。

微信截圖_20230703134228.png

  如前所述,這樣得到的BSD可以通過(guò)推理的方法來(lái)補(bǔ)完整個(gè)真值表,但是這樣的真值表對(duì)于現(xiàn)有的EDA軟件來(lái)說(shuō)會(huì)太大而無(wú)法處理,因此論文又提出了一種BSD圖的處理方法可以把一個(gè)大的BSD分解成多個(gè)子BSD,并且在每個(gè)子BSD中進(jìn)行圖節(jié)點(diǎn)合并以進(jìn)一步減小BSD圖的大小,最后能把BSD圖中的節(jié)點(diǎn)縮減到一百萬(wàn)個(gè)左右,從而EDA工具可以輕松處理。

  為了驗(yàn)證該算法的有效性,團(tuán)隊(duì)選擇了RISC-V處理器作為目標(biāo)設(shè)計(jì)。具體來(lái)說(shuō),在數(shù)據(jù)集方面,論文團(tuán)隊(duì)使用RISC-V模擬器隨機(jī)生成了2^40組輸入輸出數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),另一方面團(tuán)隊(duì)把之前RISC-V設(shè)計(jì)中使用的測(cè)試樣例(通常是最具有代表性的輸入輸出數(shù)據(jù))也加入了訓(xùn)練集中。值得注意的是,RISC-V CPU的輸入和輸出分別有1789和1826個(gè),因此理論上完整真值表需要有1826*(2^1789)個(gè)輸入輸出數(shù)據(jù),而團(tuán)隊(duì)使用的訓(xùn)練數(shù)據(jù)集只是完整真值表所需數(shù)據(jù)微不足道的一小部分,同時(shí)也可以在合理的時(shí)間內(nèi)產(chǎn)生出來(lái)。

  之后,團(tuán)隊(duì)使用了該訓(xùn)練集在5小時(shí)內(nèi)完成了算法的訓(xùn)練,并且把生成的BSD送入EDA軟件中進(jìn)行綜合,在經(jīng)過(guò)FPGA驗(yàn)證后進(jìn)行了流片,最后CPU芯片能跑在300MHz時(shí)鐘頻率并且能成功運(yùn)行Linux和Dhrystone。

微信截圖_20230703134243.png

  BSD模型對(duì)于芯片設(shè)計(jì)方法學(xué)的影響

  我們認(rèn)為,該論文中提出的設(shè)計(jì)方法對(duì)于未來(lái)的芯片設(shè)計(jì)可能有深遠(yuǎn)的影響。

  首先,該論文中的算法訓(xùn)練時(shí)間僅僅為5小時(shí),這樣的時(shí)間遠(yuǎn)遠(yuǎn)小于常規(guī)的處理器完成設(shè)計(jì)的時(shí)間——即使是所有的架構(gòu)定義和輸入輸出樣例都已經(jīng)完備,人工完成這樣的設(shè)計(jì)需要的時(shí)間至少是在幾周到一個(gè)月的級(jí)別,這遠(yuǎn)遠(yuǎn)高于5小時(shí)的訓(xùn)練時(shí)間。更重要的是,未來(lái)隨著計(jì)算平臺(tái)算力的升級(jí),該算法訓(xùn)練需要的時(shí)間可望進(jìn)一步減?。阂阅壳懊?jī)赡耆斯ぶ悄芩懔Ψ兜膭?shì)頭來(lái)看,大約五年內(nèi)該訓(xùn)練時(shí)間就可以做到一小時(shí)以下。

  其次,該算法是典型的數(shù)據(jù)驅(qū)動(dòng),需要大量的高質(zhì)量數(shù)據(jù)。這意味著未來(lái)對(duì)于芯片設(shè)計(jì)來(lái)說(shuō),如何產(chǎn)生這些數(shù)據(jù)會(huì)非常重要。在論文中,我們可以看到這些數(shù)據(jù)來(lái)源于RISC-V處理器的功能模擬器(simulator),換句話說(shuō)未來(lái)芯片設(shè)計(jì)師的任務(wù)可能會(huì)更加集中到上層的功能定義以及描述(例如使用Python或者C語(yǔ)言對(duì)于芯片的功能進(jìn)行建模)。類(lèi)似的使用高級(jí)語(yǔ)言來(lái)描述電路并實(shí)現(xiàn)綜合的嘗試已經(jīng)有十余年(例如高級(jí)語(yǔ)言綜合High level synthesis,HLS等),但是獲得的成功一直有限,僅僅在一些特定的電路中獲得應(yīng)用;而如今使用機(jī)器學(xué)習(xí)的方法配合高級(jí)語(yǔ)言進(jìn)行電路功能描述可能是實(shí)現(xiàn)類(lèi)似高級(jí)語(yǔ)言綜合的一個(gè)可行路徑。

  最后,雖然論文中使用機(jī)器學(xué)習(xí)直接產(chǎn)生了一個(gè)CPU這樣的大型設(shè)計(jì),但是從產(chǎn)業(yè)界的角度,更有可能的做法是從中小型IP開(kāi)始,搭建一個(gè)基于AI的設(shè)計(jì)平臺(tái),并且在經(jīng)過(guò)幾輪迭代后再漸漸推廣到更大的設(shè)計(jì),并且最終簡(jiǎn)化設(shè)計(jì)的流程。

  BSD與其他人工智能如何進(jìn)一步推動(dòng)芯片設(shè)計(jì)

  我們認(rèn)為,BSD的提出是一個(gè)自動(dòng)設(shè)計(jì)的一個(gè)突破,因?yàn)樗蚱屏酥霸O(shè)計(jì)綜合需要完整真值表的限制。同時(shí),我們也認(rèn)為接下來(lái)BSD算法會(huì)進(jìn)一步迭代并取得更好的結(jié)果,并且和其他人工智能算法一起進(jìn)一步簡(jiǎn)化芯片設(shè)計(jì)。

  首先,論文中提到的BSD的搭建是從零開(kāi)始,并且通過(guò)訓(xùn)練數(shù)據(jù)來(lái)完成創(chuàng)建。一個(gè)有可能的未來(lái)發(fā)展方向是,如何從一個(gè)基礎(chǔ)參考設(shè)計(jì)開(kāi)始做一定的改動(dòng),來(lái)實(shí)現(xiàn)一個(gè)新的設(shè)計(jì)?類(lèi)似的參考設(shè)計(jì)方法是芯片設(shè)計(jì)行業(yè)的常規(guī)操作,而在人工智能業(yè)界,相對(duì)應(yīng)的做法就是預(yù)訓(xùn)練和微調(diào)——即在較大的訓(xùn)練數(shù)據(jù)集上進(jìn)行訓(xùn)練實(shí)現(xiàn)一個(gè)基礎(chǔ)模型,然后使用一個(gè)較小的數(shù)據(jù)集來(lái)微調(diào)來(lái)滿足定制化。如果未來(lái)BSD能實(shí)現(xiàn)這樣的參考設(shè)計(jì)和微調(diào),那么將進(jìn)一步減小對(duì)于用戶(hù)產(chǎn)生數(shù)據(jù)量的需求和訓(xùn)練時(shí)間,從而進(jìn)一步提升BSD的使用體驗(yàn)。

  其次,BSD可以和其他人工智能算法結(jié)合來(lái)進(jìn)一步提升設(shè)計(jì)的效率。例如,目前的ChatGPT類(lèi)大語(yǔ)言模型對(duì)于Python已經(jīng)有了很好的支持,但是對(duì)于Verilog等語(yǔ)言的支持以及設(shè)計(jì)流程的支持還不夠完備;在未來(lái),對(duì)于一個(gè)芯片IP的設(shè)計(jì),我們可望看到ChatGPT類(lèi)大語(yǔ)言模型去幫助生成上層使用Python描述的功能模型,使用該功能模型去生成輸入輸出數(shù)據(jù),然后使用BSD來(lái)完成最終的數(shù)字邏輯設(shè)計(jì)。

  綜合上述的分析,我們認(rèn)為BSD有希望成為未來(lái)EDA流程中的重要一環(huán),它可以幫助推動(dòng)高級(jí)語(yǔ)言邏輯綜合,同時(shí)也可望和其他人工智能大語(yǔ)言模型一起進(jìn)一步簡(jiǎn)化芯片設(shè)計(jì)流程,并且大大降低芯片設(shè)計(jì)需要的時(shí)間和成本。未來(lái)的芯片設(shè)計(jì)中,對(duì)于芯片設(shè)計(jì)師的要求越來(lái)越多會(huì)集中到更上層的功能定義,而不是具體的邏輯編寫(xiě)。

 更多精彩內(nèi)容歡迎點(diǎn)擊==>>電子技術(shù)應(yīng)用-AET<<

  微信圖片_20210517164139.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。