TWI828362B - 訓練用於巨集佈置的神經網路的方法及系統 - Google Patents
訓練用於巨集佈置的神經網路的方法及系統 Download PDFInfo
- Publication number
- TWI828362B TWI828362B TW111138600A TW111138600A TWI828362B TW I828362 B TWI828362 B TW I828362B TW 111138600 A TW111138600 A TW 111138600A TW 111138600 A TW111138600 A TW 111138600A TW I828362 B TWI828362 B TW I828362B
- Authority
- TW
- Taiwan
- Prior art keywords
- neural network
- macros
- wafer
- samples
- gnn
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Character Discrimination (AREA)
- Image Processing (AREA)
- Traffic Control Systems (AREA)
- Feedback Control In General (AREA)
- Testing Or Measuring Of Semiconductors Or The Like (AREA)
Abstract
一種訓練用於巨集佈置的神經網路的系統。系統通過從晶片的至少部分放置的畫布中以不同順序依次移除同一組巨集來構建軌跡的一組正樣本。系統還通過將尚未放置的巨集放置在晶片的至少部分空白的畫布上的隨機位置來構建軌跡的一組負樣本。系統接著使用正樣本和負樣本訓練神經網路和神經網路中的圖神經網路(GNN)。
Description
本發明的實施例涉及基於機器學習(machine learning)和人工智慧(artificial intelligence,AI)用於在半導體晶片上生成巨集佈置(macro placement)的方法和裝置。
在積體電路(IC)設計中,巨集(macro)是可以被視為黑盒子(black box)的一組電路元件。巨集的邏輯和電子行為是給定的,但內部結構描述有可能已知也有可能未知。混合尺寸的巨集佈置是在晶片畫布(canvas)上放置各種尺寸的巨集以優化目標(例如線長、擁塞等)的問題。
訓練EDA工具以便正確放置巨集通常需要許多放置樣本。對於監督式訓練,每個樣本都根據各種目標被評估(“標記”)。考慮的計算時間、資源和許可成本,這種評估是昂貴的。
當人們想要收集具有特定特徵的樣本時,標記成本可能會進一步加劇。例如,設計人員可能想要收集具有“不可用區域”問題特徵的樣本。因為這個問題發生的概率很低,所以需要生成大量的樣本才能收集到足夠數量的樣本。此外,標籤專家篩選所有這些樣本來識別包含特定特徵的樣本是非常耗時的。此外,對於每一種新型特徵,設計人員通常都必須重複樣本生成、識別和標記的過程。很難將此過程與線上強化學習相結合。
鑒於標記佈置樣本的成本很高,因而需要改進巨集佈置工具的訓練方法以最小化標記成本。
在一個實施例中,提供了一種訓練用於巨集佈置的神經網路(NN)的方法。通過從晶片的至少部分放置的畫布中以不同順序依次移除同一組巨集來構建軌跡的一組正樣本。通過將尚未放置的巨集放置在晶片的至少部分空白的畫布上的隨機位置來構建軌跡的一組負樣本。接著使用正樣本和負樣本訓練NN和NN中的圖神經網路(GNN)。
在另一個實施例中,系統可操作為訓練用於巨集佈置的神經網路。系統包括處理硬體和耦接到所述處理硬體的記憶體,記憶體存儲關於神經網路、一組晶片和放置在晶片上的多個巨集的資訊。處理硬體可操作為通過從晶片的至少部分放置的畫布中以不同順序依次移除同一組巨集來構建軌跡的一組正樣本,通過將尚未放置的巨集放置在所述晶片的至少部分空白的畫布上的隨機位置來構建軌跡的一組負樣本,以及使用正樣本和負樣本訓練所述神經網路和所述神經網路中的圖神經網路(GNN)。
本領域習知技藝者在結合附圖閱讀特定實施例的以下描述後,其他方面和特徵將變得顯而易見。
10,20:NN
11:GNN
15:GNN嵌入
12:元編碼器
16:元嵌入
13:價值網路
14:策略網路
18,210:遮罩
300:方法
S311,S312A,S312B,S313,S314:步驟
S410~S450:步驟
S511~S515,S521~S527:步驟
S610~S640:步驟
S710~S740:步驟
S810~S830,S811~S813:步驟
S910~S940:步驟
S1010~S1040,S1011~S1013:步驟
1100:系統
1110:處理硬體
1120:記憶體
1130:網路介面
1140:EDA工具
1200:方法
S1210~S1230:步驟
本發明通過示例的方式而非限制的方式在附圖中進行說明,在附圖中相似的參考標號指示相似的元素。應當注意,在本公開中對“一個”或“個”實施例的不同引用不一定是指相同的實施例,並且這樣的引用表示至少一個。此外,當結合實施例描述特定特徵、結構或特性時,認為在本領域習知
技藝者的知識範圍內可結合其他實施例來實現此類特徵、結構或特性,無論是否進行明確描述。
第1圖是例示根據一個實施例的用於巨集佈置的神經網路(NN)的框圖。
第2圖例示了根據一個實施例的巨集佈置過程。
第3圖是例示根據一個實施例的使用對比樣本訓練NN的方法的流程圖。
第4圖是例示根據一個實施例的正樣本構建的流程圖。
第5A圖是例示根據一個實施例的負樣本構建的流程圖。
第5B圖是例示根據另一實施例的負樣本構建的流程圖。
第6圖是例示根據一個實施例的第3圖中的表徵預訓練的流程圖。
第7圖是例示根據一個實施例的第3圖中的微調的流程圖。
第8圖是根據一個實施例的樣本收集操作的流程圖。
第9圖是根據一個實施例的微調訓練操作的流程圖。
第10圖是根據一個實施例的評估操作的流程圖。
第11圖例示了根據一個實施例的系統的示例。
第12圖是例示根據一個實施例的訓練用於巨集佈置的NN的方法的流程圖。
在下面的描述中,闡述了許多具體細節。然而,應當理解,可以在沒有這些具體細節的情況下實踐本發明的實施例。在其他情況下,未詳細示出眾所周知的電路、結構和技術以免混淆對本發明的理解。然而,本領域習知技藝者將理解,可以在沒有這些具體細節的情況下實施本發明。本領域習知技藝者可以利用所包括的描述能夠實現適當的功能而無需過多的實驗。
本公開提供了用於巨集佈置的工具和用於使用對比樣本(contrastive samples)來訓練用於巨集佈置的工具的方法。使用對比樣本的好處
之一是最大限度地降低評估最終設計目標的成本。根據這裡要描述的一個實施例,對比樣本包括從已經放置有巨集的一組晶片(即,已放置的晶片)產生的正樣本(positive samples)和負樣本(negative samples)。如本文所使用的,半導體晶片是積體電路塊(也稱為晶片)。巨集包含一組積體電路元件,晶片畫布是晶片上可以放置巨集的二維(2D)區域。
從已知良好佈置(例如,滿足給定目標的佈置)的集合D,正樣本對(即,由兩個正樣本組成的樣本對)可以通過以兩種不同順序從一個晶片中完全或部分移除放置的巨集來構建。在一個實施例中,給定晶片上的完整巨集佈置的情況下,可以通過一次移除一個巨集以形成(狀態,動作)對的軌跡直到從該晶片移除所有巨集,來構建一個正樣本。從同一晶片上的同一巨集佈置,可以通過以不同順序移除巨集來構建多個正樣本。
對於負樣本,一個負樣本對(即,由兩個負樣本組成的樣本對)可以是兩個隨機的佈置,它們有很大的概率具有不同的值函數。在一個實施例中,在晶片上的巨集佈置的情況下,可以通過一次將一個巨集隨機地放置到晶片的空白或已被部分放置的畫布上以形成(狀態,動作)對的軌跡直到所有的巨集都被放置在晶片上,來構建一個負樣本。
正樣本和負樣本的集合可用於訓練AI代理,例如神經網路(NN)。NN學習對正樣本和負樣本進行區分。訓練結束後,通過遷移學習,NN可以對不在訓練集中的晶片進行巨集放置。
第1圖是例示根據一個實施例的用於巨集佈置的NN 10的框圖。NN 10接收包括狀態s(巨集、網表圖、節點ID)和網表元數據的輸入。NN 10使用圖神經網路(graph neural network,GNN)11將狀態編碼為低維向量,稱為GNN嵌入15。NN 10還使用元編碼器12將網表元數據編碼為另一個低維向量,稱為元嵌入(meta embedding)16。GNN嵌入15和元嵌入16連接
(concatenated)成一個潛在狀態(latent state)。該潛在狀態被饋送到價值網路(value network)13和策略網路(policy network)14。策略網路14生成策略πθ(a|s),其中πθ(a|s)是給定狀態s的動作a的概率分佈。該動作指定了晶片畫布上用於放置巨集的座標。狀態是包括放置在其上的任何巨集的畫布。價值網路13生成能預測動作a的回報的值。NN 10由θ進行參數化,其表示用於定義NN 10的參數集。基於策略πθ(a|s),NN 10在晶片畫布上應用遮罩(mask)18並生成動作作為輸出。該動作是基於策略πθ(a|s)以及隨機策略或確定性策略而生成的。在本公開中,遵循隨機策略的NN 10被稱為B000,而遵循確定性策略的NN 10被稱為B001。在一些實施例中,NN 10可用於巨集佈置。
第2圖例示了根據一個實施例的巨集佈置過程。給定晶片畫布和經過訓練的NN 20,NN 20執行動作a 1以將巨集1放置在畫布的第一座標上。NN 20可以具有與NN 10(第1圖)相同的網路結構。此時(在執行動作a 1之後)畫布的狀態表示為s 1。更新遮罩210以指示巨集1周圍不被下一個巨集佔據的區域。NN 20然後執行動作a 2以將巨集2放置在畫布的第二座標上。畫布狀態被更新為s 2,並且遮罩210也被更新(未示出)以防止後續巨集與前兩個巨集不期望地重疊。晶片放置過程一直持續到所有巨集都放置在晶片畫布上。
第2圖所示的晶片放置過程產生用於放置n個巨集的(狀態,動作)對(s 1 ,a 1),...,(s n ,a n )的軌跡,其中最終狀態s n表示具有完成的巨集放置的晶片畫布。對於給定狀態,NN 20被訓練為生成相應動作的概率分佈。在一個實施例中,NN 20將遮罩210應用於概率分佈,以在晶片畫布的發生動作的網格點上產生遮蔽分佈(masked distribution)。使用確定性策略,NN 20根據遮蔽分佈選擇概率最高的用於放置巨集的動作。使用隨機策略,NN 20根據遮蔽分佈採樣用於放置巨集的動作。
下面的描述參考流程圖公開了多種方法。這些方法可以由計算系統執行,例如第11圖中的系統1100,在該系統上可以訓練諸如NN之類的放置工具。此外,以下描述中的一些方法涉及“閾值”的使用。可以理解的是,不同方法/階段/操作/步驟中的閾值可以指代不同的數值。
第3圖是圖示根據一個實施例的用於使用對比樣本訓練NN的方法300的流程圖。方法300的輸入包括:已經放置了巨集的一組晶片(即,經放置的晶片)、晶片的驗證集和未訓練的NN。該組經放置的晶片可以用作微調中的訓練集(S314)。或者,可以在輸入中包括一組額外的晶片作為用於微調的訓練集(S314)。方法300開始於構建一組正樣本(S311)和一組負樣本(S312A或S312B)。這些樣本被饋送到未訓練的NN進行表徵預訓練(representation pre-training)(S313)和微調(fine-tuning)(S314)。微調的輸出是經過訓練的NN。
第4圖是例示根據一個實施例的正樣本構建(S311)的流程圖。S311的輸入包括已經放置了巨集的一組晶片(即,經放置的晶片)。對於每個經放置的晶片,原始巨集放置順序是已知的。S311開始於系統從該組經放置的晶片中隨機選擇一個晶片(S410)。然後系統從該晶片中隨機移除一個巨集以產生狀態-動作對(s,a)(S420),其中s是移除巨集之後的畫布狀態,a是這個被移除的巨集的座標。在一個實施例中,系統可以通過以兩種不同的隨機順序從同一晶片移除同一組巨集來創建一個正樣本對。在一個實施例中,系統可以通過以預定順序(例如,以與原始巨集放置順序相反的順序)從晶片中移除巨集的第一子
集並且以隨機順序從該晶片中移除巨集的第二子集來創建一個正樣本。當所有巨集都從該晶片中移除時(S430),系統收集由S420中產生的狀態-動作對(s 1 ,a 1),...,(s n ,a n )組成的軌跡,其中n是最後放置的巨集(即,在S420中從經放置的晶片中移除的第一個巨集),並將該軌跡存儲到緩衝器中(S440)。當緩衝器中的軌跡數量達到閾值時(S450),系統輸出具有多個軌跡的緩衝器,多個軌跡代表多個正樣本。
第5A圖是例示根據一個實施例的第3圖中負樣本構建(S312A)的流程圖。S312A的輸入包括已經放置了巨集的一組晶片。S312A開始於系統從該組經放置的晶片中隨機選擇一個晶片(S511),從晶片的空白畫布開始,重新放置此晶片的巨集。然後系統將一個尚未放置(not-yet-placed)的巨集放置在該晶片的隨機選擇的座標上以產生狀態-動作對(s,a)(S512),其中s是放置巨集之前的畫布狀態,a是這個放置的巨集的座標。在S512,系統可以隨機選擇一個用於放置的巨集,也可以按照原來的放置順序選擇巨集。當所有的巨集都被放置在晶片上時(S513),系統收集由S512中產生的狀態-動作對(s 1 ,a 1),...,(s n ,a n )組成的軌跡,其中n是巨集的數量,並將該軌跡存儲到緩衝器中(S514)。當緩衝器中的軌跡數量達到閾值時(S515),系統輸出具有多個軌跡的該緩衝器,多個軌跡代表多個負樣本。
第5B圖是例示根據另一個實施例的第3圖中負樣本構建(S312B)的流程圖。S312B的輸入包括已經放置了巨集的一組晶片。S312B開始於系統從該組經放置的晶片中隨機選擇一個晶片(S521),從晶片的空白畫布開始,重新放置此晶片的巨集。然後系統將隨機選擇數量的巨集放置在晶片上,每個巨集被放置在其在晶片上的原始位置(S522和S523)。“原始位置”是輸入中巨集在經放置的晶片上的位置。在S522系統可以隨機選擇一個巨集進行放置,也可以按照原來的放置順序選擇巨集。巨集的每次放置都會創建一個狀態-動作對
(s,a),系統將其存儲在緩衝器中,其中s是放置巨集之前的畫布,a是此放置的巨集的座標。系統進一步將一個尚未放置的巨集放置在該晶片的隨機選擇的位置以產生額外的狀態-動作對(s,a),並將該狀態-動作對存儲在緩衝器中(S524)。重複S524直到所有巨集都被放置在晶片上(S525)。系統收集由在S522和S524產生的狀態-動作對(s 1 ,a 1),...,(s n ,a n )組成的軌跡,其中n是巨集的數量,並將該軌跡存儲到緩衝器中(S526)。當緩衝器中的軌跡數量達到閾值時(S527),系統輸出具有多個軌跡的該緩衝器,多個軌跡代表多個負樣本。
第6圖是例示根據一個實施例的第3圖中表徵預訓練(representation pre-training)(S313)的流程圖。表徵預訓練(S313)可以由計算系統執行以在方法300(第3圖)的輸入中訓練NN。系統開始於從包含正樣本和負樣本的緩衝器中採樣小批量軌跡(S610)。然後系統根據此小批量軌跡計算損失L CLIP+VF+S (θ)+KL contrastive(θ GNN )(S620),其中θ GNN 是GNN(例如,第1圖中的GNN編碼器11)的權重,θ是整個NN(例如第1圖中的NN 10)的權重(即參數),其中θ GNN θ。系統基於梯度下降計算NN θ和GNN θ GNN 的更新參數:θ←θ-η▽θ L CLIP+VF+S (θ),θ GNN ←θ GNN -,其中η是學習率,K是設計人員選擇的乘數(S630)。重複S610、S620和S630直到更新次數達到閾值(S640)。系統輸出具有更新的參數θ的NN。
下面提供表徵預訓練(S313)的數學公式。給定GNN嵌入16(第1圖)的參數模型f θ,可以基於P中正樣本對之間和N中負樣本對之間的距離度量L 1計算對比損失(contrastive loss)L contrastive,如下所示:
當多個負樣本對與一個正負樣本對(x,x +),是從單個真實樣本(true sample)x(即,輸入組中經放置晶片的原始軌跡)創建時,可以基於相似性度量L 2計算另一個對比損失L contrastive,如下所示:
NN參數θ的更新可以使用具有廣義優勢估計(generalized advantage estimation)的近端策略優化(Proximal Policy Optimization,PPO)梯度估計器計算。損失函數(L CLIP+VF+S )在“Proximal policy optimization algorithms,Schulman et al.,arXiv preprint arXiv:1707.06347(2017)”的等式(9)中進行了描述。
返回參考第3圖,在表徵預訓練(S313)之後,方法300進行到微調(S314)。微調(S314)的細節將在下面參考第7圖至第10圖進行描述。
第7圖是例示根據一個實施例的第3圖中的微調(S314)的流程圖。S314的輸入包括晶片的訓練集、晶片的驗證集和第6圖的輸出中的NN。晶片的訓練集可以與第3圖中經放置的晶片相同或者不同。微調(S314)包括三個操作:樣本收集操作(S710)、微調訓練操作(S720)和評估操作(S730)。重複S710、S720和S730直到從S730輸出的回報r達到預定閾值(S740)。回報的示例可以是諸如線長或其他設計指標的目標。至此,微調完成,輸出經微調的NN用於巨集放置。
第8圖是根據一個實施例的樣本收集操作(S710)的流程圖。在樣本收集操作中,NN從訓練集中採樣一個晶片並使用隨機策略採樣(即生成)一個軌跡(S810)。參考第1圖中的網路B000描述隨機策略。為了生成軌跡,NN使用晶片畫布的當前狀態s i 作為輸入(S811)。NN基於隨機策略根據概率分佈(由NN生成)採樣動作a i (S812)。採樣的動作指定了在採樣晶片上放置巨
集的位置。重複S811和S812直到所有的巨集被放置(S813),並且由(狀態,動作)對序列形成軌跡。然後將軌跡存儲在緩衝器中(S820)。當緩衝器中的軌跡數量達到閾值時(S830),緩衝器被提供作為第9圖所示的微調訓練操作(S720)的輸入。
第9圖是根據一個實施例的微調訓練操作(S720)的流程圖。微調訓練操作(S720)可以通過利用樣本收集操作(S710)中生成的緩衝器以及構建正樣本(S311)和負樣本(S312A/S312B)中的緩衝器由計算系統執行,例如第11圖中的系統1100。微調訓練操作開始於系統從緩衝器中採樣小批量軌跡(S910)。系統根據該小批量軌跡計算損失L CLIP+VF+S (θ')+L contrastive(θ GNN ),其中θ GNN 是GNN(例如第1圖中的GNN編碼器11)中的權重,θ'是除θ GNN 之外的整個NN中的權重(S920)。系統基於梯度下降更新參數NN θ'和GNN θ GNN (S930):θ'←θ'-η▽ θ' L CLIP+VF+S (θ'),θ GNN ←θ GNN -,其中η和γ是學習率,使得Σ n η n =Σ n γ n =∞, 和。重複S910、S920和S930直到更新次數達到預定閾值(S940)。當達到預定閾值時,NN具有更新的參數θ'和θ GNN 。
第10圖是根據一個實施例的評估操作(S730)的流程圖。評估操作(S730)的輸入包括晶片的驗證集(在第3圖的輸入中)、以及具有更新的參數θ'和θ GNN 的NN(在第9圖的輸出中)。評估操作(S730)開始於NN在驗證集中採樣一個晶片,並使用確定性策略採樣(即生成)一個軌跡(S1010)。參考第1圖中的網路B001來描述確定性策略。為了生成軌跡,NN使用當前狀態s i 作為輸入(S1011)。NN基於確定性策略根據概率分佈(由NN生成)選擇具有最高概率的動作a i (S1012)。所選動作指定採樣晶片上放置巨集的位置。重複S1011和S1012,直到所有的巨集都被放置(S1013),並且由(狀態,動作)對序列形成一個軌跡。NN繼續根據該軌跡中的最終狀態S n 計算回報r並收集該回報
(S1020)。重複S1010和S1020(包括S1011-S1013),直到收集的回報數量達到預定閾值(S1030)。NN然後將所有收集的回報進行平均(S1040)並輸出單個回報值。
返回參照第7圖,在評估操作(S730)之後,將單個回報值與閾值進行比較(S740)。重複操作S710、S720和S730,直到從評估操作(S730)輸出的單個回報值達到閾值。此時,NN已被微調。可以為經過微調的NN提供一個新的晶片和要放置在該新晶片上的巨集。
對比樣本構建(contrastive sample construction)的基本原理如下。給定最優策略π*(即,給定晶片的情況下可以獲得最佳佈置的策略),如果是通過在s上運行策略π*直到回合(episode)終止(在整個巨集的放置過程中,從開始放置第一個巨集到放置完成最後一個巨集,可視為一個回合)(即完成佈置),則表示狀態s的完成。如果滿足下面條件,兩個狀態s和s'等效s s':(1)它們是相容的,即所有已放置在s和s'兩者中的巨集共用相同的位置;(2)它們共用完成狀態,即。然後它遵循狀態V *(s)=V *(s')並且對於任何尚未被放置在s或s'中的巨集m,π*(s,m)=π*(s',m)。提供本文公開的方法使得等效狀態可以共用相似表徵。
可以通過故意改變已知的良好放置的樣本使得放置變為次優,來挖掘負樣本對。例如,可以從原始良好放置(original good placement)的部分放置(partial placement)和後續不良放置的部分放置中提取負樣本對。
在第6圖的表徵預訓練(S313)期間,在等效狀態和非等效狀態上計算對比損失,以便預訓練GNN表徵(representations)。
對比損失的進一步解釋如下。在GNN表徵預訓練期間使用對比損失(第6圖),之後在微調時重新訓練GNN權重中的偏差(bias)。對於價值函數(由第1圖中的價值網路13計算),系統僅將畫布狀態而不把下一個巨集的
索引(即節點ID)直接輸入到第6圖中的GNN,以便在價值函數回歸(regression)中強制執行所需的偏差。如此,價值函數輸出不會受到下一個要放置的巨集的影響。
在表徵預訓練(representation pre-training)期間(第6圖),整個NN在L CLIP+VF+S (θ)+KL contrastive(θ GNN )上進行訓練,其中K是實驗者調整的乘數。注意θ GNN θ因而上面的優化沒有解耦(decoupled)。
在微調訓練操作期間(第9圖),基於獨立于NN其餘部分的更新級別規則(update-scale rule)來設置GNN參數設置,以保留預訓練中獲得的偏差。即,在微調時,通過學習率計畫表(learning rate schedule)來優化L CLIP+VF+S (θ')+L contrastive (θ GNN ):針對θ GNN 的γ n 和針對所有其他參數θ'的η n 使得Σ n η n =Σ n γ n =∞, 和。
第11圖例示了根據一個實施例的系統1100的示例。系統1100包括處理硬體1110、記憶體1120和網路介面1130。在一個實施例中,處理硬體1110可以包括一個或多個處理器和加速器,例如以下的一個或多個:中央處理單元(CPU)、GPU、數位信號處理器(DSP)、AI處理器、張量處理器、神經處理器、多媒體處理器、其他通用和/或專用處理電路。
系統1100還包括耦接到處理硬體1110的記憶體1120。記憶體1120可以包括諸如動態隨機存取記憶體(DRAM)、SRAM、快閃記憶體和其他非暫時性機器可讀存儲介質的記憶體設備,例如,易失性或非易失性存放裝置。記憶體1120還可以包括例如任何類型的固態或磁存放裝置的存放裝置。在一個實施例中,記憶體1120可以存儲一個或多個EDA工具1140,EDA工具包括但不限於神經網路、AI代理和用於巨集佈置的其他工具。EDA工具1140的例子包括B000和B001(第1圖)。記憶體1120可以進一步存儲用於構建正樣本和負樣本的已放置晶片組、晶片的訓練集、晶片的驗證集以及已放置或待放置到這些晶片上的巨
集相關的資訊。在一些實施例中,記憶體1120可以存儲指令,這些指令在由處理硬體1110執行時可以使處理硬體執行上述用於巨集放置和/或用於訓練NN執行巨集放置的方法和操作。然而,應當理解,上述方法和操作可以由不同於B000和B001(第1圖)的實施例的實施例來執行。
在一些實施例中,系統1100還可以包括網路介面1130以連接到有線和/或無線網路。應當理解為了便於例示說明,簡化了第11圖的實施例。還可以包括額外的硬體元件。
第12圖是例示根據一個實施例的訓練用於巨集放置的NN的方法1200的流程圖。在一個實施例中,方法1200可以由第11圖中的系統1100執行。方法1200開始於系統通過從晶片的至少部分放置的畫布中以不同順序依次移除同一組巨集來構建一組正樣本(S1210)。至少部分放置的畫布可以被完全放置或部分放置。系統還通過將尚未放置的巨集放置在晶片的至少部分空白的畫布上的隨機位置來構建一組負樣本(S1220)。至少部分空白的畫布可以是完全的或部分空白。然後系統使用正樣本和負樣本訓練NN和NN中的GNN(S1230)。
在一個實施例中,每個正樣本是(狀態,動作)對的軌跡,其中狀態是移除巨集後的畫布狀態,動作是巨集的座標。可以通過以隨機順序從晶片中依次移除所有巨集來構建至少一個正樣本。可以通過以預定順序從晶片中依次移除同一組巨集的第一子集和以隨機順序從晶片中移除同一組巨集的第二子集來構建至少一個正樣本。
在一個實施例中,每個負樣本是(狀態,動作)對的軌跡,其中狀態是放置巨集之前的畫布狀態,動作是巨集的座標。可以通過將所有巨集依次放置在晶片的空白畫布上的隨機位置來構建至少一個負樣本。可以通過在晶片上的預定位置依次放置同一組巨集的第一子集和在晶片上的隨機位置依次放置同一組巨集的第二子集來構建至少一個負樣本。可以通過以隨機放置順序放置
尚未放置的巨集來構建至少一個負樣本。
在一個實施例中,基於測量正樣本對之間距離和負樣本對之間距離的對比損失函數(contrastive loss function),訓練GNN。在一個實施例中,基於測量真實樣本與正樣本之間相似性以及真實樣本與一個或多個負樣本之間相似性的對比損失函數,訓練GNN。真實樣本是完成的巨集放置的原始軌跡。
在一個實施例中,訓練NN包括使用正樣本和負樣本對NN進行預訓練,以及使用正樣本、負樣本和經預訓練的NN所生成的軌跡微調NN。預訓練NN可以包括基於從正樣本和負樣本計算的對比損失函數更新GNN的參數,以及基於不同於對比損失函數的損失函數更新NN(包括GNN)的參數。微調NN可以包括基於從正樣本和負樣本計算的對比損失函數更新GNN的參數,以及基於不同於對比損失函數的損失函數更新除GNN之外的NN的參數。微調NN還可以進一步包括基於第一學習率的梯度下降更新除GNN之外的NN的參數,以及基於第二學習率(不同於第一學習率)的梯度下降更新GNN的參數。微調NN還可以包括NN生成第一組軌跡用於更新NN參數,第一組中的每個軌跡包括根據概率分佈隨機採樣的動作,該動作指示晶片畫布上放置巨集的座標。NN進一步生成第二組軌跡用於評估更新的NN參數,第二組中的每個軌跡包括根據另一個概率分佈選擇的具有最高概率的另一個動作。
已經描述了各種功能元件或塊。如本領域習知技藝者將理解的,功能塊將優選地通過電路(專用電路或通用電路,其在一個或多個處理器和編碼指令的控制下操作)來實現,電路通常包括電晶體,其中電晶體被配置為根據本文描述的功能和操作來控制電路的操作。
雖然已經根據幾個實施例描述了本發明,但是本領域習知技藝者將認識到本發明不限於所描述的實施例,並且可以在所附權利要求的精神和範圍內通過修改和變更來實踐。因此,描述被認為是說明性的而不是限制性的。
1200:方法
S1210~S1230:步驟
Claims (20)
- 一種訓練用於巨集佈置的神經網路的方法,包括:通過從晶片的至少部分放置的畫布中以不同順序依次移除同一組巨集來構建一組正樣本;通過將尚未放置的巨集放置在所述晶片的至少部分空白的畫布上的隨機位置來構建一組負樣本;以及使用所述一組正樣本和所述一組負樣本訓練所述神經網路和所述神經網路中的圖神經網路(GNN)。
- 如請求項1之方法,其中,每個正樣本是(狀態,動作)對的軌跡,所述狀態是去除巨集後的畫布狀態,所述動作是所述巨集的座標。
- 如請求項1之方法,其中,至少一個正樣本是通過以隨機順序從所述晶片中依次去除所有巨集來構建的。
- 如請求項1之方法,其中,至少一個正樣本是通過以預定順序從所述晶片中依次移除同一組巨集的第一子集並且以隨機順序從所述晶片中移除同一組巨集的第二子集而構建的。
- 如請求項1之方法,其中,每個負樣本是(狀態,動作)對的軌跡,狀態是放置巨集之前的畫布狀態,動作是所述巨集的座標。
- 如請求項1之方法,其中,至少一個負樣本是通過將所有巨集依次放置在所述晶片的空白畫布上的隨機位置處來構建的。
- 如請求項1之方法,其中,至少一個負樣本是通過在所述晶片上的預定位置依次放置同一組巨集的第一子集並且在所述晶片上的隨機位置依次放置同一組巨集的第二子集來構建的。
- 如請求項1之方法,其中,至少一個負樣本是通過以隨機放置順序放置尚未放置的巨集來構建的。
- 如請求項1之方法,其中,基於測量一對正樣本之間的距離和一對負樣本之間的距離的對比損失函數,來訓練所述GNN。
- 如請求項1之方法,其中,基於測量真實樣本與正樣本之間相似性以及所述真實樣本與一個或多個負樣本之間相似性的對比損失函數,訓練所述GNN,其中所述真實樣本是完成的巨集放置的原始軌跡。
- 如請求項1之方法,其中,訓練所述神經網路包括:使用所述一組正樣本和所述一組負樣本對所述神經網路進行預訓練;以及使用所述一組正樣本、所述一組負樣本和經預訓練的所述神經網路所生成的軌跡來微調所述神經網路。
- 如請求項11之方法,其中,預訓練所述神經網路還包括:基於從所述一組正樣本和所述一組負樣本計算的對比損失函數更新所述GNN的參數;以及基於不同於所述對比損失函數的損失函數更新包括所述GNN在內的所述神經網路的參數。
- 如請求項11之方法,其中,微調所述神經網路還包括:基於從所述一組正樣本和所述一組負樣本計算的對比損失函數更新所述GNN的參數;以及基於不同於所述對比損失函數的損失函數更新除所述GNN之外的所述神經網路的參數。
- 如請求項11之方法,其中,微調所述神經網路還包括:基於具有第一學習率的梯度下降更新除所述GNN之外的所述神經網路的參數;以及基於具有第二學習率的梯度下降更新所述GNN的參數,其中所述第二學習率不同於所述第一學習率。
- 如請求項11之方法,其中,微調所述神經網路還包括:由所述神經網路生成第一組軌跡用於更新所述神經網路的參數,所述第一組軌跡中的每個軌跡包括根據概率分佈隨機採樣的動作,所述動作指示晶片畫布上放置巨集的座標;以及由所述神經網路生成第二組軌跡用於評估更新的所述神經網路的參數,所述第二組軌跡中的每個軌跡包括根據另一個概率分佈選擇的具有最高概率的另一個動作。
- 一種可操作為訓練用於巨集佈置的神經網路的系統,包括:處理硬體;以及耦接到所述處理硬體的記憶體,所述記憶體存儲關於所述神經網路、一組晶片和放置在所述一組晶片上的多個巨集的資訊,其中所述處理硬體可操作為:通過從一個晶片的至少部分放置的畫布中以不同順序依次移除同一組巨集來構建一組正樣本;通過將尚未放置的巨集放置在所述晶片的至少部分空白的畫布上的隨機位置來構建一組負樣本;以及使用所述一組正樣本和所述一組負樣本訓練所述神經網路和所述神經網路中的圖神經網路(GNN)。
- 如請求項16之系統,其中,所述處理硬體進一步操作為在構建至少一個正樣本時以隨機順序從所述晶片中移除所有巨集或部分巨集。
- 如請求項16之系統,其中,所述處理硬體進一步操作為當構建至少一個負樣本時,將所有巨集或部分巨集依次放置在所述晶片上的隨機位置。
- 如請求項16之系統,其中,所述處理硬體進一步操作為在構建至少一個負樣本時以隨機放置順序將所有巨集或部分巨集依次放置在所述晶 片上。
- 如請求項16之系統,其中,所述處理硬體進一步操作為基於從所述一組正樣本和所述一組負樣本計算的對比損失函數來更新所述GNN的參數。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163254582P | 2021-10-12 | 2021-10-12 | |
| US63/254,582 | 2021-10-12 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202324204A TW202324204A (zh) | 2023-06-16 |
| TWI828362B true TWI828362B (zh) | 2024-01-01 |
Family
ID=85987271
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111138600A TWI828362B (zh) | 2021-10-12 | 2022-10-12 | 訓練用於巨集佈置的神經網路的方法及系統 |
| TW111138605A TWI861573B (zh) | 2021-10-12 | 2022-10-12 | 利用人工智慧方案的巨集佈置 |
| TW111138601A TWI853316B (zh) | 2021-10-12 | 2022-10-12 | 一種在晶片上進行巨集佈置的神經網路的方法及相關的系統 |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111138605A TWI861573B (zh) | 2021-10-12 | 2022-10-12 | 利用人工智慧方案的巨集佈置 |
| TW111138601A TWI853316B (zh) | 2021-10-12 | 2022-10-12 | 一種在晶片上進行巨集佈置的神經網路的方法及相關的系統 |
Country Status (4)
| Country | Link |
|---|---|
| US (3) | US20240289602A1 (zh) |
| CN (3) | CN116324787A (zh) |
| TW (3) | TWI828362B (zh) |
| WO (3) | WO2023061408A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117389921A (zh) * | 2022-07-01 | 2024-01-12 | 阿里巴巴(中国)有限公司 | 一种存储扩展卡和系统 |
| CN117292717B (zh) * | 2023-11-27 | 2024-03-22 | 广东美的制冷设备有限公司 | 异音识别方法、装置、电子设备和存储介质 |
| CN120975026B (zh) * | 2025-10-17 | 2026-02-06 | 芯潮流(珠海)科技有限公司 | 一种基于强化学习的高速通信芯片宏放置方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1996318A (zh) * | 2006-01-03 | 2007-07-11 | 联发科技股份有限公司 | 半导体芯片、宏摆置的方法、多向密集堆积宏摆置器与多尺寸混合摆置设计方法 |
| US20170004240A1 (en) * | 2015-07-01 | 2017-01-05 | Synopsys, Inc. | Netlist abstraction for circuit design floorplanning |
| TWI623844B (zh) * | 2013-07-05 | 2018-05-11 | 國立成功大學 | 適用於混合模組之平面規劃方法 |
| US20180150583A1 (en) * | 2016-11-28 | 2018-05-31 | Ncku Research And Development Foundation | Method of macro placement and a non-transitory computer readable medium thereof |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3112843B2 (ja) * | 1996-09-12 | 2000-11-27 | 日本電気アイシーマイコンシステム株式会社 | 半導体集積回路の自動配置配線方法 |
| US7596773B2 (en) * | 2006-03-02 | 2009-09-29 | Texas Instruments Incorporated | Automating optimal placement of macro-blocks in the design of an integrated circuit |
| US8234615B2 (en) * | 2010-08-04 | 2012-07-31 | International Business Machines Corporation | Constraint programming based method for bus-aware macro-block pin placement in a hierarchical integrated circuit layout |
| CN109155003B (zh) * | 2016-02-05 | 2023-09-15 | 渊慧科技有限公司 | 生成神经网络 |
| DE112017006442T5 (de) * | 2016-12-21 | 2019-09-19 | Intel Corporation | Drahtlose kommunikationstechnologie, einrichtungen und verfahren |
| US10803395B2 (en) * | 2018-06-07 | 2020-10-13 | International Business Machines Corporation | Quantum computations of classical specifications |
| US10643721B2 (en) * | 2018-06-21 | 2020-05-05 | Sandisk Technologies Llc | Interleaved program and verify in non-volatile memory |
| US10664640B2 (en) * | 2018-07-19 | 2020-05-26 | International Business Machines Corporation | Coherent placement of slotline mode suppression structures in coplanar waveguides for quantum devices |
| JP7459798B2 (ja) * | 2018-10-15 | 2024-04-02 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、及びプログラム |
| SG11202105629SA (en) * | 2018-12-04 | 2021-06-29 | Google Llc | Generating integrated circuit floorplans using neural networks |
| WO2021012263A1 (en) * | 2019-07-25 | 2021-01-28 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Systems and methods for end-to-end deep reinforcement learning based coreference resolution |
| CN114375443A (zh) * | 2019-09-11 | 2022-04-19 | 华为技术有限公司 | 一种安全检测的方法和装置 |
| CN112183015B (zh) * | 2020-11-04 | 2024-04-19 | 南京师范大学 | 一种面向深度神经网络的芯片布图规划方法 |
| CN113326864B (zh) * | 2021-04-06 | 2023-11-24 | 上海海洋大学 | 一种图像检索模型训练方法、装置及存储介质 |
| CN113378074A (zh) * | 2021-06-10 | 2021-09-10 | 电子科技大学 | 一种基于自监督学习的社交网络用户轨迹分析方法 |
| CN113468847A (zh) * | 2021-07-22 | 2021-10-01 | 上海立芯软件科技有限公司 | 一种基于非整数多倍行高单元的集成电路全局布局方法 |
-
2022
- 2022-10-12 TW TW111138600A patent/TWI828362B/zh active
- 2022-10-12 WO PCT/CN2022/124863 patent/WO2023061408A1/en not_active Ceased
- 2022-10-12 CN CN202280005976.0A patent/CN116324787A/zh active Pending
- 2022-10-12 US US18/042,423 patent/US20240289602A1/en active Pending
- 2022-10-12 US US18/042,439 patent/US20240289603A1/en active Pending
- 2022-10-12 CN CN202280005737.5A patent/CN116261727A/zh active Pending
- 2022-10-12 WO PCT/CN2022/124856 patent/WO2023061404A1/en not_active Ceased
- 2022-10-12 WO PCT/CN2022/124860 patent/WO2023061407A1/en not_active Ceased
- 2022-10-12 US US18/042,431 patent/US20240289527A1/en active Pending
- 2022-10-12 TW TW111138605A patent/TWI861573B/zh active
- 2022-10-12 TW TW111138601A patent/TWI853316B/zh active
- 2022-10-12 CN CN202280005736.0A patent/CN116261726A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1996318A (zh) * | 2006-01-03 | 2007-07-11 | 联发科技股份有限公司 | 半导体芯片、宏摆置的方法、多向密集堆积宏摆置器与多尺寸混合摆置设计方法 |
| TWI623844B (zh) * | 2013-07-05 | 2018-05-11 | 國立成功大學 | 適用於混合模組之平面規劃方法 |
| US20170004240A1 (en) * | 2015-07-01 | 2017-01-05 | Synopsys, Inc. | Netlist abstraction for circuit design floorplanning |
| US20180150583A1 (en) * | 2016-11-28 | 2018-05-31 | Ncku Research And Development Foundation | Method of macro placement and a non-transitory computer readable medium thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| TWI861573B (zh) | 2024-11-11 |
| TW202324183A (zh) | 2023-06-16 |
| WO2023061407A1 (en) | 2023-04-20 |
| CN116324787A (zh) | 2023-06-23 |
| CN116261727A (zh) | 2023-06-13 |
| WO2023061404A1 (en) | 2023-04-20 |
| WO2023061408A1 (en) | 2023-04-20 |
| US20240289602A1 (en) | 2024-08-29 |
| US20240289603A1 (en) | 2024-08-29 |
| TW202324204A (zh) | 2023-06-16 |
| TW202333078A (zh) | 2023-08-16 |
| US20240289527A1 (en) | 2024-08-29 |
| TWI853316B (zh) | 2024-08-21 |
| CN116261726A (zh) | 2023-06-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI828362B (zh) | 訓練用於巨集佈置的神經網路的方法及系統 | |
| Jakubův et al. | Hammering Mizar by learning clause guidance | |
| CN115146580B (zh) | 基于特征选择和深度学习的集成电路路径延时预测方法 | |
| Nguyen et al. | Particle swarm optimisation with genetic operators for feature selection | |
| US11741282B2 (en) | Reinforcement learning-based adjustment of digital circuits | |
| Lu et al. | Doomed run prediction in physical design by exploiting sequential flow and graph learning | |
| CN104486222B (zh) | 基于蚁群优化算法的小时延缺陷测试关键路径选择方法 | |
| Chang et al. | Flexible chip placement via reinforcement learning: late breaking results | |
| Hsiao et al. | Fasttuner: Transferable physical design parameter optimization using fast reinforcement learning | |
| Liu et al. | Concurrent sign-off timing optimization via deep Steiner points refinement | |
| CN102682158B (zh) | 基于时钟偏差规划算法的数字电路工作频率优化方法 | |
| Basso et al. | Effective analog ics floorplanning with relational graph neural networks and reinforcement learning | |
| Chang et al. | Flexible multiple-objective reinforcement learning for chip placement | |
| Faez et al. | MTLSO: A multi-task learning approach for logic synthesis optimization | |
| CN117993332A (zh) | 面向时序优化的版图驱动逻辑综合优化搜索方法和系统 | |
| He et al. | Reinforcement learning driven physical synthesis | |
| CN119416714B (zh) | 一种基于图可解释性的快速自动时序eco方法及系统 | |
| CN112016667A (zh) | 优化装置和优化方法 | |
| Tu et al. | SMART: Graph Learning-Boosted Subcircuit Matching for Large-Scale Analog Circuits | |
| CN120124541B (zh) | 一种逻辑综合优化算子序列生成方法 | |
| Qi et al. | Effective heterogeneous graph neural network for routing congestion prediction | |
| Chen et al. | Interactive analog IC layout tool with real-time parasitic-aware automatic routing assistance | |
| Kawamata et al. | Development of encoder-decoder predicting search process of level-set method in magnetic circuit design | |
| Won et al. | EDA Tool Parameter Optimization Through Fast and Reliable Machine-Learning based Rank Prediction Model | |
| Huggins et al. | Estimating Pareto Optimum Fronts to Determine Knob Settings in Electronic Design Automation Tools |


















