在本專案中,我們提出了一種基於學習的晶片佈局方法,這是晶片設計過程中最複雜,最耗時的階段之一。與以前的方法不同,我們的方法具有從過去的經驗中學習並隨著時間的推移而不斷改進的能力。特別是,當我們訓練更多的晶片模組時,我們的方法變得更擅長為先前未見的晶片快速生成最佳化的佈局。為了獲得這些結果,我們將佈局作為強化學習(RL)問題提出,並訓練代理將晶片網表的節點放置到晶片藍圖上。為了使我們的強化學習策略能夠泛化到未見的晶片模組,我們在預測佈局質量的監督任務中放置了表徵學習。透過設計一種可以準確預測各種網表及其佈局上的獎勵的神經體系結構,我們能夠對輸入網表生成豐富的特徵嵌入。我們將此架構用作我們的策略和價值網路的編碼器,以實現遷移學習。我們的目標是使PPA(功率,效能和麵積)最小化,在不到6小時的時間內,我們的方法可以生成具有媲美或超過人工的現代加速器網表上的佈局,而在同樣條件下,現有人類專家可能需要幾個星期來完成同樣的工作。隨著計算機系統和硬體的顯著進步,人工智慧的快速進步得以實現. 但是隨著摩爾定律和Dennard縮放技術的終結,世界正朝著專用硬體發展,以滿足AI對計算的需求呈指數增長。然而,當今的晶片需要花費數年的時間進行設計,這使我們不得不為從現在起2-5年的機器學習(ML)模型進行最佳化而進行的推測性任務。大量縮短晶片設計週期將使硬體更好地適應AI迅速發展的領域。我們認為正是AI本身將提供縮短晶片設計週期的方法,從而在硬體和AI之間建立起共生關係,而兩者之間又相互促進。在本文中,我們提出了一種基於學習的晶片佈局方法,這是晶片設計過程中最複雜,最耗時的階段之一。目的是將宏(例如SRAM)和標準單元(邏輯門,例如NAND,NOR和XOR)的網表圖佈局在晶片畫布上,以最佳化功耗,效能和麵積(PPA),同時遵守對佈局密度和佈線擁塞的限制。儘管對此問題進行了數十年的研究,人類專家仍然有必要使用現有的放置工具進行數週的迭代,以產生滿足多方面設計標準的解決方案。問題的複雜性來自網表圖(graph)的大小(數百萬到數十億個節點),放置這些表圖的網格的粒度以及計算真實目標指標所需的高昂成本(以使用行業標準的電子設計自動化(EDA)工具評估單個設計, 也需要從幾小時到幾天)。即使在將問題分解為更易於管理的子問題(例如,將節點分組為幾千個群集並減少網格的粒度)之後,狀態空間仍比最近成功的基於學習的方法所能處理的問題大幾個數量級。為了解決該挑戰,我們將晶片佈局作為強化學習(RL)問題,在此我們訓練代理(例如RL策略網路)以最佳化佈局。在每次訓練迭代中,晶片塊的所有宏都由RL代理順序放置,然後透過力導向方法(force-directed method)放置標準單元(Hanan & Kurtzberg, 1972; Tao Luo & Pan, 2008; Bo Hu & Marek-Sadowska, 2005; Obermeier et al., 2005; Spindler et al., 2008; Viswanathan et al., 2007b;a). 訓練由針對每個代理的晶片佈局的快速但近似的獎勵訊號指導。據我們所知,此次提出的方法是具有首個具有泛化能力的佈局方法,這意味著它可以利用從以前的網表佈局中學到的知識為新的從未見的網表生成佈局。我們證明,尤其隨著我們的代理接觸到更大數量和更多種類的晶片,它在為新的晶片塊生成最佳化的佈局方面變得既快又好,這使我們更接近能為晶片設計者提供具有豐富的晶片佈局經驗幫助的人工智慧的未來。我們相信,我們的方法能夠從以往經驗中學習並隨著時間的推移而改進,從而為晶片設計人員開闢了新的可能性。我們證明,與最新的基準相比,我們可以在真正的AI加速器晶片(Google TPU)上實現出色的PPA。此外,我們的方法可以在6小時內生成優於或媲美人類專家晶片設計人員的佈局. 而現代晶片中數十個區塊的每個區塊的替代方案都需要人類專家花費數週的時間來獲得新能最高的替代方案 。儘管我們主要在AI加速器晶片上進行評估,但我們提出的方法可廣泛應用於任何晶片佈局最佳化。全域性佈局是晶片設計中的長期挑戰,需要對不斷增長的複雜性進行多目標最佳化。自1960年代以來,已經提出了許多方法,迄今為止分為三大類:1)基於分割槽的方法,2)隨機/爬山方法,以及3)解析求解器(analytic solver)。從1960年代開始,工業和學術實驗室對全域性佈局問題採用了基於分割槽的方法,提出了(Breuer,1977; Kernighan,1985; Fiduccia&Mattheyses,1982),以及基於電阻網路的方法(Chung -Kuan Cheng和Kuh,1984;Ren-Song Tsay等人,1988)。這些方法的特點是分而治之。遞迴地劃分網表和晶片畫布,直到出現足夠小的子問題為止,此時,使用最佳求解器將子網表放置到子區域上。這樣的方法執行起來非常快,並且它們的層次結構性質允許它們擴充套件到任意大的網表。但是,透過隔離地最佳化每個子問題,基於分割槽的方法犧牲了全域性解決方案的質量,尤其是路由擁塞問題。此外,較差的早期分隔可能導致無法挽回的最終佈局。在1980年代,出現了分析方法,但很快被隨機/爬山演算法取代,特別是模擬退火(Simulated annealing)(Kirkpatrick等,1983; Sechen和Sangiovanni-Vincentelli,1986; Sarafzadeh等,2003)。模擬退火(SA)的名稱類似於冶金,其中先加熱金屬,然後逐漸冷卻以誘導或退火能量最佳的晶體表面。SA將隨機擾動應用於給定的位置(例如,宏的移位,交換或旋轉),然後測量其對目標功能的影響(例如,第3.3.1節中所述的半周線長)。如果微調是一種改善,則將其應用;如果不是,它仍然以某種可能性應用,稱為溫度。將溫度初始化為特定值,然後逐漸退火至較低值。儘管SA產生了高質量的解決方案,但它非常緩慢且難以並行化,因此無法擴充套件到1990年代及以後日益大型和複雜的電路。1990年代至2000年代的特徵是採用多層劃分(multi-level partitioning) 方法(Agnihotri等人,2005; Roy等人,2007),以及分析技術的復興,如力導向(force-directed)方法(Tao Luo&Pan,2008); Bo Hu&Marek-Sadowska,2005; Obermeier等,2005; Spindler等,2008; Viswanathan等,2007b; a)和非線性最佳化器(non-linear optimizers)(Kahng等,2005; Chen等。,2006)。二次方法(quadratic methods)的更新成功部分歸因於演算法的進步,也歸功於現代電路的大尺寸(10-1億個節點),這證明了將放置問題近似為放置面積為零的節點是合理的。但是,儘管二次方法的計算效率很高,但與非線性方法相比,它們的可靠性通常較低,並且產生的質量較低的解決方案.非線性最佳化使用平滑的數學函式來估算成本,例如線長的對數總和(William等,2001)和加權平均(Hsu等,2011)模型以及高斯(Chen)模型。等(2008)和Helmholtz密度模型。然後使用拉格朗日罰分或鬆弛將這些函式組合為單個目標函式。由於這些模型的較高複雜性,因此有必要採取分層的方法,放置簇而不是單個節點,這會降低佈局質量。過去十年見證了現代分析技術的興起,包括更高階的二次方法(Kim等,2010;2012b;Kim&Markov,2012;Brenner等,2008;Lin等,2013),最近,基於靜電的方法如ePlace(Lu等人,2015)和RePlAce(Cheng等人,2019)。ePlace(Lu等人,2015)將網表佈局建模為靜電系統,提出了密度損失的新公式,其中網表的每個節點(宏或標準單元)類似於帶正電的粒子,其面積對應於它的電費。在這種情況下,節點之間相互排斥的力與它們的電荷(面積)成正比,密度函式和梯度對應於系統的勢能。已經提出了這種基於靜電的方法的變體,以解決標準單元佈局(Lu等,2015)和混合尺寸佈局(Lu等,2015;Lu等,2016)的問題。RePlAce(Cheng等人,2019)是一種最新的混合尺寸佈局技術,透過引入區域性密度函式進一步最佳化ePlace的密度函式,該函式為每個個體量身定製懲罰因子虛擬箱的大小。第5節將最新的RePlAce演算法的效能與我們的方法進行了比較。最近的工作(Huang et al.,2019)建議訓練模型以預測給定宏佈局的違反設計規則檢查(Design Rule Check)的次數。DRC是確保所放置和路由的網表符合流片輸出要求的規則。為了生成具有更少DRC的宏佈局(Huang等人,2019),使用此訓練模型的預測作為模擬退火中的評估函式。儘管這項工作代表了一個有趣的方向,但它報告的網表結果不超過6個宏,遠遠少於任何現代模組,而且該方法在佈局和路線步驟中未進行任何最佳化。最佳化後的佈局和佈線可能會發生巨大變化,並且實際DRC也將發生相應變化,從而使模型預測無效。另外,儘管遵守DRC標準是必要條件,但是宏佈局的主要目的是針對線長,時序(例如最壞的負鬆弛(WNS)和總的負鬆弛(TNS)),功率和麵積進行最佳化。,而此工作甚至都沒有考慮這些指標。為了解決這個經典問題,我們提出了一種新的方法類別:基於端到端學習的方法。這種方法與解析求解器(尤其是非線性求解器)最密切相關,因為所有這些方法都透過梯度更新來最佳化目標函式。但是,我們的方法與以往的方法不同之處在於它可以從過去的經驗中學習,以在新晶片上生成更高質量的佈局。與現有的從零開始最佳化每個新晶片的佈局的方法不同,我們的工作利用從佈局先前晶片獲得的知識來隨著時間的推移變得更好。此外,我們的方法能夠直接最佳化目標指標,例如線長,密度和擁塞,而不必像其他方法一樣定義那些函式的凸近似值(convex approximations)(Cheng等,2019; Lu等。,2015)。我們的公式不僅使新的成本函式易於獲得變得容易,而且還使我們能夠根據給定晶片塊的需求(例如,時序關鍵或功率受限)的需要來權衡它們的相對重要性。域適應(Domain adaptation)是培訓策略的問題,該策略可以橫跨多種經驗學習並遷移所獲得的知識,從而在新的未見例項上表現更好。在晶片佈局的情況下,域適應包括在一組晶片網表中訓練策略,並將該策略應用於新的未見的網表。最近,用於組合最佳化的域適應已成為一種趨勢(Zhou等,2019; Paliwal等,2019; Addanki等,2019)。儘管先前工作的重點是使用從最佳化問題的先前示例中學到的領域知識來加快對新問題的策略培訓,但我們提出了一種方法,該方法首次使得利用過去的經驗來生成更高質量的結果成為可能。與從零訓練策略相比,我們新穎的域適應不僅可以產生更好的結果,而且還可以將訓練時間減少8倍。在本專案中,我們針對晶片佈局最佳化問題,目標是將網表的節點(描述晶片的圖形)對映到晶片畫布(有界的2D空間)上,從而獲得最終最佳化的功耗,效能和 面積(PPA)。在本節中,我們概述如何將問題表述為強化學習(RL)問題,然後詳細描述獎勵函式,動作和狀態表達,策略架構以及策略更新.我們採用深度強化學習方法來解決佈局問題,其中一個RL代理(策略網路)順序放置宏;一旦放置了所有宏,就使用力導向方法來生成標準單元的粗略放置,如圖1所示。RL問題可以表述為馬爾可夫決策過程(MDP),包括四個關鍵要素:狀態:世界上可能的狀態集(例如,在我們的情況下,是網表在晶片畫布上的每個可能的部分佈局)。
動作:代理可以採取的一組動作(例如,給定要放置的當前宏,可用的動作是離散畫布空間(網格單元)中所有位置的集合) 可以放置宏,而不會違反對密度或阻塞的任何嚴格限制)。
狀態轉換:給定一個狀態和一個動作,這是下一個狀態的機率分佈。
獎勵:在某種狀態下采取行動的獎勵。(例如,在我們的案例中,除最後一個動作(獎勵為代理線長和擁塞的負加權總和)之外,所有其他動作的獎勵均為0,具體取決於第3.3節中所述的密度約束
在我們的設定中,在初始狀態下,我們有一個空的晶片畫布和一個未佈局的網表。最終狀態ST對應於完全放置的網表。在每一步中,放置一個宏。因此,T等於網表中宏的總數。在每個時間步驟t,代理開始處於狀態(st),採取行動(at),到達新狀態(st+i),並從環境中獲得獎勵(rt)(0表示t<T和t的負代理費用t=T)。我們將st定義為表示時間t處狀態的特徵的串聯,包括網表的圖形嵌入(包括放置和未放置的節點),要放置的當前宏的節點嵌入,關於網表的後設資料(部分 4),以及表示將當前節點放置到網格的每個單元上的可行性的掩碼。動作空間是第t個宏的所有有效位置,這是下文中描述的密度掩碼的函式。在處執行的操作是RL策略網路選擇的第t個宏的單元格位置。st+i是下一個狀態,它包括包含有關新放置的宏的資訊的更新表示,更新的密度掩碼以及要放置的下一個節點的嵌入。在我們的公式中,除了最終的rT以外,每個時間步長rt均為0,這是文中所述的近似導線長度和擁塞的加權總和。透過重複的情節(狀態,動作和獎勵的順序),策略網路將學習採取可最大化累積獎勵的動作。給定每個位置的累積獎勵,我們使用近端策略最佳化(PPO)(Schulman et al。,2017)更新政策網路的引數。在本節中,我們定義獎勵r,狀態s,操作a,引數化為0的策略網路架構 πθ(a|s),最後定義用於訓練這些引數的最佳化方法.我們在這項工作中的目標是在限制路由擁塞和密度的前提下,最大程度地減少功耗,效能和麵積。我們真正的回報是商業EDA工具的輸出,包括線長,佈線擁塞,密度,功率,時序和麵積。但是,強化學習策略需要100,000個樣本才能有效學習,因此至關重要的是要快速評估獎勵功能,理想情況下可以在幾毫秒內執行。為了更有效,這些近似的獎勵功能還必須與真實獎勵正相關。因此,成本的一個組成部分就是線長,因為它不僅評估更便宜,而且與功率和效能(時序)相關。我們分別針對線長和擁塞定義了近似成本函式。為了將多個目標組合為一個獎勵函式,我們採用代理線長和擁塞的加權總和,其中權重可用於探索兩個指標之間的權衡。儘管我們將擁塞視為軟約束(即,較低的擁塞改善了獎勵功能),但我們將密度視為硬約束,掩蓋了密度超過目標密度的動作(網格單元以將節點放置到其上),如本節中進一步所述。為了使每次迭代的執行時間保持較小,我們對獎勵函式的計算應用了幾種近似方法:我們使用hMETIS(Karypis&Kumar,1998),一種基於標準化最小切割目標的分割技術,將數百萬個標準細胞分組為幾千個簇。放置所有宏後,我們將使用力控制方法放置標準單元簇。這樣做使我們能夠實現近似但快速的標準單元佈局,從而促進策略網路最佳化。
我們將網格離散化為數千個網格單元,然後將宏和標準單元簇的中心放到網格單元的中心。
在計算線長時,我們做一個簡化的假設,即所有離開標準單元簇的線都起源於簇的中心。
為了計算路由選擇的擁塞成本,我們僅考慮最擁擠的前10%網格單元的平均擁塞。
根據文獻(Shahookar和Mazumder,1991),我們採用半周線長(HPWL),這是最常用的線長近似值。HPWL定義為網表中所有節點的邊界框的半周長。下式顯示了給定網(邊)i的HPWL:這裡的xb和yb表示網路i端點的x和y座標。然後,透過取所有半周邊界框的歸一化總和來計算總HPWL成本,如方程式2所示。隨著節點數量的增加,Nnetust是網路的數量.直觀上,給定佈局的HPWL大約是其Steiner樹的長度(Gilbert&Pollak,1968),這是路由成本的下限.線長還具有與其他重要指標(例如功率和時序)關聯的優勢。儘管我們沒有直接針對這些其他指標進行最佳化,但我們在功耗和時序方面均保持了高效能(如表2所示。給定晶片畫布的尺寸,有很多選擇可以將2D畫布離散化為網格單元。該決定影響最佳化的難度和最終佈局的質量。我們將最大行數和列數限制為128。我們將選擇最佳行數和列數視為一個裝箱問題,並根據它們所浪費的空間量對行列的不同組合進行排序。在第5節中描述的實驗中,我們平均使用30行和列.為了選擇宏的放置順序,我們按大小降序對宏進行排序,並使用拓撲排序打破平局。透過首先放置較大的宏,我們減少了以後的宏沒有可行放置的可能性。拓撲排序可以幫助策略網路學習將連線的節點放置在彼此附近。另一種可能的方法是學習共同最佳化宏的順序及其放置,從而選擇放置哪個節點來放置活動空間的下一部分。但是,這種擴大的行動空間將極大地增加問題的複雜性,並且我們發現這種啟發式方法在實踐中有效.為了放置標準單元簇,我們使用與經典的力導向方法相似的方法(Shahookar&Mazumder,1991)。我們將網表表示為一個彈簧系統,該彈簧根據權重x距離公式對每個節點施加力,從而使緊密連線的節點彼此吸引。我們還引入了重疊節點之間的排斥力以降低佈局密度。施加所有力之後,我們沿力向量的方向移動節點。為了減少振盪,我們為每次移動設定了最大距離.我們還根據慣例採用了基於驅動程式位置和網路負載的簡單確定性路由來計算代理擁塞(Kim等,2012a)。路由網路為其透過的每個網格單元佔用一定數量的可用路由資源(由底層的半導體制造技術確定)。我們分別跟蹤每個網格單元中的垂直和水平分配。為了平滑擁塞估計,我們在垂直和水平方向上都執行5x1卷積濾波器。路由完所有網路後,我們取最高10%的擁塞值的平均值,從MAPLE中的ABA10度量中汲取靈感(Kim等人,2012a)。公式4中的擁塞成本是此過程計算出的最高10%的平均擁塞.我們將密度視為嚴格的約束條件,不允許策略網路將宏放置在會導致密度超過目標(最大密度)或導致不可行的宏重疊的位置。這種方法有兩個好處:可行的標準單元簇放置應滿足以下條件:每個網格單元中放置的物品的密度不應超過給定的目標密度閾值(最大密度)。在我們的實驗中,我們將該閾值設定為0.6。為了滿足此約束,在每個RL步驟中,我們將計算當前密度掩碼,即一個表示網格單元的m×n二進位制矩陣,我們可以在該網格單元上放置當前節點的中心而不會違反密度閾值標準。在從策略網路輸出中選擇動作之前,我們首先獲取掩碼與策略網路輸出的點積,然後在可行位置上取argmax。這種方法可防止策略網路生成具有重疊宏或密集標準單元格區域的佈局.我們還可以透過將受阻區域的密度功能設定為1來啟用可感知阻塞的位置(例如時鐘帶).為了準備用於商業EDA工具評估的佈局,我們執行一個貪心合法化步驟,以便在遵守最小間距限制的同時將宏捕捉到最近的合法位置。然後,我們修復宏佈局,並使用EDA工具放置標準單元並評估佈局.為了最佳化策略,我們將畫布轉換為m x n的網格。因此,對於任何給定狀態,動作空間(或策略網路的輸出)是當前宏在m x n網格上的佈局機率分佈。動作是該機率分佈的argmax.我們的狀態包含有關網表圖(鄰接矩陣),其節點特徵(寬度,高度,型別等),邊緣特徵(連線數),要放置的當前節點(宏)以及網路後設資料的資訊。網表和底層技術(例如,路由分配,線路總數,宏和標準單元簇等)。在下一節中,我們討論如何處理這些功能以有效學習的晶片佈局問題.我們的目標是開發RL代理,這些代理在透過獲得更多晶片佈局經驗可以產生更高質量的結果。我們可以將佈局目標函式正式定義如下:在此,J(θ,G)是成本函式。代理由θ引數化。大小為K的網表圖的資料集由G表示,資料集中的每個單獨的網表都寫為g。Rp,g是從應用於網路列表g的策略網路得出的佈局p的情節獎勵。方程式4顯示了我們用於策略網路最佳化的獎勵,它是受密度約束的電線長度和擁塞的負加權平均。在我們的實驗中,將擁塞權重設定為0.01,將最大密度閾值設定為0.6。我們提出了一種新穎的神經體系結構,使我們能夠訓練用於晶片佈局的域自適應策略。訓練這樣的策略網路是一項具有挑戰性的任務,因為包含所有可能晶片的所有可能佈局的狀態空間是巨大的。此外,不同的網表和網格大小可以具有非常不同的屬性,包括不同數量的節點,宏大小,圖形拓撲以及畫布寬度和高度。為了應對這一挑戰,我們首先專注於學習狀態空間的豐富表示形式。我們的直覺是,能夠在晶片之間傳輸佈局最佳化的策略網路體系結構也應該能夠在推理時將與新的未見晶片相關聯的狀態編碼為有意義的訊號。因此,我們提出了一種訓練神經網路架構的方法,該結構能夠預測新網表上的獎勵,其最終目標是使用這種架構作為我們策略網路的編碼器層。要訓練這種監督模型,我們需要一個大型的晶片佈局及其相應獎勵標籤的資料集。因此,我們建立了一個10,000個晶片位置的資料集,其中輸入是與給定位置相關的狀態,而標籤是該位置(線長和擁塞)的獎勵。我們透過首先選擇5個不同的加速器網表,然後為每個網表生成2,000個佈局來構建此資料集。為了為每個網表建立不同的佈局位置,我們在各種擁塞權重(從0到1)和隨機種子下訓練了一個香草策略(vanilla policy)網路,並在策略訓練過程中收集了每個佈局位置的快照。未經訓練的策略網路以隨機權重開始,並且生成的位置質量較低,但是隨著策略網路的訓練,生成的位置的質量提高了,這使我們能夠收集具有變化質量的位置的多樣化資料集.為了訓練可以準確預測線長和擁塞標籤並泛化到未見的資料的監督模型,我們開發了一種新穎的圖神經網路架構,該架構嵌入了有關網表的資訊。圖神經網路的作用是將有關大圖內節點型別和連通性的資訊提煉成可用於下游任務的低維向量表示。此類下游任務的一些示例是節點分類(Nazi等人,2019),裝置放置(Zhou等人,2019),連結預測(Zhang&Chen,2018)和設計規則衝突(DRC) 預測(Zhiyao Xie Duke Univeristy,2018).我們透過串聯節點特徵來建立每個節點的向量表示。節點特徵包括節點型別,寬度,高度以及x和y座標。我們還將節點鄰接資訊作為輸入傳遞給我們的演算法。然後,我們重複執行以下更新:1)每個邊緣透過將完全連線的網路應用於中間節點嵌入的聚合表示來更新其表示,以及2)每個節點透過獲取相鄰邊緣嵌入的均值來更新其表示。節點和邊緣更新如公式5所示。節點嵌入用1<=i<=N表示,其中N是宏和標準單元簇的總數。連線節點和Vj的矢量化邊緣表示為邊緣(e)和節點(v)的嵌入都是隨機初始化的,是32維的,fco是32x32,fcr是65x32前饋網路,並且權重為1x1對應於邊緣。N(vi)顯示化的鄰居。演算法的輸出是節點和邊緣嵌入.我們的受監督模型包括:(1)上述圖神經網路嵌入了有關節點型別和網表鄰接矩陣的資訊。(2)嵌入後設資料的完全連線的前饋網路,包括有關基礎半導體技術(水平和垂直路由容量),網(邊),宏和標準單元簇的總數,畫布大小和行數的資訊 和網格中的列。(3)一個完全連線的前饋網路(預測層),其輸入是網表圖和後設資料嵌入的串聯,其輸出是獎勵預測。透過在邊緣嵌入上應用化簡均值函式來建立網表圖嵌入。透過迴歸訓練監督模型以最小化線長和擁塞的均方根損失的加權和擁塞。這項有監督的任務使我們能夠找到必要的功能和架構,以概括跨網表的獎勵預測。為了將此架構整合到我們的策略網路中,我們刪除了預測層,然後將其用作策略網路的編碼器元件,如圖2所示。為了處理與不同的行和列選擇相對應的不同網格大小,我們將網格大小設定為128x128,並對小於128行和列的網格大小遮蓋未使用的L形部分。為了在推理時佈局一個新的測試網表,我們載入了策略網路的預先訓練的權重,並將其應用於新的網表。我們將沒有經過微調的經過預先訓練的策略網路生成的佈局位置稱為零擊佈局。這樣的佈局可以在不到一秒鐘的時間內生成,因為它只需要預先訓練的策略網路的單個推理步驟即可。我們可以透過最佳化策略網路來進一步最佳化佈局質量。這樣做使我們可以靈活地使用預先訓練的權重(已經學會了輸入狀態的豐富表達)或進一步微調這些權重以針對特定晶片網表的屬性進行最佳化。圖2描繪了策略網路(在方程式3中由n表示)和我們為晶片佈局開發的價值網路架構的概述。這些網路的輸入是網表圖(圖形鄰接矩陣和節點特徵),要佈局的當前節點的id以及網表和半導體技術的後設資料。如先前所述,網表圖透過我們提出的圖神經網路架構。該圖神經網路生成(1)部分佈局的圖和(2)當前節點的嵌入。我們使用一個簡單的前饋網路來嵌入(3)後設資料。然後將這三個嵌入向量連線起來以形成狀態嵌入,該狀態嵌入被傳遞到前饋神經網路。然後將前饋網路的輸出饋送到策略網路(由5個反摺積1和批標準層(Batch Normalization layers)組成),以生成動作上的機率分佈,並傳遞到價值網路(由前饋網路組成)以進行預測輸入狀態的值。在方程式3中,目標是訓練一個策略網路n,該策略網路n在策略網路的位置分佈上最大化獎勵(Rp,g)的期望值(E)。為了最佳化策略網路的引數,我們使用具有限制目標的近端策略最佳化(PPO)(Schulman等人,2017),如下所示:
其中Et代表時間步長t的期望值,rt是新策略和舊策略的比率,At是時間步長t的估計優勢.在本節中,我們評估我們的方法並回答以下問題:我們的方法是否支援域遷移和從經驗中學習?使用預先訓練的政策對結果質量有何影響?生成的佈局的質量與最新的基線相比如何?我們還將檢查生成的佈局的外觀,並提供一些有關我們的策略網路為何做出這些決策的解讀.圖3將使用預訓練策略生成的佈局質量與透過從零訓練策略網路生成的佈局質量進行了比較。零擊意味著我們將經過預訓練的策略網路應用於新的網表,而不會進行微調,從而在不到一秒鐘的時間內產生了佈局。我們還將顯示結果,其中我們將根據特定設計的細節對經過預訓練的策略網路進行2到12個小時的微調。從頭開始訓練的策略網路需要花費更長的時間才能收斂,即使在24小時之後,結果也要比經過精調的策略網路在12小時之後達到的結果更差,這表明所學的權重和對許多不同設計的瞭解正在幫助我們實現在較短的時間內為新設計提供高質量的佈局的目標.圖4顯示了針對Ariane RISC-V CPU從零開始訓練與從預訓練策略網路進行訓練的收斂圖。經過預訓練的策略網路在最佳化過程開始時以較低的放置成本開始。此外,經過預訓練的策略網路可以收斂到更低的部署成本,並且比從零開始訓練的策略網路快30個小時以上.圖3.域適應結果。對於每個塊,將顯示零擊結果以及訓練2和6個小時後的微調結果。我們還包括從頭開始訓練的策略的結果。從表中可以看出,預先訓練的策略網路始終優於從零開始訓練的策略網路,這表明從離線訓練資料中學習的有效性。隨著我們在更多晶片上進行訓練,我們能夠加快訓練過程並更快地產生更高質量的結果。圖4(左)顯示了更大的培訓對績效的影響。訓練資料集是從內部圖4.從零開始訓練策略網路與微調針對一個Ariane 塊的預訓練策略網路的收斂圖.訓練資料由各種模組組成,包括記憶體子系統,計算單元和控制邏輯。當我們將訓練集從2個塊增加到5個塊,最後增加到20個塊時,策略網路會在零擊(zero-shot)和經過微調相同小時數的情況下生成更好的佈局。圖5(右)顯示了在對策略網路進行(預)培訓時測試資料的佈局成本。我們可以看到,對於較小的訓練資料集,策略網路會快速過度擬合訓練資料,而測試資料的效能會下降,而對於最大的資料集,策略網路可能會花費較長的時間,而預先訓練的策略網路會花費較長的時間這個更大的資料集會在測試資料上產生更好的結果。該圖表明,當我們將策略網路暴露於更多種類的不同區塊時,雖然策略網路可能需要更長的時間進行預訓練,但策略網路變得不太容易過度擬合,並且對新的未見的塊更容易找到最佳化的佈局.圖6顯示了Ariane RISC-V CPU的佈局結果。左側顯示了零擊策略網路的展示位置,右側顯示了經過微調的策略網路的佈局。零擊佈局是推理時在未見的晶片上生成的。零擊策略網路將標準單元放在由宏包圍的畫布中心,這已經非常接近最佳安排。在微調之後,宏的佈局變得更規則,並且中心的標準單元區域變得不太擁擠.圖7顯示了視覺化的佈局:左側是手動佈局的結果,右側是我們方法的結果。白色區域顯示宏位置,綠色區域顯示標準單元格位置。我們的方法在標準單元周圍建立了圓環形狀的宏佈局,從而減少了匯流排長。圖5.我們在三個不同的訓練資料集上對策略網路進行了預訓練(小資料集是中等資料集的一個子集,而中等資料集是大資料集的一個子集)。然後,我們在相同的測試塊上微調此預訓練的策略網路,並報告不同訓練持續時間的成本(如圖左側所示)。隨著資料集大小的增加,生成的佈局的質量和在測試塊上收斂的時間都將提高。右圖顯示了在每個資料集上訓練的策略的評估曲線(右圖中的每個點顯示了由訓練中的策略生成的佈局的成本)圖6.佈局的視覺化。左側顯示了經過預訓練的策略的零擊位置,右側顯示了經過微調的策略的佈局。零擊策略放置是在推理時在未見的晶片上生成的。經過預先訓練的策略網路(無微調)將標準單元放在由宏包圍的畫布中心, 這已經非常接近最佳安排,並且符合物理設計專家的直覺。在本節中,我們將我們的方法與3種基線方法進行比較:模擬退火,RePl Ace和人類正常基線。對於我們的方法,我們在最大的資料集(20個TPU塊)上使用了預訓練的策略,然後在由塊1到5表示的5個目標看不見的塊上對其進行了微調。我們的資料集包括各種塊,包括記憶體子系統, 計算單元和控制邏輯。由於機密性,我們無法透露這些塊的詳細資訊,但是要給出規模的概念,每個塊最多包含數百個宏和數百萬個標準單元.與模擬退火的比較:模擬退火(SA)是一種功能強大但速度緩慢的最佳化方法。但是,像RL一樣,模擬退火能夠最佳化任意不可微的成本函式。為了顯示RL的相對樣本效率,我們進行了實驗,其中我們將其替換為基於模擬退火的最佳化器。在這些實驗中,我們使用與以前相同的輸入和成本函式,但是在每個情節中,模擬的退火最佳化器都會放置所有宏,然後執行FD步驟放置標準單元簇。根據SA更新規則,使用指數衰減退火進度表接受每個宏位置(Kirkpatrick等,1983)。SA花費18個小時才能收斂,而我們的方法花費不超過6個小時。為了使比較公平,我們進行了多次SA實驗,掃描了不同的超引數,包括最低和最高溫度,種子和最大SA情節,以便SA和RL在模擬中花費相同的CPU小時數並搜尋狀態相似。表1中報告了以最低成本得到的實驗結果。如表中所示,與我們的方法相比,即使花費額外的時間,SA仍難以生產出高質量的佈局,並且生產的佈局導致偏高的14.4%線長和24.1 %平均擁塞率.圖7.人類專家的佈局在左側,而我們的方法的結果在右側。白色區域代表宏,綠色區域代表標準單元。由於設計是專有的,因此圖片特意被模糊.表1.評估深度強化學習與模擬退火(SA)相比樣品效率的實驗。我們用SA替換了RL策略網路,併為每個塊執行了128個不同的SA實驗,掃描了不同的超引數,包括最低和最高溫度,種子和最大步長。報告執行成本最低的結果。結果顯示每個塊的代理線長和擁塞值。請注意,由於這些代理指標是相對的,因此比較僅對同一塊的不同佈局有效.與RePlAce(Cheng等,2019)和手動基準的比較:表2將我們的結果與最新方法RePlAce(Cheng等,2019)和手動基準進行了比較。手動基準由生產晶片設計團隊生成,並涉及佈局最佳化的許多迭代,並在數週的時間內得到了商用EDA工具的反饋指導.類似於RePlAce,我們有相同的最佳化目標,即最佳化晶片設計中的全域性佈局,但是我們使用不同的目標函式。因此,我們沒有比較來自不同成本函式的結果,而是將商業EDA工具的輸出視為基本事實。為了進行這種比較,我們修復了由我們的方法和RePlAce生成的宏佈局,並允許商用EDA工具使用該工具的預設設定來進一步最佳化標準單元佈局。然後,我們報告匯流排長,時序(最差(WNS)和總(TNS)負鬆弛),面積和功率指標。如表2所示,我們的方法在生成滿足設計要求的展示位置方面勝過RePLAce。給定底層半導體技術所施加的約束,如果WNS明顯高於100 ps或水平或垂直,則這些塊的佈局將無法在設計流程的後期階段滿足時序約束。擁堵超過1%,導致某些RePlAce佈局(1、2、3塊)無法使用。這些結果表明,我們的擁塞感知方法可有效地生成符合設計標準的高質量佈局.RePlAce在1至3.5小時內收斂,比我們的方法快,而我們的結果在3至6小時內達到。但是,我們方法的一些基本優點是:1)我們的方法可以輕鬆地針對各種不可微調的成本函式進行最佳化,而無需構建這些成本函式的封閉形式或可微分的等價形式。例如,雖然很容易將線長建模為凸函式,但對於佈線擁塞或時序卻並非如此。2)我們的方法有能力隨著策略暴露於更多的晶片而隨著時間的流逝而改進,並且3)我們的方法能夠遵守各種設計約束,例如不同形狀的阻塞。表2還顯示了人類專家晶片設計人員產生的結果。我們的方法和人類專家都一致地產生可行的佈局,這意味著它們符合時序和擁擠設計標準。我們在WNS,面積,功率和線長方面也優於或匹配手動放置。此外,我們的端到端基於學習的方法花費了不到6個小時,而手動基準測試涉及一個緩慢的迭代最佳化過程,需要專家在迴路中進行,並且可能需要花費數週的時間.表2.將我們的方法與最新技術(RePlAce(Cheng等人,2019))和使用行業標準電子設計自動化(EDA)工具的手動專家放置位置進行比較。對於此表中的所有指標,越低越好。對於違反時間限制(WNS明顯大於100 ps)或擁塞(水平或垂直擁塞大於1%)的佈局,我們將其指標顯示為灰色,以表明這些佈局不可行。進一步最佳化我們的方法的機會:還存在許多進一步改善我們方法質量的機會。例如,可以進一步最佳化標準單元劃分,行和列的選擇以及選擇放置宏的順序的過程。另外,我們還將受益於標準單元佈局的更最佳化方法。當前,由於其執行時間快,我們使用力導向方法佈局標準單元。但是,我們認為,用於Re-PlAce(Cheng等人,2019)和DREAMPlace(Lin等人,2019)的標準單元佈局的更先進技術可以產生更多準確的標準單元佈局用以指導策略網路培訓。這很有用,因為如果策略網路在其宏佈局如何影響標準單元格佈局和最終指標方面具有更清晰的訊號,它可以學習做出更最佳化的宏佈局決策.對更廣泛類別問題的影響:這項工作只是域適應最佳化策略的一個示例,可以擴充套件到晶片設計過程的其他階段,例如架構和邏輯設計,綜合以及設計驗證 ,目的是訓練ML模型,使其在遇到更多問題例項時得到改善。基於學習的方法還可以促進在構成晶片設計過程的一系列任務中進一步進行設計空間探索和協同最佳化.在本專案中,我們針對晶片佈局的複雜而有影響的問題, 我們提出了一種基於RL的方法,該方法支援遷移學習。,這意味著RL代理會在大量晶片網表上獲得更多經驗,從而在晶片佈局方面變得更快,更好。我們證明了我們的方法優於最新的基準,並且可以產生媲美或優於使用現代現代加速器的人類專家產生的佈局。我們的方法是端到端的,並會在6小時內生成晶片佈局,而最強的基線需要人工干預,並且需要花費數週的時間.此專案是Google Research與Google晶片實施和基礎架構(CI2)團隊之間的合作。我們要感謝Cliff Young,Ed Chi,Chip Stratakos,Sudip Roy,Amir Yazdanbakhsh,Nathan Myung-Chul Kim,Sachin Agarwal,Bin Li,Martin Abadi,Amir Salek,Samy Bengio和David Patterson的幫助和支援。