TW202333078A - 利用人工智慧方案的巨集佈置 - Google Patents
利用人工智慧方案的巨集佈置 Download PDFInfo
- Publication number
- TW202333078A TW202333078A TW111138605A TW111138605A TW202333078A TW 202333078 A TW202333078 A TW 202333078A TW 111138605 A TW111138605 A TW 111138605A TW 111138605 A TW111138605 A TW 111138605A TW 202333078 A TW202333078 A TW 202333078A
- Authority
- TW
- Taiwan
- Prior art keywords
- reward
- neural network
- macro
- placement
- training
- Prior art date
Links
- 238000013473 artificial intelligence Methods 0.000 title description 11
- 238000013459 approach Methods 0.000 title description 3
- 238000013528 artificial neural network Methods 0.000 claims abstract description 237
- 230000009471 action Effects 0.000 claims abstract description 86
- 238000012549 training Methods 0.000 claims abstract description 71
- 238000009826 distribution Methods 0.000 claims abstract description 46
- 239000013598 vector Substances 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 118
- 230000006870 function Effects 0.000 claims description 65
- 235000012431 wafers Nutrition 0.000 claims description 55
- 238000005070 sampling Methods 0.000 claims description 19
- 238000011156 evaluation Methods 0.000 claims description 12
- 238000005259 measurement Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 239000003795 chemical substances by application Substances 0.000 description 10
- 238000013461 design Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012938 design process Methods 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000002679 ablation Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001667 episodic effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
- Complex Calculations (AREA)
- Image Analysis (AREA)
- Character Discrimination (AREA)
- Image Processing (AREA)
- Testing Or Measuring Of Semiconductors Or The Like (AREA)
- Feedback Control In General (AREA)
- Traffic Control Systems (AREA)
Abstract
系統使用神經網路 (NN) 進行巨集佈置。系統接收包括目標和偏好子空間的輸入。每個偏好都是分配給相應目標的權重向量,每個目標都是對放置特徵的度量。該系統訓練 NN 將巨集(macro)佈置在一組訓練晶片上以優化根據目標和偏好計算的回報。神經網路生成在晶片當前狀態下動作的概率分佈,動作表示晶片上放置巨集的座標。NN 進一步生成一系列(狀態,動作)對以形成軌跡,軌跡中的最終狀態對應於完成的巨集佈置。
Description
本發明的實施例涉及基於機器學習(machine learning)和人工智慧 (artificial intelligence,AI)用於在半導體晶片上生成巨集佈置(macro placement)的方法和裝置。。
在積體電路 (IC) 設計中,巨集(macro)是可以被視為黑盒子(black box)的一組電路元件。巨集的邏輯和電子行為是給定的,但內部結構描述有可能已知也有可能未知。混合尺寸的巨集佈置是在晶片畫布(canvas)上放置各種尺寸的巨集以優化目標(例如線長)。 當需要實現多個目標時,巨集佈置問題會變得更加複雜。
在設計過程的早期階段,設計目標可能被估計得不準確。 例如,雖然總的線長與功耗呈正相關,但是直到實現和表徵與最終設計非常相似的大量原型之後,通常才能知道將線長估算值與功耗估算值聯繫起來的實際數學關係。目標估計不準確的其他原因可能包括: 加速計算的妥協;假設一種更適合優化的形式;隨著時間的推移改變製造參數,特別是對於前沿處理節點;從不同背景(context)中學習的目標,例如,從7nm制程中的學習以應用於5nm制程。
此外,各種目標之間的期望權衡常常直到設計過程的非常後期才能被準確地知道。由於現代片上系統(system-on-a-chip,SoC)的設計階段可能長達一年以上,客戶的需求可能在設計過程中發生了變化。前沿處理節點(leading-edge processing node)的製造參數也可能隨時間發生變化。 此外,整個SoC中的背景含義也是一個因素。例如,雖然擁塞與下游任務的難易程度密切相關,但可以容忍的擁塞量取決於其他背景因素,例如放置的電路所支援的饋通線(feed-through wires)的數量。 在構成 SoC 的各種其他電路的位置被凍結之前,這是未知的。
因此,需要改進用於巨集佈置的工具,使得這些工具可以處理設計目標和權衡的延遲知識。
在一個實施例中,提供了一種通過神經網路 (NN) 進行巨集(macro)佈置的方法。該方法包括接收包括多個目標和偏好子空間的輸入。每個偏好都是分配給相應目標的權重向量,每個目標都是對放置特徵的度量。 該方法還包括訓練 NN 將巨集佈置在晶片訓練組上,以優化根據目標和偏好計算的回報。 然後NN生成晶片當前狀態下動作的概率分佈,該動作表示晶片上放置巨集的座標。 NN 還生成一系列(狀態、動作)對以形成軌跡,其中軌跡中的最終狀態對應於完成的巨集佈置。
在另一個實施例中,提供了一種用於訓練 NN以執行巨集佈置的方法。 該方法包括接收一組目標軌跡,這些軌跡對應於訓練組中各個晶片上各個巨集的放置。每個目標軌跡中的最終狀態對應於目標放置的完成。 該方法還包括搜索所生成的目標回報大於學習回報的回報函數,其中目標回報是根據目標軌跡計算的並且學習回報是根據NN生成的軌跡計算的。 該方法還包括搜索參數以更新 NN,使得 NN 生成能使學習回報最大化的更新軌跡。
在又一個實施例中,提供了一種用於在晶片上放置無序巨集的方法。 NN生成在晶片當前狀態下的巨集排序動作的第一概率分佈,巨集排序動作是從要放置在晶片上的一組無序的巨集中選擇一個巨集。 NN進一步生成在晶片當前狀態下的定位動作的第二概率分佈,該定位動作在晶片上選擇座標用於放置巨集。 NN分別根據第一概率分佈和第二概率分佈對巨集排序動作和定位動作進行採樣。該方法還包括更新巨集排序遮罩以從一組無序的巨集中移除已放置的巨集,以及更新定位遮罩以阻擋晶片上的區域以用於後續放置剩餘巨集。
在結合附圖閱讀特定實施例的以下描述後,其他方面和特徵對於本領域習知技藝者將變得顯而易見。
在下面的描述中,闡述了許多具體細節。然而,應當理解,可以在沒有這些具體細節的情況下實踐本發明的實施例。在其他情況下,未詳細示出眾所周知的電路、結構和技術以免混淆對本發明的理解。然而,本領域習知技藝者將理解,可以在沒有這些具體細節的情況下實施本發明。本領域習知技藝者可以利用所包括的描述能夠實現適當的功能而無需過多的實驗。
在本發明中,描述了用於巨集佈置的兩階段(two-stage process)過程。在第一階段,該過程採用未經訓練的放置工具(placement tool)
和設計者輸入 ξ,其中ξ包括設計偏好子空間Ω和多個目標
,其中 K是目標的數量,並生成輸出EDA 工具
。 這個
可以採用特定的 𝜔∈Ω 來產生巨集佈置的相應的輸出實現。第一階段不產生佈局; 相反,它產生了一個可以優化多個目標的“放置工具”。第一步稱為多目標學習。 在第二階段,當設計偏好被確知時,將調用工具
來查找給定電路塊(也稱為“晶片”)的佈局。 第二階段稱為延遲的最終優化。在一個實施例中,放置工具可以是由計算系統執行的神經網路(neural network, NN)。
下面的描述參考流程圖公開了多種方法。這些方法可以由計算系統執行,例如第18圖中的系統1800,其中在系統1800上訓練諸如 NN 之類的放置工具。 此外,以下描述中的一些方法涉及“閾值”的使用。可以理解的是,不同方法/階段/操作/步驟中的閾值可以指代不同的數值。 如本文中所使用的,半導體晶片是也稱為晶片的積體電路塊。 巨集包含一組積體電路元件,晶片畫布是晶片上可以放置巨集的二維 (2D) 區域。
第1A圖是例示根據一個實施例的用於巨集佈置的NN 10的框圖。NN 10接收輸入,其中輸入包括狀態𝑠(巨集、網表圖、節點 ID)、網表元數據(netlist metadata)和偏好𝜔,每一個都被編碼到被稱為嵌入(embedding)的低維向量(low-dimension vector)中。NN 10 連接(concatenate)這些嵌入向量,以代表潛在狀態(latent state)。 這種潛在狀態被輸入到價值網路(value network)和策略網路(policy network)中。策略網路生成策略
,其中
是狀態 s 中動作𝑎的概率分佈。該動作指定畫布上用於放置巨集(macro)的座標。狀態是包括在其上放置的任何巨集的畫布(canvas)。 價值網路生成的值能預測動作𝑎的回報(reward)。NN 10 由 參數化,其表示用於定義 NN 10 的參數集。基於策略
,NN 10在畫布上應用遮罩(mask)並生成動作作為輸出。該動作是基於策略
以及隨機策略或確定性策略生成的。 在本發明中,遵循隨機策略的NN 10被稱為A000,而遵循確定性策略的NN 10被稱為A001。在一些實施例中,NN 10 可用於巨集佈置。
第1B圖是例示根據另一實施例的用於巨集佈置的NN 15的框圖。NN 10 和 NN 15 之間的區別在於 NN 15 不接收偏好 𝜔 作為輸入。NN 15 在畫布上應用遮罩並生成動作作為輸出。該動作是基於策略
以及隨機策略或確定性策略生成的。 在本發明中,遵循隨機策略的NN 15被稱為A002,而遵循確定性策略的NN 15被稱為A003。 在一些實施例中,NN 15可用於巨集佈置。
第2圖例示了根據一個實施例的巨集佈置過程。 給定晶片畫布和經過訓練的 NN 20,NN 20 執行動作
以將巨集1 放置在畫布的第一座標上。 對於多目標巨集佈置,NN 20 可以具有與 NN 10(第1A圖)或 NN 15(第1B圖)相同的網路結構。 此時畫布的狀態(在執行動作
後)表示為
。 更新遮罩210以指示巨集1周圍沒有被下一個巨集佔據的區域。NN 20接著執行動作
以將巨集2放置在畫布的未遮蔽部分的第二座標上。畫布狀態被更新為
,並且遮罩210 也被更新(未示出)以防止後續巨集與前兩個巨集不期望地重疊。 晶片放置過程一直持續直到所有巨集都放置在晶片畫布上。
第2圖例示的晶片放置過程產生一個(狀態,動作)對
的軌跡,用於放置 n 個巨集,其中最終狀態
表示具有已完成巨集佈置的晶片畫布。 對於給定的狀態,NN 20 被訓練為生成相應動作的概率分佈。在一個實施例中,NN 20 將遮罩210 應用於概率分佈,以在晶片畫布上發生動作的網格點上產生遮蔽分佈(masked distribution)。 使用確定性策略,NN 20 根據遮蔽分佈選擇概率最高的動作以放置巨集。使用隨機策略,NN 20根據遮蔽分佈對動作進行採樣,以放置巨集。
遮蔽分佈的示例如下。如果NN 20的策略網路(policy network)在5個可以發生動作的座標上生成的概率分佈為:
動作 1 | 動作 2 | 動作 3 | 動作 4 | 動作5 |
0.2 | 0.3 | 0.1 | 0.1 | 0.3 |
應用可以把發生動作1、2、4的區域遮擋住的遮罩,這種概率分佈變為如下的遮蔽分佈:
動作 1 | 動作 2 | 動作3 | 動作4 | 動作5 |
0 | 0 | 0.1/(0.1+0.3)=0.25 | 0 | 0.3/(0.1+0.3)=0.75 |
第3A圖是例示根據一個實施例的用於巨集佈置的兩階段過程300的流程圖。在第3A圖和後續圖的流程圖中,圓角的塊表示輸入/輸出,方角的塊表示操作。
在第一階段,給定了一個偏好子空間,但設計者的偏好是未知的或未確定的。 第一階段接收輸入,輸入包括兩組晶片(即訓練組(training set)和驗證組(validation set))、一組目標(即回報)
、偏好子空間Ω和未經訓練的神經網路NN。 未經訓練的神經網路NN可具有與NN10 (圖 1A) 相同的網路結構。 執行訓練階段以產生經訓練的NN 的輸出 (S101)。 在第二階段(也稱為延遲的最終優化),給定設計者的偏好。第二階段接收一個要放置巨集的新晶片、新的偏好 𝜔 和經過訓練的神經網路NN。 經訓練的神經網路根據確定性策略以及新偏好𝜔對軌跡進行採樣 (S102)。參考第1圖中的網路A001描述確定性策略。第二階段的輸出是放置了巨集的新晶片(即軌跡中的最終狀態
)。
第3B圖是例示根據另一實施例的用於巨集佈置的兩階段過程301的流程圖。 在第一階段,給定了一個偏好子空間,但設計者的偏好是未知的或未確定的。 第一階段與第3A圖中的兩階段過程300相同。第二階段(也稱為延遲的最終優化)與第一階段的不同之處在於,訓練組和驗證組均只包含一個新的要放置巨集的晶片,偏好子空間Ω只包含一個新的偏好
(設計者的偏好)。 在第一階段訓練的神經網路進一步在訓練階段被訓練(S101),然後使用確定性策略根據新的偏好
採樣軌跡(S102)。 參考第1A圖中的網路A001描述確定性策略。第二階段的輸出是放置了巨集的新晶片(即軌跡中的最終狀態
)。
在描述訓練階段 (S101) 的細節之前,在巨集佈置的背景中提供目標
的示例是有幫助的。目標是放置特性(placement characteristic)的測量。在一個實施例中,一組目標
可以包括
,它們分別代表用於放置
x的線長估計、關鍵路徑線長估計、擁塞估計和負鬆弛估計(negative slack estimate)。另一個目標,功耗估計
,可以從線長估計中匯出。這些目標、其他設計者特定的指標以及與放置設計相關的任何其他目標(例如,關鍵路徑時序)都可以通過使用多目標框架在彼此間權衡(traded against)。這種權衡由偏好
表示,
是偏好值陣列,其指示分配給相應目標的權重。 複合目標(composite objective)的一個示例是
,並且
之間的適當折衷至少取決於
PWL(
x) 和
NS(
x)。
在一個實施例中,該組目標
還可以包括位置目標。例如,在訓練
(例如,神經網路)時,輸入可以包括與畫布幾何形狀和巨集的預期位置相關的資訊。此資訊來自物理約束,例如引腳、I/O 埠、優選佈線路徑和標準單元放置的優選負空間(negative space)位置(如果設計者可以獲得此類資訊)。但是請注意,畫布上的遮擋(blockage)由遮罩處理,這與位置目標不同。
在一個實施例中,位置目標可以被建模為位置錨(positional anchors)。錨點是位置座標對以及對所選巨集的位置的影響權重。錨點α對巨集 m 的影響,表示為
,是一個正標量函數,其可以僅根據位置資訊計算。
與錨點對應的回報目標(reward objective)被形成為加權和:
只具有負權重的錨點被稱為負錨點,只具有正權重的錨點被稱為正錨點。在上面的回報目標的公式中,通過設置
,錨點可以被配置為僅影響巨集的一個子集。 在一個實施例中,針對距離函數 d的
,通常
或or
遠離。
其他位置目標可能包括以下內容。正錨點用於將某些巨集吸引向該錨點的位置。 假設有一個正錨點m。 巨集 i 連接到該錨點。目標函數中增加了一個附加項
。在假定是模擬吸引力時,
為負。正錨點的位置通常由設計者選擇。負錨點用於將某些巨集從該錨點的位置排斥。 假設有一個負錨點 m。 巨集 j 連接到該錨點。 目標函數中增加了一個附加項
。 假定是模擬排斥力,
為正。負錨點的位置通常由設計者選擇。引腳是導線穿過畫布邊界的地方。 如果在佈局之前未確定該導線的位置,則使用預期引腳。因此,對於每次佈局嘗試,都會在多個選擇中隨機選擇預期引腳的位置。一旦設計者指定了這些選擇,這些選擇的集合就會包含在輸入參數ξ的向量中,這有助於訓練最終的 EDA 工具
(例如,神經網路)。
返回參考第3A圖和第3B圖,在一個實施例中,訓練階段(S101)由計算系統執行以訓練NN(例如,第1A圖中的NN 10)來執行巨集佈置。訓練階段(S101)的細節將在下面參考第4圖至第7圖進行描述。
第4圖是根據一個實施例的第3A圖和第3B圖中訓練階段(S101)的流程圖。當計算系統收到輸入時,訓練階段開始,其中輸入包括晶片的訓練組(training set)、晶片的驗證組(validation set)、一組目標、偏好子空間和未經訓練的NN。訓練組中的每個晶片都具有待放置在其上的一組相應的巨集。 在一個實施例中,每個晶片的巨集的放置順序是給定的;也就是說,巨集按順序放置。參考第15圖至第17圖描述了巨集被無序放置的實施例。
訓練階段包括由NN執行的三個操作:樣本收集操作(S111)、訓練操作(S112)和評估操作(S113)。 當回報(在第7圖中計算)達到預定閾值時,訓練階段完成(S410)。 否則,重複這三個操作,直到回報函數達到閾值。 訓練階段的輸出是經過訓練的NN(S420)。
第5圖是根據一個實施例的樣本收集操作(S111)的流程圖。 在樣本收集操作中,神經網路NN從訓練組中採樣一個晶片,並從偏好子空間中隨機選擇偏好(S510)。 NN 還使用隨機策略根據偏好 𝜔 採樣(即生成)軌跡 (S520)。 參考第1A圖中的網路A000描述隨機策略。為了生成軌跡,NN 使用當前狀態
和偏好𝜔作為輸入(S521)。 NN根據隨機策略輸出動作
,以相應地將巨集放置到採樣晶片上(S522)。 重複S521和S522直到所有的巨集被放置(S523),並且軌跡由(狀態,動作)對的序列形成。 然後將軌跡存儲在緩衝器中(S530)。當緩衝器中的軌跡數量達到閾值時(S540),緩衝器被提供作為第6圖所示的訓練操作(S112)的輸入。
第6圖是根據一個實施例的訓練操作(S112)的流程圖。訓練操作(S112) 的輸入包括一組目標(即回報)
、偏好子空間 Ω、軌跡緩衝器和 NN(來自第5圖)。緩衝器中的軌跡是在樣本收集操作 (S111) 中生成的。 訓練操作以NN從緩衝器中採樣一小批軌跡開始 (S610)。 NN基於採樣的一小批(mini-batch)軌跡計算損失函數
(S620),並基於梯度下降更新NN的參數θ(S630):
,其中 η 是學習率(learning rate)。 重複S610、S620和S630直到更新次數達到預定閾值(S640)。當達到預定閾值時,NN具有更新的參數θ(S650)。從下面的數學公式中可以看出,NN參數的更新基於損失函數,該損失函數是偏好ω和參數θ的函數。
下面提供訓練操作(S112)的數學公式。訓練操作 (S112) 可以表示為多目標瑪律可夫決策過程(multi-objective Markov decision process,MOMDP)
,我們指的是具有狀態空間
和動作空間
以及固定轉換動態的MDP,具有一組索引為
i的回報信號,其中回報(目標)信號
i表示為
。 該公式還包括偏好參數
,其中
是 K 維向量。 在巨集佈置的背景中,求和的回報
。
如在 (s;ω) 和 (a;ω)中,狀態和動作都由
索引,以表示對標準 MDP 的相應限制。受限制的 MDP 表示為
。此外,本文採用情景(episodic)強化學習(reinforcement learning,RL) 的設置,其中有一個明確定義的與ω無關的初始狀態
。
可以使用具有廣義優勢估計(generalized advantage estimation)的近端策略優化 (Proximal Policy Optimization,PPO) 梯度估計器,來計算 NN 參數更新。對於多目標巨集佈置問題的應用,損失函數包括:
價值函數(s;θ),它接收偏好
作為輸入(即
)。價值損失是基於輸入狀態和從緩衝器採樣的
值計算的。
熵損失(entropy loss)
,它是狀態中策略頭(policy head)的熵值的平均值,可以控制策略
的隨機性。
具體來說,價值函數
輸出的是一個K維向量,使得
價值網(value net)
用來表示價值函數,給定長度-T軌跡內的估計優勢(estimated advantage)可以寫成:
我們定義策略函數為
,並且定義
,則 損失函數變為:
其中
。
在訓練過程中,找到一個新的
' 可以最大化損失函數
這個新的
'用於計算
和
以便神經網路的策略可以推廣到各種
'並且可以避免與錯誤的偏好不一致。
最後,參數θ的更新機制為:
,即訓練操作(S112)的S630中的參數更新公式。
第7圖是根據一個實施例的評估操作(S113)的流程圖。 評估操作(S113)的輸入包括一組晶片(即驗證組)、一組目標(即回報)
、偏好子空間Ω,以及具有更新參數θ的 NN(來自第6圖)。 評估操作(S113)以NN採樣一個晶片和隨機偏好ω~Ω開始,其中
(S710)。NN 使用確定性策略基於偏好𝜔 採樣(即生成)軌跡(S720)。參考第1A圖中的網路A001描述確定性策略。為了生成軌跡,NN 使用當前狀態
和偏好𝜔作為輸入(S721)。NN根據隨機策略輸出動作
,以相應地將巨集放置到採樣晶片上(S722)。 重複S721和S722直到所有的巨集被放置(S723),並且軌跡由(狀態,動作)對的序列形成。接著NN根據軌跡中的最終狀態
計算回報
並收集此回報(S730)。重複S710、S720(包括S721-S723)和S730,直到收集的回報數量達到預定閾值(S740)。 NN 然後對所有收集的回報進行平均(S750)並輸出單個回報值(S760)。
返回參考第4圖,在評估操作(S113)之後,將單個回報值與閾值進行比較(S410)。重複操作S111、S112和S113,直到從評估操作(S113)輸出的單個回報值達到閾值。此時,神經網路NN被訓練(S420)。可以為經過訓練的 NN 提供輸入,其中輸入包括新的偏好以及新的晶片和要放置的巨集。
下面的公開內容描述了針對具有難以制定目標的巨集佈置問題的解決方案。有時,在檢查經訓練的 NN 所產生的巨集佈置後,設計者會意識到佈局不符合預期。在這種情況下,設計者可以選擇向神經網路注入提示或修改提示。在提示的指導下,NN 可以產生更理想的放置結果。
在很多情況下,設計者很難直接制定出具有合適
的設計意圖。 例如,有時設計者希望保持佈局與之前經試驗和驗證過的佈局相似,即使以小幅減少實現的目標為代價。很難制定出一個合適的偏好參數
來促進設計者的意圖。 再舉一個例子,在嘗試放置中,引腳的位置(即,導線穿過分配的放置區域週邊時的二維座標)尚不清楚,儘管設計者大致知道這一點。 在這種情況下,設計者可以提供引腳位置的模糊想法作為提示。作為又一示例,設計者可能不具有使用偏好
的知識。
在一個實施例中,經過訓練的 NN 可以生成多種佈局,並且設計者可以對這些佈局的可取性進行排序,或者選擇最佳佈局作為用於改進的候選者。根據設計者的反應,NN 可以搜索隱藏的設計者偏好並生成設計者滿意的佈局。
巨集佈置的複合目標的示例可以如下:
其中
和
是由於正錨點和負錨點引起的線長。
假設偏好值
和
未知。 NN 可以生成多個軌跡樣本來詢問設計者,並根據設計者的回應反覆運算搜索合適的
和
值。參數搜索的方法將參考第8圖和第9圖進行描述。
第8圖是例示根據一個實施例的基於設計者的提示的巨集佈置方法800的流程圖。 方法800的輸入包括要放置巨集的新晶片、一組目標(即回報)
、偏好子空間 Ω 和經過訓練的神經網路NN。 NN可以具有與NN 10(第1A圖)相同的網路結構。 在一個實施例中,NN 已經通過參考第4圖至第7圖公開的方法進行了訓練。NN 從新晶片的偏好子空間 Ω (S810) 中採樣p個隨機偏好
。NN 基於採樣的偏好進一步採樣 p 個軌跡(S820)。 軌跡採樣(S820)將參考第9圖進一步解釋。p個軌跡對應p個佈置(placement);每個佈置是每個軌跡中與p 個偏好之一對應的最終狀態
。系統向設計者示出(例如,顯示)p個佈置(S830)。設計者可以接受佈置之一(S840),並且方法800以所接受的佈置作為輸出而終止(S850)。 如果設計者不接受 p 個佈置中的任何一個,則設計者可以選擇佈置之一及其相應的偏好
進行改進(S860)。 所選佈置可以最接近設計者的潛在偏好。 NN 然後通過設計者選擇的偏好
中的小擾動生成另外的 p個偏好
(S870)。 例如,腳本(script)可以通過相應的一個或多個delta(增量)值來修改
中的一個或多個偏好值
,其中每個delta值在預定值範圍內(例如,在+/- 的範圍內)。重複S820、S830 和 S840,直到設計者接受 NN 生成的佈局之一。 與接受的佈局對應的偏好是設計者的潛在偏好(hidden preference)。
第9圖是根據一個實施例的軌跡採樣方法900的流程圖。 NN執行方法900作為第8圖中S820的一部分。方法900的輸入包括用於放置的新晶片、經過訓練的NN、一組目標(即回報)
、p個偏好
。 從 p 個偏好中,NN 選擇之前未被選擇的偏好𝜔 (S910)。 然後,NN 使用確定性策略根據選定的偏好𝜔 對軌跡進行採樣(S920)。 確定性策略參考第1A圖中的A001進行描述。軌跡採樣還包括將當前狀態
(即晶片的畫布)和偏好𝜔輸入到NN(S921),NN確定性地輸出動作
並根據動作將巨集佈置到晶片上(S922 )。重複S921和S922直到所有的巨集都被放置在晶片上(S923)。 重複 S910 和 S920(以及 S921-S923)直到選擇了 p 個偏好(S930),這意味著生成p個相應的軌跡。 NN輸出p個軌跡,每個軌跡由狀態-動作對
形成(S940)。
另一種難以公式化目標的方法是一種通過逆強化學習推斷潛在回報函數(hidden reward function)的機制。該機制基於設計者對放置樣本的演示。通過這種方法,學習者(例如 AI 代理)嘗試學習簡報者的潛在回報機制。訓練資料是演示軌跡,也稱為目標軌跡
,其中每個
是放置樣本(placement sample)的軌跡。給定這些目標軌跡,AI 代理(AI agent)會搜索潛在回報函數
。 在一個實施例中,AI代理是NN。 可以在諸如第18圖中的系統1800的計算系統上訓練AI代理。
第10A圖是根據一個實施例的AI代理用來搜索回報函數的回報搜索NN(稱為A004)的框圖。 給定的輸入包含巨集佈置的軌跡τ,回報搜索NN應用圖神經網路 (graph neural network,GNN) 對τ進行編碼並將τ嵌入到潛在狀態中。 回報搜索 NN 包括回報網路 1010,其處理潛在狀態(latent state)並輸出回報 R(τ)。 參考第12圖描述回報搜索NN的回報搜索操作。
第10B圖是根據一個實施例的由AI代理用來搜索回報函數的搜索工具A005的框圖。 在此示例中,由電子設計自動化(electronic design automation,EDA)工具1020獲得一組目標。每個EDA工具1020計算一個目標(例如,線長、時序或要放置在晶片上的巨集的密度)。在計算出目標之後,具有權重(即偏好)𝜔 的線性模型1030計算權重和目標的線性組合,並將計算出的線性組合作為回報R(τ)輸出。回報被反覆運算地用於更新AI代理的參數,在一些實施例中AI代理可以是未經訓練的NN,例如第1A圖中的A000或第1B圖中的A002。參考第14圖描述線性模型1030的操作。
第11圖是例示根據一個實施例的用於訓練NN以產生巨集佈置的方法1100的流程圖。 NN可以是第1B圖中的NN 15。方法 1100 遵循生成性對抗網路(Generative Adversarial Network)的框架,其中策略π 是生成器,回報函數 R(τ) 是鑒別器。
在時間 T=0,具有策略
的 NN 被隨機初始化以產生軌跡
,並且回報函數
被隨機初始化。 在時間T=t時,系統首先搜索滿足約束
的回報函數
(S1110),因為
是黃金樣本(golden samples)集。回報
稱為目標回報,
稱為學習回報。可以使用第12圖中所示的方法1200由例如第10A圖中A004的另一個NN執行回報搜索。如果可以找到滿足約束的
(S1120),則 NN 接下來搜索策略
,其樣本(即軌跡)
可以最大化
(S1130)。 策略搜索可以由 NN 使用第6圖中所示的訓練操作但不使用偏好ω來執行。重複 S1110-S1130,直到不可能(例如,在時間限制內)找到滿足
的回報函數
。 此時,NN 的策略
與簡報者(demonstrator)的策略
沒有區別。 換句話說,NN 能夠無差別地模仿簡報者的行為。方法1100終止並輸出訓練的NN(S1140)。
第12圖是例示根據一個實施例的用於更新回報函數的方法1200的流程圖。可以通過反覆運算地更新回報函數來執行S1120(第11圖)的回報搜索。 方法1200的輸入包括:演示軌跡
,(其中
是狀態和動作(
s,
a)的軌跡)、利用策略
由第11圖中的 NN (A002) 生成的軌跡
、由例如第10A圖 中A004的另一個 NN 實現的用於回報函數
的回報更新網路。
方法 1200 開始于回報更新網路分別從
和
中採樣兩小批量軌跡
和
(S1210)。 回報更新網路根據這個小批量計算損失函數
(S1220)。回報更新網路基於梯度下降
更新回報函數
)的參數,其中η是學習率(learning rate),θ是回報函數的參數(S1230)。重複S1220和S1230直到更新次數達到閾值,或
(S1240)。 方法1200的輸出是更新的回報函數
(S1250)。
逆向強化學習也可以用來推斷每個目標
的未知偏好值
。 在一個實施例中,回報函數是偏好值和相應目標的線性組合:
,且
是尋找新
的約束條件。當學習中斷時(即沒有 R(τ) 可以滿足
),輸出是每個目標的期望偏好
。
第13圖是例示根據另一實施例的用於訓練NN以產生巨集佈置的方法1300的流程圖。NN可以是第1A圖中的NN 10。除了方法 1100(第11圖)的所有輸入之外,方法 1300 的輸入還包括偏好子空間 Ω 和一組目標
。 此外,方法1300中的回報函數是目標和相應偏好值的線性組合;即回報函數
。在一個實施例中,回報函數可由搜索工具A005(第10B圖)更新,其使用線性模型1030來計算回報函數。
在時間T=t,系統首先搜索滿足約束
的偏好向量
(S1310)。如果可以找到滿足約束的偏好向量
(S1320),則NN接著搜索策略
,策略
的樣本(即軌跡)
能最大化
(S1330)。
偏好搜索可以通過使用第14圖中所示的方法1400由諸如第10B圖中A005的搜索工具來執行。策略搜索可以由 NN 使用第6圖中所示的訓練操作來執行,但僅使用偏好空間Ω中的一個固定的偏好向量
。重複S1310-S1330直到不可能(例如,在時間限制內)滿足S1320的約束。此時,方法1300終止並輸出經過訓練的NN以及輸入中目標集的偏好向量
(S1340)。
第14圖是例示根據另一實施例的用於更新回報函數的方法1400的流程圖。可以通過反覆運算更新偏好來執行S1320(第13圖)的回報搜索。除了方法 1200(第12圖)的所有輸入之外,方法1400 的輸入還包括偏好子空間 Ω 和目標集
。 此外,方法1400中的回報函數是目標和相應偏好值的線性組合; 即回報函數
。 在一個實施例中,偏好可由搜索工具A005(第10B圖)更新,其使用線性模型1030來計算回報函數。
方法 1400 開始於搜索工具分別從
和
中採樣兩個小批量軌跡
和
(S1410)。搜索工具基於該小批量軌跡計算損失函數
(S1420)。 搜索工具基於梯度下降
更新參數ω,其中η是學習率(S1430)。 重複S1420和S1430,直到更新次數達到閾值,或
(S1440)。 方法1400的輸出是更新後的偏好ω(S1450)。 回報函數可以通過更新的偏好和目標的組合來獲得。
下面公開內容描述了用於確定巨集佈置的依次放置順序的解決方案。 通常,巨集佈置使用固定的巨集佈置順序,這通常由人類專家根據一組試探法(heuristics)確定。如果選擇任意順序,訓練 NN 的速度可能不如試探法給出的順序。
此處公開了一種方法用來改進確定放置順序。可以訓練神經網路在更新放置策略π的同時學習巨集排序策略ρ。 也就是說,要放置在給定晶片上的巨集是無序的。 NN 可以用多個隨機巨集順序進行訓練,並且可以收集經驗來更新π。在消融(ablation)研究中,注意到π的收斂性可能不受巨集排序的影響,但收斂速度可能會受到某些次優巨集順序的不利影響。 還需要注意的是,經過訓練的 NN 可以在未完全優化的巨集排序策略 ρ 下表現良好。
在一個實施例中,策略 ρ 由神經網路(例如,第16圖 中的 A006)參數化,神經網路將畫布狀態 s 的 GNN 表示以及所有節點的 GNN 嵌入作為輸入。動作空間是一個離散的動作空間,每個索引對應一個特定的節點,策略輸出這些選擇的softmax。一個獨立的遮罩
從動作空間中消除對先前放置的巨集的選擇。
巨集排序策略ρ可以具有與π相同的目標和相同的回報,並且可以受益於上述參考第3A圖和第4圖中的訓練階段S101所描述的相同的緩衝器收集過程和價值函數。
第15圖是例示根據一個實施例的利用巨集順序遮罩(macro order mask)1520的巨集佈置過程的示意圖。 給定晶片畫布和經過訓練的神經網路NN,NN執行動作
以確定要放置的第一個巨集(例如,M3),並執行動作
以將 M3 放置在畫布的第一個座標上。 此時畫布的狀態(在執行動作
和
之後)表示為
。 更新巨集順序遮罩1520以遮罩掉已經放置的巨集(M3),並且更新遮罩1510以指示M3周圍的沒被下一個巨集佔據的區域。 遮罩1510也稱為定位遮罩(positional mask)。 NN 然後執行動作
以確定要放置的第二個巨集(例如,M5),並執行動作
以將 M5 放置在畫布的未被遮蔽部分的第二座標上。畫布狀態更新為
,遮罩1510 和 1520 也更新(未顯示)。 巨集佈置過程一直持續到所有巨集都放置在畫布上為止。
第16圖是例示根據一個實施例的用於將無序的巨集放置在電路塊上的NN 30的框圖。NN 30 也稱為 A006。 為了生成動作,NN 30 接收包括狀態 𝑠(巨集、網表圖、節點 ID)和網表元數據的輸入,狀態𝑠和網表元數據每一個都被編碼到稱為嵌入(embedding)的低維向量中。NN 30 連接嵌入向量以表示潛在狀態(latent state)。 這種潛在狀態被輸入到價值網路、策略網路和巨集順序網路(macro-order network)中。策略網路生成策略
,其中
是動作𝑎 的概率分佈。 價值網路生成可以預測動作𝑎 回報的價值。 巨集順序網路生成策略
,其中
是動作 m 上的概率分佈。 根據策略
和
,NN 30 在畫布上應用定位遮罩1610 以阻擋被已放置的巨集所佔用的區域、以及在已放置的巨集上應用巨集順序遮罩1620,並確定下一個動作
a和 m 作為輸出。輸出動作可以隨機確定。
可以根據在同一軌跡緩衝器和同一回報信號中收集的經驗,同時訓練策略ρ 和 π。為了克服多代理體系統動力學(multi-agent system dynamics)的冷開機(cold start)問題(例如,代理集體陷入非改進的遞迴迴圈),可以通過一組試探法(heuristics)的模仿學習來初始化ρ的權重。
第17圖是例示根據一個實施例的用於訓練NN以將無序巨集佈置在電路塊上的方法1700的流程圖。輸入包括設計者演示的軌跡
,其中
是狀態和動作(
s,
m,
a) 的軌跡;未訓練的NN(例如,第16圖中的A006)具有策略
和
及其軌跡
;隨機初始化的回報函數
;時間戳記 t=0。 NN由第11圖的方法1100訓練(S1710),其中同時搜索策略
和
。 NN由第4圖的訓練階段S101 (S1720)進一步訓練,其中策略
和
被同時訓練。 在某些情況下,輸入還可以包括偏好子空間和一組目標。 在偏好子空間不是輸入的其他場景下,可以在訓練階段S101跳過偏好子空間的採樣。方法 1700 的輸出是經過訓練的 NN (S1730)。 經過訓練的 NN 根據策略
和
運行,以針對軌跡中的每一步,確定動作 m用於選擇要放置的巨集以及確定動作 a用於選擇座標以放置所選巨集。
第18圖例示了根據一個實施例的系統1800的示例。 系統1800包括處理硬體1810、記憶體1820和網路介面1830。在一個實施例中,處理硬體1810可以包括一個或多個處理器和加速器,例如以下的一個或多個:中央處理單元(CPU)、GPU、數文書處理單元(DSP)、AI處理器、張量(tensor)處理器、神經處理器、多媒體處理器、其他通用和/或專用處理電路。
系統1800還包括耦接到處理硬體1810的記憶體1820。記憶體1820可以包括諸如動態隨機存取記憶體(DRAM)、SRAM、快閃記憶體和其他非暫時性機器可讀存儲介質的記憶體設備;例如,易失性或非易失性存放裝置。記憶體1820還可以包括例如任何類型的固態或磁存放裝置的存放裝置。 在一個實施例中,記憶體1820可以存儲一個或多個EDA工具1840,包括但不限於神經網路、AI代理和用於巨集佈置的其他工具。 EDA工具1840的示例包括A000和A001(第1A圖)、A002和A003(第1B圖)、A004(第10A圖)、A005(第10B圖)和A006(第16圖)。 在一些實施例中,記憶體1820可以存儲指令,這些指令在由處理硬體1810執行時使處理硬體執行上述用於巨集佈置和/或用於訓練NN執行巨集佈置的方法和操作。 然而,應當理解,上述方法和操作可以由A000和A001(第1A圖)、A002和A003(第1B圖)、A004(第10A圖)、A005(第10B圖) 和A006 (第16圖)的實施例以外的實施例來執行。
在一些實施例中,系統1800還可以包括網路介面1830以連接到有線和/或無線網路。 可以理解,第18圖的實施例為了說明的目的而被簡化了,其還可以包括額外的硬體元件。
第19圖是示出根據一個實施例的由NN進行巨集佈置的方法1900的流程圖。方法1900可以由第18圖中的系統1800執行。方法1900開始於系統接收包括多個目標和偏好子空間的輸入(S1910)。每個偏好都是分配給相應目標的權重向量,每個目標都是對放置特徵的度量。NN 被訓練為將巨集佈置在一組訓練晶片上,以優化根據目標和偏好所計算的回報(S1920)。 NN生成在晶片當前狀態下動作的概率分佈,該動作指示晶片上放置巨集的座標(S1930)。NN進一步生成一系列(狀態,動作)對以形成軌跡(S1940)。 軌跡中的最終狀態對應於完成的巨集佈置。
在一個實施例中,訓練NN的方法包括將來自子空間的採樣偏好編碼到NN的潛在狀態(intent state)中。可以根據來自子空間的採樣偏好與相應目標的線性組合來計算回報。
系統應用遮罩(mask)來阻擋晶片上的區域。將此遮罩應用於概率分佈,在晶片上產生遮蔽分佈(masked distribution)。 在基於隨機策略的一個實施例中,NN根據遮蔽分佈對動作進行採樣。NN根據隨機策略進一步在樣本收集操作中採樣一組軌跡,系統使用該組軌跡來計算對NN參數的更新。 在另一個基於確定性策略的實施例中,NN根據遮蔽分佈選擇具有最高概率的動作。 NN 根據確定性策略在評估操作中採樣一組軌跡。 然後系統根據多個回報值計算最終回報值,並且基於其中一個軌跡的最終狀態計算每個回報值。
在一個實施例中,在訓練NN之後,系統接收給定的偏好和要在其上放置巨集的給定晶片。系統使用給定偏好和給定晶片上的隨機採樣軌跡進一步訓練NN。 然後使用進一步訓練的 NN 對最終軌跡進行採樣,以生成完整的巨集佈置。
在一個實施例中,目標包括至正錨點和負錨點中的至少一個的距離。正錨點吸引巨集的第一子集的放置,而負錨點排斥巨集的第二子集的放置。
在一個實施例中,系統可以使用NN來生成一組佈局以將同一組巨集放置在給定晶片上,並且每個佈局是基於不同的偏好來生成的。系統然後接收該組佈局中候選佈局的指示。候選佈局是根據候選偏好生成的。 系統修改候選偏好以生成 p 個偏好。 NN 然後生成一組後續的 p 放置,以將同一組巨集放置在給定的晶片上。 重複該過程,直到最終佈局被接受。 在一個實施例中,為了修改候選偏好,系統可以通過相應的一個或多個增量值來修改候選偏好的一個或多個向量元素,其中每個增量值在預定值範圍內。
第20圖是例示根據一個實施例的用於訓練NN以執行巨集佈置的方法2000的流程圖。方法2000可以由第18圖中的系統1800執行。方法 2000開始於系統接收一組目標軌跡,這些軌跡對應於訓練組中各個晶片上各個巨集的放置(S2010)。每個目標軌跡中的最終狀態對應於目標放置的完成。然後系統搜索回報函數,該回報函數可產生大於學習回報(learned reward)的目標回報(target reward)(S2020)。目標回報是根據目標軌跡計算的,學習回報是根據神經網路NN所生成的軌跡計算的。系統進一步搜索參數來更新 NN,使得 NN 生成可使學習回報最大化的更新軌跡(S2030)。
在一個實施例中,重複搜索回報函數和搜索參數的過程,直到找不到所產生的目標回報大於學習回報的回報函數為止。在一個實施例中,回報函數由第二NN計算以輸出目標回報和學習回報。當搜索回報函數時,可以通過將梯度下降應用到由目標回報和學習回報之間的差所定義的損失函數(loss function)來更新第二NN的參數。在另一個實施例中,回報函數是偏好和相應目標的線性組合。
第21圖是例示根據一個實施例的用於放置無序巨集的方法2100的流程圖。方法2100可以由第18圖中的系統1800執行。方法2100開始於NN在晶片的當前狀態下生成巨集排序(macro-order)動作的第一概率分佈(S2110)。巨集排序動作是從待放置在晶片上的一組無序的巨集中選擇一個巨集。NN進一步在晶片當前狀態下生成定位動作(positional action)的第二概率分佈(S2120)。 定位動作是在晶片上選擇一個用來放置巨集的座標。 NN分別基於第一概率分佈和第二概率分佈對巨集排序動作和定位動作進行採樣(S2130)。 然後更新巨集排序遮罩,從該組無序的巨集中移除已放置的巨集(S2140),並且也更新定位遮罩(positional mask),以阻擋晶片上的區域用於後續放置剩餘巨集 (S2150)。
在一個實施例中,NN被訓練成根據由第一組參數所參數化的巨集排序策略生成第一概率分佈。 NN 被進一步被訓練成根據由第二組參數所參數化的動作策略生成第二概率分佈。第一組參數和第二組參數被同時訓練。
當訓練NN時,系統可以接收一組目標軌跡,其對應於訓練組中各個晶片上各個巨集的放置。每個目標軌跡中的最終狀態對應於目標放置的完成。然後系統搜索回報函數,該回報函數可產生大於學習回報(learned reward)的目標回報(target reward)。目標回報是根據目標軌跡計算的,學習回報是根據神經網路NN所生成的軌跡計算的。系統進一步搜索參數來更新 NN,使得 NN 生成可使學習回報最大化的更新軌跡。
在一個實施例中,可以在以下過程中訓練NN。系統首先使用NN根據隨機策略(stochastic policy)在樣本收集操作中對一組第一軌跡進行採樣。 然後,系統使用從第一軌跡計算的損失函數,在訓練操作中更新 NN 的參數。該系統在評估操作中從多個回報值中計算出最終回報值。每個回報值是基於由具有更新參數的NN所生成的第二軌跡之一的最終狀態計算的。重複該過程,直到最終回報值達到閾值。
本文已經描述了各種功能元件或塊。如本領域習知技藝者將理解的,功能塊將優選地通過電路(在一個或多個處理器和編碼指令的控制下操作的專用電路或通用電路)來實現,電路通常包括被配置為根據本文描述的功能和操作來控制電路操作的電晶體。
雖然本發明已根據幾個實施例進行了描述,但本領域習知技藝者將認識到本發明不限於所描述的實施例,並且可以在所附權利要求的精神和範圍內進行修改和變更來實踐。因此,本發明的描述被認為是說明性的而不是限制性的。
10,15,20:NN
210:遮罩
300,301:兩階段過程
S101,S102:步驟
S111,S112,S113:步驟
S410,S420:步驟
S510~S540,S521~S523:步驟
S610~S650:步驟
S710~S760,S721~S723:步驟
800,900:方法
S810~S870:步驟
S910~S940,S921~S923:步驟
1020:EDA工具
1030:線性模型
1100,1200,1300,1400:方法
S1110~S1140,S1210~S1250,S1310~S1340,S1410~S1450:步驟
1520,1620:巨集順序遮罩
1510,1610:遮罩(定位遮罩)
30:NN
1700:方法
S1710~S1730:步驟
1800:系統
1810:處理硬體
1820:記憶體
1830:網路介面
1840:EDA工具
1900,2000,2100:方法
S1910~S1940,S2010~S2030,S2110~S2150:步驟
本發明通過示例的方式而非限制的方式在附圖中進行說明,在附圖中相似的參考標號指示相似的元素。 應當注意,在本公開中對“一個”或“個”實施例的不同引用不一定是指相同的實施例,並且這樣的引用表示至少一個。 此外,當結合實施例描述特定特徵、結構或特性時,認為在本領域習知技藝者的知識範圍內可結合其他實施例來實現此類特徵、結構或特性,無論是否進行明確描述。
第1A圖是例示根據一個實施例的用於巨集佈置的NN的框圖。
第1B圖是例示根據另一實施例的用於巨集佈置的NN的框圖。
第2圖例示了根據一個實施例的巨集佈置過程。
第3A圖是例示根據一個實施例的用於巨集佈置的兩階段過程的流程圖。
第3B圖是例示根據另一實施例的用於巨集佈置的兩階段過程的流程圖。
第4圖是根據一個實施例的第3A圖和第3B圖中訓練階段(S101)的流程圖。
第5圖是根據一個實施例的樣本收集操作(S111)的流程圖。
第6圖是根據一個實施例的訓練操作(S112)的流程圖。
第7圖是根據一個實施例的評估操作(S113)的流程圖。
第8圖是示出根據一個實施例的基於設計者的提示的巨集佈置方法的流程圖。
第9圖是根據一個實施例的軌跡採樣方法的流程圖。
第10A圖是根據一個實施例的回報搜索NN的框圖。
第10B圖是根據一個實施例的搜索工具的框圖。
第11圖是圖示根據一個實施例的用於訓練NN以產生巨集佈置的方法的流程圖。
第12圖是圖示根據一個實施例的用於更新回報函數的方法的流程圖。
第13圖是圖示根據另一實施例的用於訓練NN以產生巨集佈置的方法的流程圖。
第14圖是示出根據另一實施例的用於更新回報函數的方法的流程圖。
第15圖是圖示根據一個實施例的使用巨集順序遮罩的巨集佈置過程的圖。
第16圖是圖示根據一個實施例的用於將無序巨集佈置在電路塊上的NN的框圖。
第17圖是圖示根據一個實施例的用於訓練NN以將無序巨集佈置在電路塊上的方法的流程圖。
第18圖圖示了根據一個實施例的系統的示例。
第19圖是示出根據一個實施例的由NN進行巨集佈置的方法的流程圖。
第20圖是圖示根據一個實施例的用於訓練NN以執行巨集佈置的方法的流程圖。
第21圖是圖示根據一個實施例的用於放置無序巨集的方法的流程圖。
1900:方法
S1910~S1940:步驟
Claims (20)
- 一種神經網路的巨集佈置方法,包括: 接收包括多個目標和偏好子空間的輸入,其中每個偏好是分配給相應目標的權重向量,並且每個目標是放置特徵的度量; 訓練所述神經網路以將多個巨集放置在晶片訓練組上,以優化從所述多個目標和所述偏好計算的回報; 由所述神經網路生成在晶片的當前狀態下動作的概率分佈,所述動作指示在所述晶片上放置巨集的座標;以及 由所述神經網路生成一系列(狀態,動作)對以形成軌跡,其中所述軌跡中的最終狀態對應於完成的巨集佈置。
- 如請求項1之方法,其中訓練所述神經網路包括將來自所述子空間的採樣偏好編碼成所述神經網路的潛在狀態。
- 如請求項1之方法,其中根據來自所述子空間的採樣偏好和相應目標的線性組合來計算所述回報。
- 如請求項1之方法,其中生成所述動作的概率分佈還包括: 將遮罩應用於所述概率分佈以在所述晶片上產生遮蔽分佈,其中所述遮罩阻擋所述晶片上的區域;以及 基於隨機策略,根據所述遮蔽分佈對所述動作進行採樣。
- 如請求項4之方法,其中訓練所述神經網路還包括: 根據所述隨機策略在樣本收集操作中對一組軌跡進行採樣;以及 使用所述一組軌跡來計算對所述神經網路的參數的更新。
- 如請求項1之方法,其中生成所述動作的概率分佈還包括: 將遮罩應用於所述概率分佈以在所述晶片上產生遮蔽分佈,其中所述遮罩阻擋所述晶片上的區域;以及 基於確定性策略,根據所述遮蔽分佈選擇概率最高的動作。
- 如請求項6之方法,其中訓練所述神經網路進一步包括: 根據所述確定性策略在評估操作中對一組軌跡進行採樣;以及 從多個回報值計算最終回報值,每個回報值基於多個軌跡中其中一個軌跡的最終狀態計算。
- 如請求項1之方法,還包括: 對所述神經網路訓練後,接收給定的偏好和要放置多個巨集的給定晶片; 用所述給定的偏好和所述給定晶片上多個隨機採樣的軌跡進一步訓練所述神經網路;以及 使用進一步訓練的所述神經網路對最終軌跡進行採樣以生成完整的巨集佈置。
- 如請求項1之方法,其中,所述多個目標還包括到正錨點和負錨點中的至少一個的距離,所述正錨點吸引所述多個巨集的第一子集的放置,所述負錨點排斥所述多個巨集的第二子集的放置。
- 如請求項1之方法,還包括: 由所述神經網路生成一組放置,以在給定晶片上放置一組相同的巨集,其中每個放置是基於不同的偏好生成的; 接收所述一組放置中的候選放置的指示,其中所述候選放置是基於候選偏好生成的; 修改所述候選偏好以生成p個偏好; 由所述神經網路生成一組後續的 p個放置,以將所述一組相同的巨集放置在所述給定晶片上;以及 將接收所述指示、修改所述候選偏好以及生成所述一組後續的 p個放置這些步驟重複,直到最終放置被接受。
- 如請求項10之方法,其中修改所述候選偏好還包括: 將所述候選偏好的一個或多個向量元素修改相應的一個或多個增量值,其中每個增量值在預定值範圍內。
- 一種訓練神經網路以在晶片上進行巨集佈置的方法,包括: 接收一組目標軌跡,所述一組目標軌跡對應於訓練組中在各個晶片上各個巨集的放置,其中每個目標軌跡中的最終狀態對應於目標放置的完成; 搜索所生成的目標回報大於學習回報的回報函數,其中所述目標回報是根據所述目標軌跡計算的,所述學習回報是根據所述神經網路生成的軌跡計算的;以及 搜索參數來更新所述神經網路,以便所述神經網路生成能使所述學習回報最大化的更新的軌跡。
- 如請求項12之方法,還包括: 重複搜索所述回報函數和重複搜索所述參數,直到找不到所生成的所述目標回報大於所述學習回報的回報函數。
- 如請求項12之方法,其中,所述回報函數由第二神經網路計算以輸出所述目標回報和所述學習回報。
- 如請求項14之方法,其中搜索所述回報函數還包括: 通過將梯度下降應用於由所述目標回報和所述學習回報之間的差所定義的損失函數,來更新所述第二神經網路的參數。
- 如請求項12之方法,其中,所述回報函數是偏好和對應目標的線性組合。
- 一種在晶片上放置無序巨集的方法,包括: 由神經網路生成在晶片當前狀態下巨集排序動作的第一概率分佈,其中,所述巨集排序動作是從要放置在晶片上的一組無序的巨集中選擇一個巨集; 由所述神經網路生成在所述晶片的當前狀態下定位動作的第二概率分佈,所述定位動作是在所述晶片上選擇座標用於放置所述巨集; 由所述神經網路分別根據所述第一概率分佈和所述第二概率分佈對所述巨集排序動作和所述定位動作進行採樣; 更新巨集排序遮罩,從所述一組無序的巨集中移除已放置的巨集;以及 更新定位遮罩,以阻擋所述晶片上特定區域以用於剩餘巨集的後續放置。
- 如請求項17之方法,還包括: 訓練所述神經網路,根據由第一組參數所參數化的巨集排序策略,生成所述第一概率分佈,並根據由第二組參數所參數化的動作策略生成所述第二概率分佈,其中所述第一組參數和所述第二組參數被同時訓練。
- 如請求項17之方法,還包括: 訓練所述神經網路以生成所述第一概率分佈和所述第二概率分佈,其中,訓練所述神經網路還包括: 接收一組目標軌跡,所述一組目標軌跡對應於訓練組中在各個晶片上各個巨集的放置,其中每個目標軌跡中的最終狀態對應於目標放置的完成; 搜索所生成的目標回報大於學習回報的回報函數,其中所述目標回報是根據所述目標軌跡計算的,所述學習回報是根據所述神經網路生成的軌跡計算的;以及 搜索參數來更新所述神經網路,以便所述神經網路生成能使所述學習回報最大化的更新的軌跡。
- 如請求項19之方法,其中訓練所述神經網路還包括: 由所述神經網路根據所述隨機策略在樣本收集操作中採樣一組第一軌跡; 使用從所述第一軌跡計算的損失函數,在訓練操作中更新所述神經網路的參數; 在評估操作中從多個回報值計算最終回報值,每個回報值是基於由具有所述更新參數的所述神經網路所生成的第二軌跡之一的最終狀態計算的;以及 重複所述樣本收集操作、所述訓練操作和所述評估操作,直到所述最終回報值達到閾值。
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 (1)
Publication Number | Publication Date |
---|---|
TW202333078A true TW202333078A (zh) | 2023-08-16 |
Family
ID=85987271
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111138600A TWI828362B (zh) | 2021-10-12 | 2022-10-12 | 訓練用於巨集佈置的神經網路的方法及系統 |
TW111138605A TW202333078A (zh) | 2021-10-12 | 2022-10-12 | 利用人工智慧方案的巨集佈置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111138600A TWI828362B (zh) | 2021-10-12 | 2022-10-12 | 訓練用於巨集佈置的神經網路的方法及系統 |
Country Status (4)
Country | Link |
---|---|
US (3) | US20240289602A1 (zh) |
CN (3) | CN116261727A (zh) |
TW (2) | TWI828362B (zh) |
WO (3) | WO2023061408A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117292717B (zh) * | 2023-11-27 | 2024-03-22 | 广东美的制冷设备有限公司 | 异音识别方法、装置、电子设备和存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3112843B2 (ja) * | 1996-09-12 | 2000-11-27 | 日本電気アイシーマイコンシステム株式会社 | 半導体集積回路の自動配置配線方法 |
US20070157146A1 (en) * | 2006-01-03 | 2007-07-05 | Mediatek Inc. | Method of packing-based macro placement and semiconductor chip using the same |
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 |
TWI623844B (zh) * | 2013-07-05 | 2018-05-11 | 國立成功大學 | 適用於混合模組之平面規劃方法 |
US10372860B2 (en) * | 2015-07-01 | 2019-08-06 | Synopsys, Inc. | Netlist abstraction for circuit design floorplanning |
WO2017136784A1 (en) * | 2016-02-05 | 2017-08-10 | Google Inc. | Generative neural networks |
US10372861B2 (en) * | 2016-11-28 | 2019-08-06 | Ncku Research And Development Foundation | Method of macro placement and a non-transitory computer readable medium thereof |
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 |
KR102611938B1 (ko) * | 2018-12-04 | 2023-12-08 | 구글 엘엘씨 | 신경망을 사용한 통합 회로 플로어 플랜 생성 |
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 | 南京师范大学 | 一种面向深度神经网络的芯片布图规划方法 |
-
2022
- 2022-10-12 WO PCT/CN2022/124863 patent/WO2023061408A1/en active Application Filing
- 2022-10-12 TW TW111138600A patent/TWI828362B/zh active
- 2022-10-12 US US18/042,423 patent/US20240289602A1/en active Pending
- 2022-10-12 CN CN202280005737.5A patent/CN116261727A/zh active Pending
- 2022-10-12 CN CN202280005736.0A patent/CN116261726A/zh active Pending
- 2022-10-12 US US18/042,439 patent/US20240289603A1/en active Pending
- 2022-10-12 WO PCT/CN2022/124856 patent/WO2023061404A1/en active Application Filing
- 2022-10-12 TW TW111138605A patent/TW202333078A/zh unknown
- 2022-10-12 US US18/042,431 patent/US20240289527A1/en active Pending
- 2022-10-12 CN CN202280005976.0A patent/CN116324787A/zh active Pending
- 2022-10-12 WO PCT/CN2022/124860 patent/WO2023061407A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20240289603A1 (en) | 2024-08-29 |
WO2023061407A1 (en) | 2023-04-20 |
TW202324183A (zh) | 2023-06-16 |
CN116261726A (zh) | 2023-06-13 |
TWI828362B (zh) | 2024-01-01 |
US20240289527A1 (en) | 2024-08-29 |
TW202324204A (zh) | 2023-06-16 |
WO2023061404A1 (en) | 2023-04-20 |
CN116261727A (zh) | 2023-06-13 |
CN116324787A (zh) | 2023-06-23 |
US20240289602A1 (en) | 2024-08-29 |
WO2023061408A1 (en) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102611938B1 (ko) | 신경망을 사용한 통합 회로 플로어 플랜 생성 | |
CN113544711B (zh) | 用于使用聚类收缩的混合算法系统和方法 | |
US10192016B2 (en) | Neural network based physical synthesis for circuit designs | |
Krstic et al. | Pattern generation for delay testing and dynamic timing analysis considering power-supply noise effects | |
US6578176B1 (en) | Method and system for genetic algorithm based power optimization for integrated circuit designs | |
US8176454B2 (en) | Non-invasive timing characterization of integrated circuits using sensitizable signal paths and sparse equations | |
Porrmann et al. | A massively parallel architecture for self-organizing feature maps | |
TW202333078A (zh) | 利用人工智慧方案的巨集佈置 | |
US11741282B2 (en) | Reinforcement learning-based adjustment of digital circuits | |
Dan et al. | Clustering approach for solving traveling salesman problems via Ising model based solver | |
Jiang et al. | Estimation for maximum instantaneous current through supply lines for CMOS circuits | |
Liao et al. | DREAMPlace 4.0: Timing-driven global placement with momentum-based net weighting | |
Qu et al. | Asynchronous reinforcement learning framework for net order exploration in detailed routing | |
Jiang et al. | Vector generation for power supply noise estimation and verification of deep submicron designs | |
Kim et al. | Construction of realistic place-and-route benchmarks for machine learning applications | |
US10803218B1 (en) | Processor-implemented systems using neural networks for simulating high quantile behaviors in physical systems | |
Lu et al. | On advancing physical design using graph neural networks | |
Agnesina et al. | Parameter optimization of VLSI placement through deep reinforcement learning | |
Islam | Early Stage DRC Prediction Using Ensemble Machine Learning Algorithms | |
Dai et al. | Benchmarking artificial neural network models for design technology co-optimization | |
Olenšek et al. | DESA: a new hybrid global optimization method and its application to analog integrated circuit sizing | |
US11263375B2 (en) | Constraint determination system and method for semiconductor circuit | |
Cai et al. | Sensitive Vector Search for Logic Circuit Failure Probability based on Improved Adaptive Cuckoo Algorithm | |
Gotra et al. | Simultaneous multi voltage aware timing analysis methodology for SOC using machine learning | |
Abdul et al. | Scan Chain Clustering and Optimization with Constrained Clustering and Reinforcement Learning |