隨著人工智能最近幾年的進(jìn)步,如何將人工智能應(yīng)用到芯片設(shè)計(jì)也成為了一個(gè)半導(dǎo)體行業(yè)熱門的話題。而隨著相關(guān)討論的展開,人工智能對(duì)于芯片行業(yè)賦能的切入點(diǎn)也越來(lái)越多地聚焦在了EDA領(lǐng)域,即如何利用人工智能強(qiáng)大的能力來(lái)幫助更高效地實(shí)現(xiàn)芯片設(shè)計(jì)、驗(yàn)證和測(cè)試。人工智能從2016年開始騰飛以來(lái),有兩個(gè)標(biāo)志性的事件,即使用強(qiáng)化學(xué)習(xí)模型并擊敗李世石的AlphaGO,以及最近橫空出世,基于大語(yǔ)言模型技術(shù)的ChatGPT。有趣的是,這兩個(gè)技術(shù)也恰恰是人工智能為為EDA賦能的關(guān)鍵技術(shù)。
在EDA領(lǐng)域,人工智能得到最多關(guān)注的領(lǐng)域是如何實(shí)現(xiàn)設(shè)計(jì)的優(yōu)化。這里的設(shè)計(jì)優(yōu)化,指的是如何在一個(gè)搜索空間巨大的設(shè)計(jì)空間中,高效地搜索到最優(yōu)解。這里的具體任務(wù)可以包括最優(yōu)布局布線,以及驗(yàn)證和測(cè)試的輸入組合等。
對(duì)于這些問題的人工智能解決方案,目前工業(yè)界大致又可以分為兩類。第一類是規(guī)模足夠大并且自身就有強(qiáng)大人工智能研發(fā)能力以及芯片設(shè)計(jì)流程定制化能力的巨頭。這類巨頭公司可以有能力自主研發(fā)相關(guān)的人工智能技術(shù)并且應(yīng)用在自研的芯片設(shè)計(jì)流程中,以改善設(shè)計(jì)流程的效率和芯片質(zhì)量。在這類公司中,最具有代表性的就是谷歌。谷歌擁有全球最領(lǐng)先的人工智能團(tuán)隊(duì),同時(shí)也擁有自研的芯片TPU,最關(guān)鍵的是谷歌的團(tuán)隊(duì)還非常熱衷于將人工智能應(yīng)用在各種新的應(yīng)用場(chǎng)景,因此谷歌使用人工智能來(lái)提升芯片設(shè)計(jì)也是情理之中。根據(jù)谷歌發(fā)表在頂級(jí)期刊《Nature》上的論文《A graph placement methodology for fast chip design》,我們知道它已經(jīng)應(yīng)用了人工智能來(lái)大幅改善自研芯片布局布線的能力,其使用強(qiáng)化學(xué)習(xí)模型的布局布線算法實(shí)現(xiàn)的性能已經(jīng)超越了人工布局布線的結(jié)果,最關(guān)鍵的是該技術(shù)已經(jīng)使用在了多代谷歌TPU中。換句話說,谷歌使用人工智能來(lái)設(shè)計(jì)自研的人工智能芯片(TPU),從而用來(lái)進(jìn)一步訓(xùn)練更強(qiáng)大的人工智能來(lái)設(shè)計(jì)更下一代的人工智能芯片——這樣的正向循環(huán)目前看起來(lái)至少在谷歌這邊已經(jīng)是初見端倪。
除了谷歌之外,Nvidia在人工智能布局布線技術(shù)上也有了不少積累,其研究團(tuán)隊(duì)上個(gè)月發(fā)表的研究結(jié)果表明,其自研的人工智能算法DREAMPlace/AutoDMP可以在短短2.5小時(shí)內(nèi)完成256核RISC-V處理器的布局任務(wù),其性能并且超越了其他的相關(guān)算法。當(dāng)然,這里的人工智能模型是運(yùn)行在了Nvidia強(qiáng)大的多卡GPU服務(wù)器上面,雖然Nvidia并沒有明確表示這個(gè)自研人工智能布局算法的商用化情況但是我們認(rèn)為當(dāng)它足夠成熟后非常有希望能改善下一代Nvidia GPU的設(shè)計(jì)效率和質(zhì)量。
除了自研芯片和AI算法的巨頭之外,另一個(gè)業(yè)界相關(guān)領(lǐng)域有重要?jiǎng)幼鞯木褪莻鹘y(tǒng)的EDA廠商。無(wú)論是Cadence還是Synopsys都已經(jīng)宣布大力投入人工智能研發(fā)數(shù)年之久,而在最近Cadence 和Synopsys都有相關(guān)的產(chǎn)品發(fā)布。在不久前舉辦的SNUG 2023上,Synopsys發(fā)布了稱為Synopsys.ai的由人工智能驅(qū)動(dòng)的新一代EDA工具,其中包括了用于優(yōu)化設(shè)計(jì)的DSO.ai,用于高效生成驗(yàn)證向量并提高debug效率的VSO.ai,以及用于生成測(cè)試向量的TSO.ai。根據(jù)Synopsys的官方數(shù)據(jù),DSO.ai主要用于提升設(shè)計(jì)空間的優(yōu)化從而實(shí)現(xiàn)PPA的提升,目前已經(jīng)有160個(gè)使用DSO.ai流片的芯片,DSO.ai可以實(shí)現(xiàn)多達(dá)15%的功率降低,并可以大大降低設(shè)計(jì)時(shí)間(多達(dá)三倍)。而使用VSO.ai和TSO.ai,用戶也可以大大降低驗(yàn)證和測(cè)試所需要的時(shí)間并提升效率。Cadence則也在四月初發(fā)布了Allegro X,其中的人工智能特性可以自動(dòng)高效生成PCB設(shè)計(jì)的布局和關(guān)鍵信號(hào)的布線,從而減少設(shè)計(jì)時(shí)間。
如果說設(shè)計(jì)/驗(yàn)證優(yōu)化是傳統(tǒng)EDA工具最關(guān)注的領(lǐng)域的話,那么另一個(gè)重要但是并沒有在傳統(tǒng)EDA工具中得到足夠重視的就是設(shè)計(jì)輸入,尤其是數(shù)字邏輯設(shè)計(jì)相關(guān)的RTL代碼編寫輔助。這個(gè)領(lǐng)域之前一直被認(rèn)為使用任何一個(gè)文本編輯器都可以做,因此一直不在EDA公司的視野之內(nèi);但是最近,隨著大語(yǔ)言模型的火熱以及使用大語(yǔ)言模型為Python等計(jì)算機(jī)代碼編寫提供輔助的copilot得到越來(lái)越多的應(yīng)用,事實(shí)上在RTL代碼編寫中使用類似的copilot技術(shù)也正在成為一個(gè)潛在的熱門方向。Copilot技術(shù)根據(jù)用戶編寫代碼的上下文自動(dòng)提示和補(bǔ)全可能的代碼,從而減少用戶需要輸入的代碼量并且減少用戶代碼編寫過程中出現(xiàn)bug的可能性,從而大大增加用戶代碼編寫的效率,未來(lái)隨著能力的提升甚至可以越來(lái)越多地自動(dòng)完成RTL代碼編寫,從而用戶只需要給出一個(gè)簡(jiǎn)短的提示(prompt),人工智能就可以給出一份代碼草稿供用戶使用。
綜上,目前EDA行業(yè)已經(jīng)正式進(jìn)入了AI時(shí)代,未來(lái)我們可望看到更多人工智能賦能的EDA出現(xiàn)。
人工智能EDA背后的核心技術(shù)
如前所述,人工智能賦能EDA背后的核心技術(shù)分別是兩大里程碑式的技術(shù),即強(qiáng)化學(xué)習(xí)和大語(yǔ)言模型。
首先,強(qiáng)化學(xué)習(xí)主要用于EDA中的優(yōu)化問題,包括最有布局布線,以及測(cè)試/驗(yàn)證向量生成等。這類問題的主要挑戰(zhàn)點(diǎn)在于參數(shù)的優(yōu)化空間巨大,如果使用暴力搜索遍歷所有可能的參數(shù)組合并不現(xiàn)實(shí)(例如在布局問題中,每一個(gè)設(shè)計(jì)中的邏輯門都可以放在幾乎版圖上的任何地方,對(duì)于目前邏輯門數(shù)量規(guī)模輕易就上數(shù)千萬(wàn)的設(shè)計(jì)來(lái)說暴力搜索恐怕等到地球上的生物滅絕也無(wú)法完成)。
傳統(tǒng)EDA使用的是啟發(fā)式的算法例如退火算法,應(yīng)當(dāng)說這類算法是取得了巨大的成功,它將布局布線問題的計(jì)算時(shí)間變得可控,從而創(chuàng)造了今天芯片領(lǐng)域的繁榮。啟發(fā)式算法的主要優(yōu)勢(shì)是計(jì)算速度較快,對(duì)于計(jì)算需求量較小,但是未必能找到全局最優(yōu)的設(shè)計(jì)參數(shù)。另一方面,強(qiáng)化學(xué)習(xí)的主要原理是從數(shù)據(jù)中學(xué)習(xí)不同參數(shù)組合的結(jié)果,從而能以數(shù)據(jù)驅(qū)動(dòng)的方式學(xué)習(xí)到較為高效的參數(shù)空間搜索方法,如果算法設(shè)計(jì)得當(dāng)而且訓(xùn)練數(shù)據(jù)足夠好的話,可以實(shí)現(xiàn)比啟發(fā)式算法更好的效果。
2016年Deepmind的AlphaGo擊敗李世石使用的就是強(qiáng)化學(xué)習(xí)模型,該模型從現(xiàn)有的海量圍棋對(duì)弈數(shù)據(jù)中進(jìn)行學(xué)習(xí),從而能夠?qū)崿F(xiàn)對(duì)人類的超越。事實(shí)上,圍棋的優(yōu)化問題和EDA的優(yōu)化問題相類似,都是在一個(gè)巨大的搜索空間(例如圍棋中每一步都有非常高的自由度導(dǎo)致了很大的搜索空間,而EDA中布局布線和測(cè)試/驗(yàn)證向量的生成也是類似)中以高效的形式找到最優(yōu)解,因此事實(shí)上在AlphaGO獲得成功的那段時(shí)間,學(xué)術(shù)界就已經(jīng)有不少關(guān)于將強(qiáng)化學(xué)習(xí)使用在EDA領(lǐng)域的探索,而到了今天我們終于看到強(qiáng)化學(xué)習(xí)技術(shù)落地在了EDA領(lǐng)域中。
除了強(qiáng)化學(xué)習(xí)之外,另一個(gè)關(guān)鍵的人工智能技術(shù)是大語(yǔ)言模型,它對(duì)于EDA行業(yè)的主要幫助在于能夠幫助工程師能加快代碼編寫的速度并降低出錯(cuò)幾率。以ChatGPT為代表的大語(yǔ)言模型(Large Language Model,LLM)通過從海量的文本中學(xué)習(xí)規(guī)律,從而可以理解用戶以自然語(yǔ)言表達(dá)的需求,并且生成用戶可以理解的自然語(yǔ)言文本。這里的“自然語(yǔ)言”不僅包括了我們平時(shí)說的語(yǔ)言,還包括了我們編寫的編程語(yǔ)言,包括在電路設(shè)計(jì)中常用的Verilog等。目前,基于LLM的代碼編寫輔助工具中最成功的是Github的copilot,它可以幫助用戶自動(dòng)完成代碼(例如用戶在輸入一行代碼的前幾個(gè)字符后,copilot就能預(yù)估用戶想要編寫的是什么樣的代碼并且提示用戶自動(dòng)完成)以及自動(dòng)尋找代碼中的bug。我們認(rèn)為,通過將大語(yǔ)言模型在已有的RTL代碼上進(jìn)行微調(diào),未來(lái)非常有希望能出現(xiàn)一個(gè)幫助芯片設(shè)計(jì)工程師快速完成代碼編寫的工具,從而大大提升工程師的效率。
人工智能會(huì)如何影響工程師的工作?
人工智能驅(qū)動(dòng)的EDA毫無(wú)疑問將會(huì)進(jìn)一步推動(dòng)半導(dǎo)體行業(yè)發(fā)展,然而芯片工程師會(huì)不會(huì)被人工智能搶了飯碗呢?我們認(rèn)為,總體來(lái)說就如同之前EDA出現(xiàn)并沒有搶了當(dāng)年的芯片工程師飯碗一樣,下一代人工智能賦能的EDA也主要是一種提高效率的工具,并不會(huì)取代人類工程師。
首先,我們從前端設(shè)計(jì)領(lǐng)域說起。對(duì)于芯片來(lái)說,人工智能EDA主要能幫助的是使用大語(yǔ)言模型來(lái)提升數(shù)字邏輯設(shè)計(jì)的代碼編寫效率和質(zhì)量,因此并不存在取代的關(guān)系,而是提供了一個(gè)更加順手的工具。對(duì)于數(shù)字設(shè)計(jì)工程師來(lái)說,其最本質(zhì)的工作是把完成電路設(shè)計(jì),例如將一個(gè)大的系統(tǒng)拆分為多個(gè)較小的功能模塊,完成每個(gè)模塊的功能和接口定義,并且使用代碼實(shí)現(xiàn)這些模塊。目前來(lái)看,人工智能大語(yǔ)言模型主要還是幫助完成代碼,而并非直接寫代碼;而且即使在未來(lái)人工智能能自動(dòng)寫代碼了,它并不能取代數(shù)字設(shè)計(jì)工程師的本質(zhì)工作,即完成數(shù)字模塊的定義和設(shè)計(jì)。
在后端設(shè)計(jì)領(lǐng)域,基于強(qiáng)化學(xué)習(xí)的人工智能已經(jīng)能大幅提升布局布線的效率和質(zhì)量。目前,大多數(shù)芯片的設(shè)計(jì)流程是首先由工程師人工完成高層面的布局(floorplan),在預(yù)估性能能達(dá)到目標(biāo)之后,再由EDA工具進(jìn)行下一步的具體布局和布線,并且由工程師進(jìn)行驗(yàn)證和微調(diào)。我們認(rèn)為,隨著人工智能實(shí)現(xiàn)的布局布線效率和質(zhì)量進(jìn)一步提升,floorplan的工作有可能越來(lái)越多地交給EDA工具來(lái)做,工程師的職責(zé)越來(lái)越多的變?yōu)榻oEDA工具提供合理的constraint和優(yōu)化目標(biāo),并且驗(yàn)證EDA工具生成的設(shè)計(jì)的質(zhì)量。從這個(gè)角度來(lái)說,人工智能確實(shí)有可能會(huì)做更多目前工程師手工做的工作,但是這并不代表人工智能會(huì)取代這些工程師,而是可以讓這些工程師有了另外的職責(zé)(即給工具提供合理的輸入并驗(yàn)證輸出),并且提升整體的效率。對(duì)于其他的布局布線流程來(lái)說,人工智能更多的是提供一個(gè)質(zhì)量更高的工具,并不會(huì)取代工程師。
事實(shí)上,人工智能有可能會(huì)給芯片行業(yè)提供更多的崗位。我們知道,人工智能模型訓(xùn)練需要大量的數(shù)據(jù),而且人工智能模型對(duì)于不同的設(shè)計(jì)可能會(huì)需要不同的微調(diào)訓(xùn)練。因此,芯片設(shè)計(jì)行業(yè)可能會(huì)需要更多能有針對(duì)性優(yōu)化人工智能的工程師。
人工智能EDA帶來(lái)的行業(yè)動(dòng)態(tài)
最后,我們分析一下人工智能未來(lái)會(huì)如何進(jìn)一步賦能EDA。
首先,芯片設(shè)計(jì)的規(guī)模越來(lái)越大,從另一個(gè)角度來(lái)看也就是設(shè)計(jì)的搜索空間也在越來(lái)越大。此外,隨著摩爾定律越來(lái)越接近物理極限,整體行業(yè)對(duì)于芯片設(shè)計(jì)PPA的要求也越來(lái)越高。因此,使用人工智能來(lái)驅(qū)動(dòng)芯片設(shè)計(jì)性能的進(jìn)一步提升會(huì)得到越來(lái)越多的應(yīng)用,而且我們認(rèn)為在設(shè)計(jì)復(fù)雜度和自由度越高的地方,人工智能就能起到更大的作用。這些領(lǐng)域包括高級(jí)封裝,尤其是3D封裝;以及移動(dòng)芯片、高性能計(jì)算芯片等對(duì)于芯片設(shè)計(jì)PPA有非常高要求的領(lǐng)域——這也是為什么我們看到谷歌和Nvidia這些主打高性能計(jì)算芯片的公司都在人工智能EDA領(lǐng)域有很大的投入,未來(lái)我們預(yù)計(jì)會(huì)有更多的這類公司使用人工智能EDA來(lái)改善PPA。
此外,另一個(gè)值得關(guān)注的要點(diǎn)是人工智能可能會(huì)給行業(yè)帶來(lái)新的變化,就是人工智能需要大量的數(shù)據(jù)去訓(xùn)練,而目前來(lái)看芯片設(shè)計(jì)的數(shù)據(jù)都是每個(gè)公司的知識(shí)產(chǎn)權(quán),如何來(lái)確保訓(xùn)練出最好的模型同時(shí)又確保知識(shí)產(chǎn)權(quán)不會(huì)被侵犯也是一個(gè)需要行業(yè)處理的問題。我們認(rèn)為,擁有大量設(shè)計(jì)積累的大公司會(huì)是第一批使用人工智能EDA的客戶,因?yàn)樗麄兓谧约旱脑O(shè)計(jì)數(shù)據(jù)已經(jīng)能訓(xùn)練出性能不錯(cuò)的模型。至于設(shè)計(jì)積累較少的中小型公司或者成力時(shí)間較短的初創(chuàng)公司如何來(lái)使用人工智能EDA將會(huì)是一個(gè)值得整個(gè)行業(yè)思考的問題,例如是否會(huì)出現(xiàn)一些數(shù)據(jù)共享的組織,用來(lái)分享一些并不怎么敏感的設(shè)計(jì)來(lái)一起訓(xùn)練模型并共同使用,還是會(huì)有一些基于加密計(jì)算訓(xùn)練的方法可以在盡可能保護(hù)設(shè)計(jì)知識(shí)產(chǎn)權(quán)的同時(shí)讓模型能使用盡可能多的數(shù)據(jù)來(lái)完成訓(xùn)練,都是有可能的方向。