加速設計週期 EDA導入機器學習

作者 : Rod Metcalfe,Cadence產品管理部門

設計上的挑戰與設計的規模成正比;IC的規模正迅速的增長,但是IC設計工程師的人員數量卻無法跟進。因此,設計上的挑戰正以比線性更大的指數率增長,代表生產力上的淨損失與日俱增...

人工智慧(AI)及機器學習(ML)的形式千變萬化,但均重視結果。若執行一件事有明確的「正確做法」及「錯誤做法」,那麼AI就是展現遵循該「正確做法」的能力。更確切的形容,採用AI的系統必須能自行達成目標,並隨著時間演練成果越來越好。

AI的理想任務是協助執行電子設計自動化(EDA)工作。積體電路(IC)的複雜性意謂著「可能需經評估的設計迭代數量持續增加」,但其規律性代表「運作良好的設計規則可對設計中的大部分產生巨大的正面影響」。藉由AI及ML,則可透過更精簡的迭代步驟從「或許」進化到「確定」,來提高自動化流程中的生產力。

為什麼我們需要ML?為什麼是現在?

就EDA而言,「結果」代表一切。該產業處於不斷發展以加快設計過程的狀態。隨著半導體製程微縮日益困難,IC也相對變得更加複雜,並且,正如任何設計工程師所理解的那樣,複雜度延長設計週期,無論是離散元件還是積體電晶體,任何種類的設計皆如此。所幸對IC設計工程師而言,電晶體層級開發的過程遵循特別嚴格且相對可預測的規則。複雜性是因為設計參數之間是相互依賴的,而這些依賴關係的所有組合造成的迭代最終將耗盡,並增長設計時間。

「知識」及「經驗」就縮短時間而言,帶來極其重要的作用,在此可將ML應用於「內部」及「外部」,以提高資深工程師的生產力(請參見附錄「機器學習有什麼優點?」)。內部使用ML是在後台藉由ML縮短完成設計所需的時間;而外部使用ML是藉由專家系統來結束迭代設計的循環,其過程仰賴手動操作,並取決工程師的時間及能力。這兩種類型的ML/AI均適用於EDA,並在IC設計上變得越來越重要。實現ML的功能有各種不同的方法。圖1顯示如何將AI、ML及深度學習(DL)組合成一個完整的解決方案。

圖1 AI、ML及DL可根據所使用的基礎體系結構(而非其應用方式)進行分類。

設計上的挑戰與設計的規模成正比;IC的規模正迅速的增長,但是IC設計工程師的人員數量卻無法跟進。因此,設計上的挑戰正以比線性更大的指數率增長,代表生產力上的淨損失與日俱增。

隨著製程微縮,電晶體亦配合先進節點而增加密度。7nm設計已無法再創建「僅」200萬單元的區塊(block)。實際上,500、1,000甚至1,500萬單元的區塊已成為標準,並且IC可輕鬆整合成50多個此類區塊。

較大區塊等同於更高複雜性,即使其設計可在某種程度上被描述為「步驟重複(step-and-repeat)」。其結果是雙重的:更大的區塊及更多的區塊在晶片上。與此升級保持同步需要更高的設計效率,目前可藉由ML可最有效地解決這問題。

內部使用ML

「ML」已成為流行語(或術語),因此,該詞可能逐漸失去意義。ML及AI被廣泛定義成無需明確程式設計執行目標任務即可運作的應用程序。

「明確程式設計」一詞使得ML如此適用於EDA,正因設計過程中仍有許多部份是相對手動的。至今,仍無法在自動設計過程中

各個方面以程式化執行,其中一大原因為仰賴工程師的經驗。在無ML的情況下,EDA工具確實可使工程師的生產力提高,但藉由ML,EDA工具則能夠做得更好。

隨著可用的處理能力不斷提高,ML的發展快速成長; 也因此電腦科學家能夠在ML的工作方式上取得巨大進步,這種良性循環就如同半導體產業的運作方式。

基於ML獨特的需求,EDA產業是適合的棲身之所。它需要評估迭代的「假設」場景,尤其當這些場景具備可預測性。ML擁有強大的「推理」能力,在未使用每個「資料集」單點的情況下,模型可得出結果,這縮短訓練ML的時間,且提供更好的結果。

舉例來說,晶片研發工程師目前面臨的最大挑戰之一是(以時序而言)如何佈局及繞線這些巨大(並持續增長)的區塊。在實現的早期階段,要達到可開始設計佈局及最佳化的程度,取決於預測給定的平面圖是否可滿足時序要求。這種「先有雞還是先有蛋」情況依賴工程師對預測結果具備足夠信心,以花費時間進行繞線設計並達到預測的時序結果。

在設計流程的早期階段,工程師需在少量物理設計資料的基礎上,以足夠的精準度快速獲得結果。在佈局及繞線(P&R)過程結束時有更多可用的物理數據,因此時序預測將變得更加準確。但是,此準確性是以運作時間(runtime)為代價(圖2)。

圖2 較早的預測時序及繞線流程必須代表最終設計時序。

