最近,來(lái)自清華大學(xué)等單位的研究團(tuán)隊(duì)發(fā)表了使用基于強(qiáng)化學(xué)習(xí)人工智能做自動(dòng)化毫米波電路(論文中的例子是濾波器)的設(shè)計(jì)。根據(jù)論文結(jié)果,使用人工智能算法實(shí)現(xiàn)的濾波器設(shè)計(jì)能達(dá)到和真人工程師相近的指標(biāo),而有趣的是人工智能算法得到的濾波器的形狀則較為不規(guī)則(下圖中的a和d是真人工程師的設(shè)計(jì),b和e是人工智能算法的設(shè)計(jì))。
相關(guān)報(bào)道得到了電路設(shè)計(jì)領(lǐng)域的關(guān)注,不少朋友對(duì)于算法能自動(dòng)設(shè)計(jì)出指標(biāo)和真人設(shè)計(jì)接近的濾波器表示驚訝,并希望未來(lái)能有更多這樣基于人工智能的自動(dòng)化算法來(lái)加速電路設(shè)計(jì)。
在筆者看來(lái),這樣的強(qiáng)化學(xué)習(xí)人工智能算法用于濾波器設(shè)計(jì)確實(shí)是一種學(xué)術(shù)上的突破,而在未來(lái)我們可望看到更多這樣的突破。另一方面,事實(shí)上人工智能已經(jīng)在EDA領(lǐng)域得到了高度重視,甚至我們目前已經(jīng)在用的一些工具中已經(jīng)在算法上加入了人工智能的成分。但是,我們同時(shí)也認(rèn)為,人工智能離真正自動(dòng)設(shè)計(jì)中等規(guī)模以上的復(fù)雜電路還有很長(zhǎng)的路要走,未來(lái)人工智能在EDA領(lǐng)域主要還是以輔助工程師設(shè)計(jì),簡(jiǎn)化流程以及提高設(shè)計(jì)質(zhì)量為主。
人工智能的本質(zhì)
要理解人工智能對(duì)于EDA的影響,我們首先要理解這一波人工智能算法的本質(zhì)。這一波人工智能算法歸根到底是基于大數(shù)據(jù)挖掘的機(jī)器學(xué)習(xí)算法,能夠從海量數(shù)據(jù)中把握高維數(shù)據(jù)之間的統(tǒng)計(jì)規(guī)律,并根據(jù)該統(tǒng)計(jì)規(guī)律來(lái)實(shí)現(xiàn)更多的應(yīng)用。
實(shí)際上,人工智能最擅長(zhǎng)的其實(shí)是和高維數(shù)據(jù)相關(guān)的分析和優(yōu)化的任務(wù)。什么是“高維數(shù)據(jù)”?用簡(jiǎn)單一點(diǎn)的方式來(lái)解釋,可以大致理解為“受很多種因素影響的變量”。
舉例來(lái)說(shuō),如果我們把“用戶購(gòu)買某款網(wǎng)紅口紅的概率”作為一個(gè)變量,那么我們會(huì)發(fā)現(xiàn)該變量會(huì)與用戶的性別、年齡、學(xué)歷、收入、居住地、是否喜歡網(wǎng)購(gòu)等大量因素有關(guān),把所有這些相關(guān)因素組成一個(gè)向量,就是一個(gè)高維數(shù)據(jù)。人類天生很難定量處理這種高維數(shù)據(jù),所以往往要降維處理,例如根據(jù)數(shù)據(jù)總結(jié)出“滿足女性,年齡20-25,大學(xué)以上學(xué)歷,月收入5000以上,居住在二線以上城市,喜歡網(wǎng)購(gòu)這些條件的人最可能買這款網(wǎng)紅口紅”,但這遠(yuǎn)遠(yuǎn)做不到定量,因?yàn)樽兞亢陀绊懸蛩刂g的關(guān)系人類難以找到一個(gè)擬合的數(shù)量關(guān)系。
例如用戶A年齡為26(超出前述20-25范圍),但是對(duì)網(wǎng)購(gòu)有遠(yuǎn)超常人熱情的女性,雖然沒有落在前述規(guī)律的范圍里,但是甚至?xí)嚷湓谇笆鲆?guī)律范圍里的人有更大的可能去買該款口紅。但是如果用機(jī)器學(xué)習(xí)就能找出變量與各個(gè)影響因素之間的擬合數(shù)量關(guān)系,這樣對(duì)于用戶A的例子,雖然其年齡項(xiàng)的得分略低,但是其網(wǎng)購(gòu)熱情得分極高,因此其購(gòu)買口紅傾向的總分也會(huì)較高,系統(tǒng)就可以順利將其歸納為該口紅的潛在消費(fèi)者。
如果我們看前面人工智能設(shè)計(jì)濾波器的例子,也能看到類似的情況。濾波器的走線事實(shí)上是一個(gè)高維數(shù)據(jù),因?yàn)槊恳粋€(gè)像素點(diǎn)都存在自由度讓工程師去決定走線要不要覆蓋到這里。對(duì)于人類工程師來(lái)說(shuō),由于難以處理這么高的數(shù)據(jù)維度,所以設(shè)計(jì)的時(shí)候會(huì)采取降維的方法,即以畫直線為主,可調(diào)整的變量簡(jiǎn)化到了直線的粗細(xì)、直線之間的間距以及直線的數(shù)量等等。而人工智能則不受數(shù)據(jù)維度的限制,因此會(huì)探索出更自由的設(shè)計(jì)模式,相應(yīng)地其設(shè)計(jì)結(jié)果在人類看起來(lái)也會(huì)顯得更不規(guī)則——因?yàn)橐坏┌凑找?guī)則,就意味著數(shù)據(jù)維度的降低。
當(dāng)然,這一代的人工智能雖然具有處理高維數(shù)據(jù)的強(qiáng)大能力,與此同時(shí)也有很強(qiáng)的局限性,即缺乏抽象推理、因果歸因和歸納的能力,同時(shí)其生成的能力也偏弱。另外,由于人工智能是基于大數(shù)據(jù)的數(shù)據(jù)挖掘,因此在數(shù)據(jù)量不夠大的時(shí)候,就難以工作。因此,人工智能目前還沒發(fā)學(xué)習(xí)到一套抽象的、普適性較強(qiáng)的設(shè)計(jì)方法,也就限制了其自動(dòng)完成復(fù)雜設(shè)計(jì)的能力。
人工智能在電路設(shè)計(jì)中的應(yīng)用
根據(jù)之前的分析,我們可以發(fā)現(xiàn)人工智能對(duì)于電路設(shè)計(jì)最適合的應(yīng)用是對(duì)于高維數(shù)據(jù)空間的探索,包括擁有海量影響因素導(dǎo)致人類設(shè)計(jì)師難以把握的問(wèn)題,以及啟發(fā)式的優(yōu)化問(wèn)題。
機(jī)器學(xué)習(xí)和人工智能在EDA領(lǐng)域最普遍的應(yīng)用例子就是數(shù)字電路后端的布局布線。數(shù)字電路的布局布線屬于典型的啟發(fā)式(heuristic)探索問(wèn)題,即由于變量空間過(guò)大,難以找到全局最優(yōu)解,因此實(shí)際的方法都是從一個(gè)試探型的初始解開始,慢慢探索嘗試,最終收斂到一個(gè)較好的解上面。對(duì)于數(shù)字后端布局布線流程比較熟悉的朋友們一定會(huì)知道通常布線流程會(huì)包括trial route、global route、detailed route以及反復(fù)的incremental optimization,這也就是一個(gè)典型的通過(guò)啟發(fā)式算法找到較優(yōu)解的流程。
對(duì)于較大的設(shè)計(jì),布線算法的每一步都要跑非常久(數(shù)小時(shí)到數(shù)天),但是最后又不一定會(huì)真正收斂到較好的解,有時(shí)候甚至?xí)霈F(xiàn)跑optimization結(jié)果反而變差的現(xiàn)象,這其實(shí)也是傳統(tǒng)的啟發(fā)式算法的典型現(xiàn)象,因?yàn)閱l(fā)式算法的探索只是大概率會(huì)得到更好的解,但是不能保證每次探索都能找到更好的解。
那么機(jī)器學(xué)習(xí)和人工智能如何幫助布局布線呢?
事實(shí)上,這里的機(jī)器學(xué)習(xí)的幫助主要來(lái)自于從大數(shù)據(jù)中的學(xué)習(xí)能力。傳統(tǒng)的啟發(fā)式算法本質(zhì)上并未考慮算法應(yīng)用的具體語(yǔ)境,每次在探索的過(guò)程中理論上會(huì)以等概率去探索各種方向。雖然在長(zhǎng)達(dá)數(shù)十年的工程實(shí)踐中,人們會(huì)在布線的啟發(fā)式算法中加入各種優(yōu)化,但是人類工程師對(duì)于布線這個(gè)高維度的復(fù)雜問(wèn)題的把握程度畢竟有限。舉例來(lái)說(shuō),當(dāng)運(yùn)行布線的時(shí)候發(fā)現(xiàn)本地布線非常擁擠,而右邊若干距離的地方布線較為寬松,那么應(yīng)該把多少本地走線移動(dòng)到右邊?
如果移動(dòng)過(guò)少難以完全緩解布線擁擠問(wèn)題,而移動(dòng)過(guò)多無(wú)非就是把本地的擁擠移動(dòng)到了右邊,也并非最優(yōu)。這種變量維度過(guò)高的問(wèn)題對(duì)于人類是很難把握的,而機(jī)器學(xué)習(xí)則可以從大量布局布線的實(shí)際案例中去學(xué)習(xí)如何最優(yōu)化啟發(fā)式算法的探索過(guò)程,從而使布線過(guò)程優(yōu)化結(jié)果更好,同時(shí)也能減少探索次數(shù),也就是減低了算法運(yùn)行時(shí)間。Cadence在去年宣布已經(jīng)在布局布線引擎中加入了機(jī)器學(xué)習(xí)的元素,其結(jié)果是能夠?qū)⑦\(yùn)行結(jié)果的total negative slack改善15%,這可以說(shuō)是一個(gè)很不錯(cuò)的起步。
在布局布線領(lǐng)域,人工智能的另一個(gè)重要應(yīng)用就是能為流程加入預(yù)測(cè)能力,從而減少迭代次數(shù)。眾所周知,數(shù)字電路布局布線是一個(gè)反復(fù)迭代的過(guò)程,流程前后的環(huán)節(jié)會(huì)互相影響。布局的過(guò)程會(huì)影響布線的結(jié)果,而如果布線的結(jié)果太差又會(huì)導(dǎo)致工程師去再次優(yōu)化布局以獲得改善。這樣的反復(fù)迭代流程顯然會(huì)對(duì)設(shè)計(jì)時(shí)間帶來(lái)影響,那么能否在布局的時(shí)候就去預(yù)測(cè)其對(duì)于布線的影響,從而不要等到真的布線結(jié)果出來(lái)之后再去優(yōu)化布局呢?
之前也有不少嘗試,而使用機(jī)器學(xué)習(xí)通過(guò)學(xué)習(xí)大量的布局和布線擁擠程度之間的關(guān)系去做預(yù)測(cè)可以大大提升預(yù)測(cè)的精準(zhǔn)度,從而減少迭代次數(shù)。在ISSCC 2017,臺(tái)積電的研發(fā)副總裁Cliff Hou就在其演講中重點(diǎn)介紹了這種基于機(jī)器學(xué)習(xí)的后端設(shè)計(jì)方法,并認(rèn)為它將會(huì)為未來(lái)的集成電路研發(fā)帶來(lái)更多效率提升。
人工智能與電路設(shè)計(jì)師
在之前的分析中,我們可以看到目前人工智能的主要優(yōu)勢(shì)還是在于高維數(shù)據(jù)的處理和定量統(tǒng)計(jì)分析能力。這一波的人工智能在抽象推理方面仍然較弱,因此難以全面勝任復(fù)雜的設(shè)計(jì)任務(wù)。我們?nèi)祟愒谔幚韽?fù)雜設(shè)計(jì)的任務(wù)時(shí),普遍的方法是將其降維處理,分解成多個(gè)較簡(jiǎn)單的子任務(wù)并分而治之,當(dāng)子任務(wù)全部都完成時(shí)復(fù)雜的設(shè)計(jì)任務(wù)自然就完成了。而人工智能目前尚缺乏這種自適應(yīng)將復(fù)雜任務(wù)分而治之的分解能力。
如果說(shuō)這種從復(fù)雜的客觀中抽象出簡(jiǎn)單的規(guī)律的能力稱之為“降維”,而從復(fù)雜世界中把握高維數(shù)據(jù)之間的復(fù)雜關(guān)系的能力就可以說(shuō)是“升維”了。人類的降維能力較強(qiáng),而人工智能的升維能力較強(qiáng),因此人類與人工智能最好的合作方法就是人類負(fù)責(zé)降維,抽象出設(shè)計(jì)框架,并將復(fù)雜的設(shè)計(jì)分解成較簡(jiǎn)單的子任務(wù),而人工智能則在每個(gè)子任務(wù)中充分探索高維設(shè)計(jì)空間,幫助完成最優(yōu)化設(shè)計(jì)。
從這種意義上來(lái)說(shuō),人工智能在短期內(nèi)并不會(huì)替代真人工程師,而是會(huì)在設(shè)計(jì)流程中幫助提升效率,減少算法和設(shè)計(jì)流程層面上不必要的迭代,而這一切對(duì)于真人設(shè)計(jì)師來(lái)說(shuō)都是好事。因此,我們認(rèn)為,人工智能將會(huì)是電路工程師的好朋友。