晶片設計者在設計IC時面臨大量的設計資料和可變性,特別是在開發具有不同功耗、溫度和性能規格的各種晶片時。因此,複雜的IC設計是運用機器學習(machine learning;ML)的一個理想領域。

至少有一家EDA軟體公司正朝此方向努力。該公司自主研發了一套機器學習演算法——稱為「針對工程技術的機器學習」,並將它應用於具有可變意識的設計與表徵軟體。

位於加拿大薩斯卡通市(Saskatoon)的Solido Design Automation成立於2005年,是一家私營EDA軟體供應商。

Solido透過成立機器學習(ML)實驗室,成為向半導體客戶銷售其機器學習演算法的首家供應商。據Solido透露,該公司的計畫是「與半導體公司合作開發基於機器學習的新型EDA產品。」

Solido總裁兼執行長Amit Gupta表示,「我們想佈下更寬廣的網路」,與更多的客戶一起探索、選擇和應用最佳的機器學習技術,以解決特定的問題。

12年的機器學習史

在機器學習領域,Solido既不是新手,也不是模仿者。據Gupta介紹,該公司在機器學習演算法領域已經研究了12年的時間,並已將這種技術應用於該公司的旗艦級產品。

Solido公司對其技術產品相當有信心。該公司的機器學習技術已經在自家的商用化產品(2007年推出的Variation Designer)中得到測試和驗證,並獲得全球許多用戶的支援(1,000位設計者和35家主要公司)。Gupta表示,已有7家領導廠商承諾在Solido的機器學習實驗室工作,並致力於將Solido的專業技術推廣至其它EDA領域。

Gupta並未透露客戶的名稱,但暗示Solido的關鍵客戶覆蓋範圍廣泛,有代工廠、整合設備製造商(IDM),也有無晶圓廠晶片公司。

20170510_ML_NT31P1 為什麼要成立機器學習實驗室? (來源:Solido Design Automation)

將機器學習導入晶片設計的想法應該不會太令人驚訝,特別是在半導體產業。半導體生態系統中包括代工廠和EDA公司等許多大公司,都在悄悄地研究如何將機器學習最有效地運用到複雜的晶片設計、開發和測試中,以提高設計和生產的效率與準確度。

市場研究公司Gary Smith EDA首席分析師Laurie Balch坦言,「EDA工具公司正在嘗試[機器學習]」,但她補充道,「我並不是說他們採取[透過整個EDA工具鏈]的大面積推廣方式,至少現在還沒有。」

部份的原因在於機器學習對EDA公司來說也有不小的問題,因為他們必須處理具有很大變化的複雜設計資料。「為了取得能產生可重複結果的理想原則,就是一個棘手的問題。」Balch指出。

產業動能

無論如何,導入人工智慧(AI)以改進設計的想法,開始取得不錯的發展態勢。

機器學習實現先進電子研究中心(CAEML)主任Elyse Rosenbaum在今年稍早時表示,CAEML用於電子設計的AI專案已經獲得了美國國家科學基金會(NSF)和9家公司的大力支持,這9家公司包括亞德諾(ADI)、Cadence、思科(Cisco)、惠普企業(HPE)、IBM、Nvidia、高通(Qualcomm)、三星(Samsung)和賽靈思(Xilinx)。

在看過Solido的網站後,北卡羅萊納州立大學(NCSU)電氣與電腦工程教授Paul Franzon認為,Solido做的應該是「統計性工作」。在他看來,「『巨量資料』的統計分析,是機器學習的一個分支,在EDA領域發展非常迅速,因此有許多機會。」

相形之下,CAEML的主要研究工作一直是「建構全球性模型,以適應由詳細模型評估或詳細結構測量產生的『訓練』資料。這些快速的全球模型隨即可以用在設計中,以便更快地實現更好的設計。」

Solido的Gupta在被問到CAEML的研究時表示,「能夠看到像CAEML這樣在EDA領域展開早期機器學習研究的感覺非常棒。」

但是他強調,機器學習技術已經開始顛覆EDA產業了。「在Solido機器學習實驗室,我們直接與主要客戶合作,為EDA產業快速開發和生產先進機器學習產品。我們正充份利用十幾年來累積的專門技術和我們運用於產品中的機器學習研發成果。」