每個新的先進FinFET製程節點,均有越來越多的物理設計規則必須納入考量及遵守。當中的許多規則以某種方式影響時序預測,其目的是在流程開始時藉由ML以足夠高的精準度預測給定平面圖的時序(請參見附錄,「規模在AI中意味著什麼?」)。如前所述,每個節點均有更多相關的規則,但是,當然,每個設計均可(並可能會)與之前進行的任何其他設計有很大不同。例如,某設計可能使用10層金屬層,而另一種則可能使用15層。此巨大差異對時序安排具有重大影響,而正是此可變性,使其很難在每個可能的製程節點上為每個可想像的設計明確規劃程式化的方案。

難以處理的龐大資料正是可用來訓練ML模型的類型。每個設計均將生成繞線前及繞線後的資料,但更重要的是,資料亦將包含該設計的演變,顯示工程師為實現時序目標所做的工作。

這些資料可用於內部訓練ML模型,使它遇到該設計或與之非常相似的設計時,它將能夠在更短的處理時間內,以更高的精準度預測區塊的初始佈局。繞線前階段的結果越準確,將可更快地在繞線後階段提供更好的結果。圖3顯示如何以現有設計中的時序資料來訓練新的基於ML的時序模型。該訓練過程可藉由專用硬體(例如GPU)來加速,亦可在雲端中運作。

圖3 藉由預測的設計及最終時序數據進行ML訓練。

如同大多數的ML模型,它接受的訓練越多,預測所需結果的效果就越好。據此,即使是來自單個設計區塊的資料,亦可為該模型提供足以產生更好結果的資訊。

Design-specific的結果

需要強調的一點是,訓練後的模型僅與特定(specific)類型的區塊相關。例如,如果該區塊是採用7nm製程的CPU,則使用相同的模型來預測12nm製程的GPU的繞線後時序結果將毫無意義,也不會帶來任何好處。這樣,來自所有設計的聚合資料將不會為任何設計帶來更好的模型。也就是說,它必須與現有設計相關。

每次在設計資料上對模型進行訓練時,都會生成一個模型,該模型將加快該設計或與之非常接近的設計的繞線前過程,所有的訓練都在內部進行。換句話說,資料永遠不會離開設計環境,並且很顯然,它在任何其他設計流程中都沒有多大用處。

這是一個很好的例子,說明了明確的程式化不會有助於縮短周轉時間,因為現在超大規模的IC具有數十個複雜的區塊,每個區塊又包含數以百萬計的單元,其中包含更多單個電晶體。設計的每個元素,直至單個電晶體的特性都是可配置的,每個元素中的每個部分對整體設計的影響都很小,但並非無關緊要。EDA總是擅長解決這個看似無法克服的設計挑戰,但是利用ML將能帶領該產業邁入下一個範例。

速度與準確性

訓練特殊的模型至關重要,這代表著一旦該模型在設計中的某區塊上進行訓練,就可在該設計中的所有後續區塊上使用。由於許多IC具有數十個區塊,並且每個區塊都將進行迭代設計以實現功能發展所需的性能,此時ML將有助於增加繞線前的速度和繞線後的準確性。

如前所述,訓練模型所需的區塊數量很少,實際上,更多的區塊未必帶來更好的模型。效益可能會遞減,因此不必在設計中的每個區塊上訓練模型。

用AI術語來說,這也顯示另個重點就是訓練通常是在非常強大的伺服器上使用非常大的資料集進行,通常會花費大量時間。使用這種方法可以在開發的機器上本地進行訓練,包括在相對較小的資料集上使用GPU加速器,並且可以在數小時而非數天內完成。

由於每種設計都有不同的規格,工程團隊通常在使用5~10個區塊來訓練模型時會看到有益的結果,這些區塊通常會有所不同,但適用於同一系統。另外,訓練過程本身可以是迭代的,因此,隨著生成更多的設計資料時,可以對最佳化的區塊進行增量式訓練,而改善的區塊本身是使用訓練後的模型生成。

圖4顯示如何在P&R流程開始時使用ML產生的時序模型來改善最終時序預測,從而提高設計性能。

圖4 使用ML時序模型將改善時序預測並提供更好的設計性能。

機器學習帶來的影響

繞線前到繞線後的關聯不僅需要準確度。準確地預測繞線後時序只有在它也帶來改進的情況下才有意義。簡單來說,改進意味著更好。

以量化的方式來說,在EDA和IC設計中,工程師需要真正關注幾個關鍵參數,包括總合負數延遲時間(TNS)、最差負數延遲時間(WNS)和功耗。這些可以簡稱為功耗、性能和面積(PPA),ML對PPA的積極影響可帶來更快的周轉時間。

負數延遲時間有效地表示具有時序約束的訊號太晚到達其目的地(由負數表示)。WNS代表網路中單個最差的時序端點,而TNS是給定網路中所有負數延遲時間的總和。

特徵蔓延(Feature creep)

所有工程師面臨的最大挑戰之一是特徵蔓延,即在設計過程的後期才增添新功能設計。這是企業面對競爭求生存不得不面對的挑戰。特徵蔓延通常也代表很多之前的設計工作都浪費了,並且幾乎很可能將無法從早期起始設計中所投入的時間和精力中受益。

ML將可進行改變,因為最佳化每個區塊所需的所有設計工作現在都具有殘值,即可以透過訓練提供更快、更準確的繞線前資料和繞線後預測的模型來實現…

…完整閱讀請連結EDN Taiwan網站

發表評論