神经网络芯片设计
神經網絡芯片設計
Chip Placement with Deep Reinforcement Learning
論文地址:https://arxiv.org/pdf/2004.10746.pdf
摘要
在這項工作中,提出了一種基于學習的芯片布局方法,這是芯片設計過程中最復雜和最耗時的階段之一。與以前的方法不同,方法能夠從過去的經驗中學習并隨著時間的推移而改進。特別是,當在更多的芯片塊上訓練時,方法在為先前未看到的芯片塊快速生成優化位置方面變得更好。為了獲得這些結果,將布局問題作為一個強化學習(RL)問題,并訓練一個代理將芯片網表的節點放置到芯片畫布上。為了使RL策略能夠推廣到看不見的塊,在預測布局質量的有監督任務中引入了表示學習。通過設計一種能夠準確預測各種網表及其位置的報酬的神經結構,能夠生成輸入網表的豐富特征嵌入。然后,使用此架構作為策略和價值網絡的編碼器,以實現轉移學習。目標是最小化PPA(功率、性能和面積),并且表明,在不到6小時的時間內,方法可以生成超人的或在現代加速器網絡列表上具有可比性的位置,而現有的基線需要人類專家在環圈中工作,需要幾個星期。
一.基本原理
計算機系統和硬件的顯著進步推動了人工智能的快速發展,但隨著摩爾定律的終結和Dennard的擴展,世界正朝著專用硬件的方向發展,以滿足人工智能對計算的指數級增長需求。然而,今天的芯片的貢獻率是相等的,順序由硬幣的大小決定。
多年來的設計,留給一個推測性的任務,就是為2-5年后的機器學習(ML)模型優化們。大幅縮短芯片設計周期將使硬件更好地適應快速發展的人工智能領域。相信,正是人工智能本身提供了縮短芯片設計周期的手段,在硬件和人工智能之間建立了一種共生關系,兩者互為推動。在這項工作中,提出了一種基于學習的芯片布局方法,這是芯片設計過程中最復雜和最耗時的階段之一。目標是將宏(例如sram)和標準單元(邏輯門,例如NAND、NOR和XOR)的netlist圖放在芯片畫布上,以便優化功率、性能和面積(PPA),同時遵守對放置密度和路由擁塞的限制(在第3.3.6和3.3.5節中描述)。
盡管對這個問題進行了幾十年的研究,但是人類專家仍然有必要用現有的布局工具重復數周,以產生滿足多方面設計標準的解決方案。這個問題的復雜性來自于netlist圖的大小(數百萬到數十億個節點),這些圖必須放置到的網格的粒度,以及計算真正目標指標的高昂成本(工業標準電子設計自動化(EDA)工具一天中要花費很多小時和一些時間來評估單個設計)。即使將問題分解為更易于管理的子問題(例如,將節點分組為幾千個集群并減少網格的粒度),狀態空間仍然比最近基于學習的方法顯示成功的問題大很多個數量級。
為了解決這一挑戰,將芯片放置問題稱為強化學習(RL)問題,在該問題中,訓練一個代理(例如RL策略網絡)來優化放置。在每次訓練迭代中,芯片塊的所有宏都由RL代理按順序放置,然后用力定向方法放置標準單元(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)。訓練是由一個快速但近似的獎賞信號引導的,獎賞信號是代理的每個芯片位置。據所知,所提出的方法是第一種具有概括能力的放置方法,這意味著可以利用從放置以前的網絡列表中學到的知識,為新的未看到的網絡列表生成放置。特別是,表明,隨著代理暴露在更大的體積和種類的芯片中,在為新芯片塊生成優化放置方面變得更快和更好,使更接近于芯片設計師由具有豐富芯片放置經驗的藝術代理協助的未來。相信,方法能夠從經驗中學習,并隨著時間的推移而改進,這為芯片設計師打開了新的可能性。表明,與最先進的基線相比,可以在真正的人工智能加速器芯片(Google tpu)上實現優越的PPA。此外,方法可以在6小時內生成優于或可與人類專家芯片設計師媲美的位置,而性能最高的替代方案則需要人類專家在回路中,并為現代芯片中幾十個塊中的每一個塊花費數周時間。雖然主要在人工智能加速器芯片上進行評估,但提出的方法廣泛適用于任何芯片布局優化。
主要貢獻
對于布局問題,采用了一種深度強化學習方法,其中RL代理(策略網絡)按順序放置宏;一旦放置了所有宏,就會使用一種強制定向方法生成標準單元的大致布局,如圖1所示。RL問題可以表述為馬爾可夫決策過程(mdp),由四個關鍵要素組成:
?狀態:世界可能的狀態集合(例如,在例子中,網絡列表的每一個可能的部分放置在芯片畫布上)。
?操作:代理可以采取的操作集(例如,給定要放置的當前宏,可用操作是離散畫布空間(網格單元格)中的所有位置集,可以將宏放置在這些位置上,而不違反對密度或阻塞的任何硬約束)。
?狀態轉移:給定一個狀態和一個動作,這是下一個狀態的概率分布。
?獎勵:實行狀態行為獎勵。
三.實現測試
圖2描述了策略網絡(由等式3中的πθ建模)和為芯片放置開發的價值網絡架構的概述。
圖3將使用預先訓練的策略生成的安置質量與從頭開始訓練策略網絡生成的安置質量進行了比較。
圖4顯示了Arianeric VCPU從零開始訓練與從預先訓練的策略網絡開始訓練的收斂圖。
圖5(右)顯示了測試數據的放置成本,因為策略網絡正在接受(預)訓練??梢钥吹?#xff0c;對于小的訓練數據集,策略網絡可以快速地覆蓋到訓練數據和測試數據上的性能。
圖6顯示了Ariane RISCV CPU的放置結果。左側顯示零快照策略網絡的放置,右側顯示網絡調整策略網絡的放置。零快照位置是在推斷時在先前看不見的芯片上生成的。零快照策略網絡將標準單元放置在畫布的中心,周圍環繞著宏,這已經非常接近最佳布局。調整后,宏的放置變得更加規則化,中心的標準單元區域變得不那么擁擠。圖7顯示了可視化的放置:左邊是手動放置的結果,右邊是方法的結果。白色區域顯示宏放置,綠色區域顯示標準單元放置。方法在標準單元周圍創建環形的宏放置,從而減少總的線長度。
四.芯片的布局規劃
計算機芯片通常分為數十個 block,每個 block 都是一個單獨的模塊,例如,內存子系統、計算單元或控制邏輯系統。這些 block 可以通過 網表,以及 宏 (Macro,內存組件)和 標準單元(NAND、NOR 和 XOR 等邏輯門)等電路組件圖來描述,而所有這些組件均通過導線連接。確定芯片 block 布局的過程通常稱為芯片的布局規劃,是芯片設計過程中最復雜,也是耗時最久的階段之一,涉及到將網表放置在芯片的畫布(2D 網格)上,以便盡量使功率、性能和面積 (PPA) 最小化,同時遵守密度和布線擁塞方面的限制。
盡管在該方向上的研究已有數十年之久,但是專家們仍然需要數周的迭代時間才能完成一個滿足多方面設計標準的解決方案。
這個問題的復雜性主要來自幾個方面:網表圖的大小(數百萬至數十億個節點)、必須滿足網表圖放置要求的網格粒度,以及計算真實目標指標所產生的過高成本,即使用行業標準的電子設計自動化工具可能要花費數小時的時間(有時甚至超過一天)。
深度強化學習模型
模型的輸入包括芯片網表(節點類型和圖鄰接信息)、要放置的當前節點 ID,以及一些網表元數據,比如導線、宏和標準單元集群的總數等。網表圖和當前節點通過開發的基于邊緣的圖神經網絡傳輸,從而編碼輸入狀態。這樣能夠為已部分放置的圖和候選節點生成嵌入。
圖神經網絡傳輸
圖神經網絡生成的嵌入與元數據嵌入串聯在一起,形成對策略網絡和價值網絡的輸入
邊緣、宏和網表元數據嵌入隨后也進行串聯,以形成單個狀態嵌入,繼而傳遞到前饋神經網絡。前饋網絡輸出一種習得表征,用于捕獲有用的特征并將其用作策略網絡和價值網絡的輸入。隨后,策略網絡對可以在其上放置當前節點的所有可能網格單元生成概率分布。
在每次訓練迭代中,RL 智能體按順序放置完宏,然后通過力引導方法放置標準單元集群,此方法將電路建模為彈簧系統,以便盡量縮短線長。RL 訓練由一個快速但近似的獎勵信號指導,該信號專為智能體的每個芯片布局計算,采用近似線長(即半周線長,HPWL)和近似擁塞(已放置網表消耗的布線資源比例)的加權平均值得出結果。
力引導
在每次訓練迭代過程中,按策略一次放置一個宏,而標準單元集群則通過力引導方法放置。獎勵根據近似線長和擁塞的加權組合計算得出。
結果
據所知,這種方法是首個具有泛化能力的芯片布局方法,這意味著此方法可以利用習得的知識,在布局之前網表的同時,為未見過的全新網表生成更好的布局。發現,隨著增加進行預訓練的芯片網表數量(即,此方法在布局優化方面更有經驗),策略將更好地泛化至新網表。
例如,預訓練策略有機地確定了一種布局:將宏放置在芯片的邊緣附近,將標準單元放置在芯片中心的凸起空間。這將使宏和標準單元之間的線長變短,不會造成布線過度擁塞。相比之下,從頭開始訓練的策略則從隨機布局開始,需要更長的時間才能收斂得到高質量的解決方案,然后重新發現了在芯片畫布的中心留出一個空位的需要。具體請參閱以下動畫。
開源 RISC-V 處理器 Ariane 的宏布局隨訓練進程的變化情況。在左圖中,從頭開始訓練策略,而在右圖中,預訓練的策略已針對芯片進行了微調。每個矩形標識一個單獨的宏布局。
請注意,從頭開始訓練的策略發現的空洞一開始便存在于預訓練策略的布局中
開源 RISC-V
https://github.com/pulp-platform/ariane
觀察到預訓練提升了樣本效率和布局質量。將使用預訓練策略生成的芯片布局質量與從頭開始訓練的策略所得到的布局質量進行了對比。為了給之前未見過的芯片 block 生成芯片布局,使用了 零次 方法,即只使用預訓練策略(不進行微調)來放置新 block,并在不到一秒的時間內完成了布局。而通過對新 block 上的策略進行微調,布局的結果還有進一步提升的空間。從頭開始訓練的策略所需的收斂時間要長得多,甚至在 24 小時后其芯片布局質量仍然不如微調策略 12 小時后的結果。
兩種策略在 Ariane 塊上的收斂圖形。其中一個是從頭開始訓練,另一個則基于預訓練的策略進行微調
隨著在更大型的數據集上進行訓練,方法可實現更出色的性能。據觀察,隨著訓練的數據集從兩個塊增加到五個再上升到 20 個,使用零次方法的策略和微調策略在相同的訓練時鐘時間下均可生成更好的芯片布局。
訓練數據規模與微調后的性能
方法具備從經驗中學習并隨時間推移而改進的能力,為芯片設計人員解鎖全新的可能性。隨著接觸到的芯片數量和種類逐漸多,智能體現可更快更好地為新芯片 block 生成優化布局??焖佟⒏哔|量和自動化的芯片布局方法能夠大幅加快芯片設計速度,并與芯片設計過程的早期階段可實現協同優化。盡管主要評估加速器芯片,但提出的方法可廣泛應用于任何芯片布局問題。在針對機器學習作出如此多的硬件準備之后,相信,讓機器學習回饋硬件開發的時代已經來臨。
總結
- 上一篇: 神经网络AI加速器技术
- 下一篇: IPv6 与 IPv4现状