也許更有助於解釋Solido機器學習研究的方式是,該公司的軟體[即Variation Designer]更接近製造。正如Balch所解釋的,「為了實現更高的精確度和良率,Solido的軟體著重於設計的實現,或者說他們的設計已經準備好可用於生產。」

工作原理

據Gupta解釋,Solido專有的機器學習演算法有三項關鍵目標。它們必須形成「生產精確而非預測的」產品,它們是「可驗證的」,而且能提供「持續改善的自我調整模型建構」。

顯然地,它們也必須是可擴展的。他補充說:「當每個電晶體都有8到10個製程變數時,我們討論的機器學習技術必須擴展到100K+的輸入變數,才能設計具有10k電晶體的晶片。」

但Solido的機器學習技術如何真正運用到EDA流程?

首先,使用者要為自家的晶片制定規格,他們的可變輸入需要饋入Solido的機器學習演算法。由機器學習演算法驅動的SPICE模擬器會先搭建好一個模型,然後由這個模型來預測結果。

但是,Gupta強調,整個過程並不是在黑盒中完成的。相反地,軟體會提供類似儀錶板那樣的使用者介面(UI),讓設計者即時查看和驗證軟體在做的事情。

如果系統在搭建可信的模型時找不到足夠的資料,就會要求設計者提供更多的資料。設計者也許會切換到另外的軟體。但其想法是,所設計的系統將搭建一個自動調整的模型,這種模型會自我驗證並校正錯誤。

如果沒有理想的工具,許多晶片設計者經常都會「過度設計」或「設計不足」,Gupta指出。或者,他們會花很長的時間去「測量變化並進行模擬」。為了加快這個過程,設計者現在可以求助於機器學習技術。據Solido介紹,設計者採用Variation Designer工具,可以將「High-Sigma Monte Caro的模擬次數從50億次減少到3000次」。

速度並不是唯一的目標。Gupta表示,「半導體設計者必須作出非常重大的決策。出錯的代價非常高。」因此,對於讓具有機器學習功能的軟體產生「生產精確的結果」而言,這絕對是十分關鍵的,他補充道。

此外,Solido前不久還發佈了機器學習表徵套件。據該公司透露,這款新產品使用機器學習「顯著減少了標準單元、記憶體和I/O表徵時間,可以幫助半導體設計者滿足更積極的生產計畫要求。」

Solido表示,與Solido的表徵套件一起提供的預測器能以全新的視角產生生產精確的庫模型。該公司解釋,「它可以將庫表徵時間減少30%-70%,」因而能極大地節省表徵授權、模擬授權、CPU、磁片和時間。

更多任務尚待完成

重要的是,EDA產業中很多都是利基型企業,Balch提醒道,每家供應商都會用特定的工具解決特殊問題。

從某種角度來看,Solido也是致力於特定領域的利基公司。但Balch表示,這並不妨礙Solido在自己的EDA領域扮演重要角色這樣的事實。在她看來,將機器學習運用到EDA鏈的晶片設計才剛剛開始。

當被問到最難的領域——在晶片設計中——運用機器學習演算法時,Franzon解釋,「並不是說某些問題不能採用這種[機器學習]方式解決,但根據其本質的不同,有些問題會比其它問題更困難。」

他引用了一些例子。一個是「具有太多維度的問題」,他表示。「具有20個以上維度的問題很難『安裝』或『訓練』,因為你需要太多的資料。我們正在研究分而治之的技術來解決這些問題。」

另一個是「雜訊資料」,Franzon指出,「有些詳細的模型是『有雜訊的』,例如相同的評估會產生不同的結果。我們計畫找出解決這個問題的方法。」

Franzon還提到了「產生訓練集的難度」。他解釋道,「安裝一個模型需要對詳細模型進行數百次的評估。有時很難產生這樣的訓練資料集。」

同時,Gupta希望該公司的機器學習技術能被認可為有用的工具,讓設計工程師可以用這些工具來完成具有高風險的晶片設計。

(參考原文:Machine Learning Comes to Chip Design,by Junko Yoshida)