訂閱電子報∣ 友善列印字體大小 文章分享-Facebook 文章分享-Plurk 文章分享-Twitter
晶片設計遇上機器學習,專家們都這麼看
獲取產業訊息零時差!立即訂閱電電公會電子報。
機器學習是近段時間以來的大熱門,而儘管 EDA 處理的也是大資料類型的問題,但在將機器學習技術整合進 EDA 工具方面還沒有取得很大的進展。

許多 EDA 問題和解決方案本質上就是關於統計的,這說明機器學習自然而然適合 EDA。那為什麼這個領域在採用機器學習技術上如此緩慢而視覺識別和搜索等其它技術領域卻可以如此輕鬆地接納它?

Solido Design Automation 技術運營副總裁 Jeff Dyck 表示:“你可以感受到這是一個機器學習問題。我們有大量的資料,但我們可以應用哪些方法來解決這些問題?這才是難點。不是說讀一本教科書或學一門課就能將這些方法應用到所有問題上。工程問題需要一個不同的角度。”

在深入瞭解機器學習在哪些地方有所應用之前,我們先看看一些問題。

從基於規則到深度學習
我們首先對這些技術進行一個分類吧。“從最廣義的角度講,在 EDA 領域,我們全部都已經習慣了基於規則的方法(rule-based techniques,RBT)。”英偉達資深工程總監 Ting Ku 解釋說,“實際上機器學習是RBT的一個子集,而深度學習又是機器學習的一個子集。RBT是確定性的,不會涉及到資料庫,也不會定義特徵。而機器學習的出發點是統計的,而非確定性的,而且因為必須從經驗中學習,所以還會涉及到資料庫。使用機器學習,我們也許還需要預定義的特徵,而這正是機器學習和深度學習的區別。對於深度學習而言,除了沒有預定義的特徵,其它都和機器學習一樣。所以問題來了:‘特徵(feature)是什麼?’”
 
一旦你有了特徵並存儲了足夠的資料,你就要想辦法把它們用起來。“搜索整個設計空間是不切實際的。”NetSpeed Systems行銷和業務開發副總裁 Anush Mohandass 說,“由於該空間高度非線性的本質,搜索時間會隨著搜索範圍擴大而指數級增加。對於這樣的問題,機器學習(其中,過去的解決相似問題的經驗可被用作訓練資料,從而學習和預測可用於相似的新問題的解決方案)表現了巨大的潛力。”

機器學習的方法有很多,大體上可分為監督學習、無監督學習和強化學習。大多數 EDA 應用都著眼於監督學習。E3 Data Science 的 CTO Eric Hall 解釋說:“有兩種類型的監督學習。回歸(regression)可用於我們想要預測數值的情況,而分類(classification)則可用於預測多個結果中一個結果的情況。可以解決這些問題的機器學習演算法有很多,但是卻沒有任何一種能夠單獨解決所有問題。”

也還存在其它問題,Hall 補充說:“在尋找未被發現的特徵來對非線性進行建模方面,深度學習技術表現很出色,但它卻是一個黑箱,難以解釋而且可能需要很長的訓練時間。”

訓練
機器學習技術的表現取決於其訓練所用的資料。“機器學習是一個反覆運算過程,”Ku 說,“機器學習演算法根據輸入資料有相應輸出。這些輸出可能不正確,所以你還必須要驗證。完成之後,這些資料又被包含回資料庫。這時候就該開始再訓練(rertraining)了。這個迴圈一直持續。在某種程度上,我們希望這些反覆運算迴圈能夠使得該模型相當準確,使得其在看到一個新案例時能夠做出很好的預測。”

在許多案例中,資料可能來自於以前的設計,但這就夠用了嗎?Solido 的 Dyck 說:“想像一下,假如有 2000 個並行工作的 SPICE 模擬器要解決一個我們以前從未見過的晶片的一種從未見過的製造工藝問題。我們可以收集一些過去做法的資訊並使用這些資訊來塑造模型,但我們也有即時資料。這是即時機器學習以及即時構建模型。”

而即時學習還有其它很多問題。“如果流資料(streaming data)出了什麼問題或者有會污染模型的錯誤答案,那你就需要過濾或調整它——而這是非常艱難的。”他補充說,“我們需要自動恢復和修復。當出現問題時,你必須要能夠對流資料進行調試。”

但調試機器學習系統還是一個相對未知的領域。驗證技術就算有,也只是寥寥無幾。

涉及 EDA 流程的學習還有其它一些類型。“我們需要能通過設計實現過程獲取知識,”高通高級技術總監 Sorin Dobre 說,“EDA 有一個很好的機會,可以將監督和無監督機器學習解決方案擴展用於設計流程優化(design flow optimization)。我們有20 年經驗的高級工程師可以確保高品質的設計,但我們也需要幫助剛剛開始的設計師。我們沒法等上五年時間才完全發揮他們的生產力。”

就算對經驗豐富的設計師,這個工作也正變得越來越難。“過去,架構師根據他們的經驗來設計互連(interconnect),並且根據他們的直覺來做出關於拓撲結構和佈線選擇的關鍵設計決策。” NetSpeed 的 Mohandass 說,“但是,這種方法並不適用於片上需求非常多樣化的異構系統。由於多個片上器件之間交互的複雜性,要設計一種接近最優的,而且能夠工作的、表現良好的、還考慮了所有用例的互連實際上是不可能的。”

資料集
Plunify 的 CEO Harnhua Ng 說:“獲取一個好的資料集可能難度很大。這些工具的學習能力可以保證當工程團隊使用它們越多時,學習資料庫就會變得越聰明,從而加速設計完成的時間。”

所以只有那些已經有大規模資料集的人可以使用這些技術嗎?或者 EDA 可以提供初始的訓練嗎?“對於 EDA 領域的許多機器學習應用而言,與演算法相關的參數選擇和訓練需要完全在設計客戶或代工廠的計算環境內進行。”Cadence 的傑出工程師 David White 說,“在這些應用中,最具挑戰性的任務是創建自動化的訓練和驗證方法,使其可以確保演算法在目標矽技術上按預期運行。在一些案例中,更先進和更複雜的機器學習方法可以提供更高的準確度,但要在該領域提供支援卻最為困難。在開發過程中,人們需要根據所需的準確度以及可用訓練資料的數量和其它支援以及模型相關的約束條件來權衡合適的演算法與架構選擇。”

聽上去很難,實際上也正是如此。“EDA 問題有很高的維度、高階的互動、不連續性和非線性,需要先進的實驗技術設計、先進的監督學習、智慧篩選和過濾以及基準基礎設施(benchmarking infrastructure)。”Solido 總裁兼 CEO Amit Gupta說,“此外,EDA 問題還有很高的流資料速率和大規模的資料歸檔,需要優化的流解析器(streaming parser)、可並行化演算法、高效和可擴展的集群管理、自動恢復和修復以及大資料調試。”
Mohandass給出了一個互連設計所需的資料集的例子。“完美的互連策略依賴于非常大量的 SoC 參數,其中包括布圖(floorplan)、佈線約束、可用資源、連接要求、協議層面的依賴、時鐘特性、工藝特性(比如線延遲、功耗、頻寬和延遲約束)等等。設計策略空間中不同維度的數量可以增至數百個,這會創造一個過大的設計空間。”

基礎設施
這個問題有幾個維度。Synopsys 副總裁兼 CIO Hasmukh Ranjan 說:“機器學習可以被用在 EDA 中,但為了最大化其所帶來的好處,機器學習既應該被用在這些工具本身之中,也應該圍繞這些工具用在設計流程之中。”

高通的 Dobre 表示同意:“沒必要將所有東西都做到 EDA 工具裡面。你可以用獨立的機器學習解決方案來驅動已有的工具。”

IC Manage 的執行副總裁 Shiv Sikand 提供了一個例子:“通過分析之前流片(tapeout)的數十億個資料點,我們可以預測漏洞、設計複雜度、人力資源、證書的影響,並計算當前專案伺服器集群的輸送量。通過確定半導體設計中的瓶頸,我們可以提供前瞻性預測並識別潛在的延遲。”

我們可能也需要檢查我們運行工具的基礎設施。“我們也需要考慮智慧存儲,”Sikand 補充說:“通過分析與檔操作相關的資料流程,聚類和回歸分析等機器學習技術可以持續改進 P2P 網路和緩存管理,以提供更好的應用性能。”

Dobre 的團隊也很熟悉這些問題:“我們有包含數以萬計 CPU 的計算農場。當你查看需要同時驗證的設計的數量時,你該怎樣以一種最優的方式來使用這些資源,而不造成資源需求爆炸?這就需要資料管理。你該怎麼有效地應對在設計空間和在代工方面的這麼多的資料,並提取出下一設計所需的知識和資訊以減少學習週期?”
將運行該機器學習演算法的機器又增加了額外的另一個維度。“機器學習將通過現有的複雜演算法來減少設計和模擬的時間。” Markets and Markets 副總監 Sachin Garg 說,“EDA 工具可以採納或採取智慧決策來使其更進一步,但我們需要更好的硬體(CPU+GPU)來運行如此複雜的機器學習演算法,以使其更有效率。當前一代又一代的 GPU 可以為平行計算負載提供巨大的加速和出色的性能擴展。”

Cadence 的 White 同意這個說法:“在大規模平行計算架構領域的進步為基於假設的優化和驗證( what-if based optimization and verification)開啟了大門,從而可以有效地探索設計空間和融合最有潛力的決策。”

應用領域
成功依賴于定義正確的特徵集合的能力。“以考慮工藝偏差(variation)的設計為例,”Ku 說:“如果你想建模一個概率密度函數,你需要屬性(attribute)。特徵(feature)是能將一種事物與另一種事物區分開的屬性。對於人來說,特徵可能是頭髮顏色、身高、性別。對於考慮工藝偏差的設計而言,特徵則可能是 PVT 角、定義器件變化的演算法和器件的隨機變數。所以特徵就是一些對一個特定問題重要的東西。”

在 10nm 和 7nm 工藝上,我們可以看到有很多工藝偏差。“代工廠提出新工藝技術的努力是很重要的。”Dobre 說,“即便這是在數位領域,也需要將庫元素看作是類比設計。你必須跨多個工藝角來對設計進行驗證。你該怎樣在不出現所需資源爆表的情況下實現高品質?機器學習可以將生產力提升 10 倍、減少數周的測量時間和減少資源消耗。在識別會導致產量不達標的模式上,機器學習是一種有效方法。我們看到了其中的巨大潛力,可以帶來經濟效益。”

EDA 正在努力解決這個問題。“對於先進節點的設計,新型的矽技術和額外的驗證需求帶來了更大的不確定性,從而也提升了潛在的風險。”White 說,“在傳統的設計流程中,先前的設計和佈局資料並不會被有效地用來幫助指導下一個設計。分析方法的進步允許我們檢查(開採)之前的設計資料和趨勢,並將其用於在設計流程的最早期階段指導設計決策。這些同樣的方法也可以被用於發現和提供驅動機器學習引擎的訓練和開發的背景(context)。這樣的解決方案很可能需要利用大量的資料和數百個機器學習元件,它們都將需要管理和驗證。一旦資料被放在了適當的背景中,機器學習就可以被用於獲取複雜行為提供的分析(比如寄生、電氣、驗證),而且準確度高、速度快。”

另外還有一些其可以提供幫助的設計領域。Hall 說:“我們可以將其用於記憶體或邏輯門的功率估計或時序估計。這將能減少不確定性並為人類工作提供補充,從而可以創造出更具競爭力的產品。”

另一個正在出現解決方案的領域是佈線(routing)。“在互連設計的背景中,第一步是識別每一個維度中設計策略的組合,這能為之前大量不同的 SoC 設計帶來優良的解決方案。” Mohandass 指出,“下一步是使用這些資訊來學習模式並預測哪些策略組合將最有可能帶來優良設計。”

類似的技術也可應用於 FPGA 佈線。“帶有複雜時序和性能封閉(performance closure)問題的複雜 FPGA 設計是基於機器學習技術的工具的良好候選項。” Plunify 的 Ng 補充說,“機器學習工具能夠分析過去的編譯結果,從而可在數以千萬億計的可能方案中預測出最優的綜合/佈局和佈線參數以及布放位置。它們可以使用統計建模和機器學習來推斷哪些工具參數對一種設計最優,以從資料中提取見解來提升結果的品質。”

值得信任的結果
但相對于其它機器學習應用,設計面臨著更大的障礙。“最後如果一個方案存在設計過於激進或過於保守的風險,人們就不會採用這個方案。”Dyck 解釋說,“機器學習工具是大型的估計器。你不能要求人們去信任它。所以我們需要能夠清楚準確度的建模技術。目前這種技術還非常少——你必須發明它們。我們需要主動的學習方法,可以逐步發現相關的領域,而這些往往在最糟糕的情況旁邊。要向我展示可能會導致晶片失敗的地方,並且在那個區域提供清楚的洞察。這樣你就要在這些區域直接進行實驗。針對問題領域是很重要的。”
Dyck 還指出了 EDA 所面臨的另一個障礙:“如果你不能證明一個答案是正確的,他們就不會接受它。所以你需要設計可驗證的演算法。你需要將驗證用作該技術的一部分,這樣當你給出一個答案時,你就可以說明它在運行時是正確的。”

總結
機器學習已經開始滲透進 EDA 和設計流程中了。Gupta 說:“機器學習已經開始在 EDA 領域發揮重要的作用。它還有進一步提供顛覆性技術突破來解決半導體難題的機會。”

但我們還有很長的路要走。Ku 說:“今天我們看到的只是冰山一角。我們希望未來 EDA 能停止提供資料。資料當然很好,但我們真正需要的是決策。你需要做的就是在資料和決策之間加入一層,該機器演算法可以通過學習資料來瞭解應該做出怎樣的決策。EDA 正處在進行這項工作的完美位置上。”

如果要維護信任,還需要一些小步驟。 Synopsys 的 Ranjan 總結道:“人工智慧和機器學習可以成為一家公司與眾不同的地方,但是使用人工智慧必須不能降低演算法的精確度。“

yuzhong 從競爭對手之中脫穎而出的關鍵,但在利用它時需要不對準確度產生損害。”
訂閱電子報 友善列印 字體大小:
獲取產業訊息零時差!立即訂閱電電公會電子報。