一直以來,芯片設計的難度絲毫不亞于芯片制造工藝。直到八十年代EDA技術誕生以后,芯片自動化設計的出現幫助芯片設計以及超大規模集成電路的難度大大降低,工程師只需要將芯片的功能用編程語言進行描述并輸入計算機,再由EDA工具軟件將語言編譯成邏輯電路,然后再進行調試即可。
但現在的芯片越來越高端,動輒上百億個晶體管布局,即使依靠EDA工具進行芯片設計,如此浩瀚的工程往往也需要幾個月的時間來完成。隨著人工智能技術與芯片設計的深度融合,未來的芯片設計或許只需要數個小時就能完成!
將芯片設計變成“棋盤游戲”
英國《自然》雜志9日刊載了一項人工智能突破性成就,來自由Jeff Dean領銜的谷歌大腦團隊以及斯坦福大學計算機科學系的科學家們在一項聯合報告中證明,機器學習工具已可以極大地加速計算機芯片設計。團隊科學家們給出了一種基于深度強化學習的芯片布局規劃方法,該方法能給出可行的芯片設計方案,且芯片性能不亞于人類工程師的設計。最重要的是,整個設計過程只要幾個小時,而不是幾個月,這為今后的每一代計算機芯片設計節省數千小時的人力。該方法已經被谷歌用來設計下一代張量處理單元(TPU)加速器。
Jeff Dean相信大家都不陌生,他是被譽為“谷歌傳奇”、“谷歌AI掌門人”的天才,曾榮獲2021年IEEE馮諾依曼獎,獲獎理由是“以表彰對大規模分布式計算機系統和人工智能系統科學與工程的貢獻”。1999年加入谷歌后,Jeff Dean設計并部署了Google廣告、抓取、索引和查詢服務系統的大部分內容,以及位于Google大部分產品下方的各種分布式計算基礎架構,也是Google新聞、Google翻譯等產品的開發者。還曾參與創辦谷歌大腦,搭建著名的深度學習框架TensorFlow。
Jeff Dean 圖片源自谷歌
這支研究團隊最新的研究表明,人工智能機器學習工具已經可以用來加速芯片設計中“布局規劃”的流程。簡單來說,科學家們讓這個機器學習工具把“布局規劃”看作一種棋盤游戲,“棋子”就是電子元器件,而“棋盤”是放置電子元器件的電子畫布,下棋得到的“獲勝結果”就是通過一系列評估指標獲取最優性能(基于一個包含1萬例芯片布局的參考數據集)。
圖片源自谷歌
大家都知道,芯片的布局規劃十分復雜,即使是人類工程師也要多番思考后才能對比選擇出最優的布局方案,對于人工智能機器學習工具來說,它需要從經驗中不斷學習,以便于確定放置新芯片模塊的時候更好更快。這其中最大的困難在于,如何讓人工智能知道自己放置新芯片模塊達到了最優條件呢?這就需要讓它學習優化所有可能的芯片網表,設計出芯片畫布上的所有可能出現的布局。
正如上文提到的“棋盤游戲”,“棋子”元件包括了網表拓撲、宏計數、宏大小和縱橫比等元素;“棋盤”電子畫布可以看做不同的芯片畫布大小和縱橫比組成的各種方案;“獲勝”則是在不同的評估指標或不同的密度和路由擁塞約束的相對重要性。任何一個元件,在畫布上位置的不同,都可以看做是整個網表中狀態的變化,對全局造成影響。
這種方法其實很像當年名震一時,先后打敗李世石、柯潔等圍棋冠軍的“AlphaGo”的設計原理。AlphaGo正是結合了監督學習和強化學習的優勢,通過訓練形成一個策略網絡,將棋盤上的局勢作為輸入信息,并對所有可行的落子位置生成一個概率分布。
在獲取棋局信息后,阿爾法圍棋會根據策略網絡探索哪個位置同時具備高潛在價值和高可能性,進而決定最佳落子位置。在分配的搜索時間結束時,模擬過程中被系統最頻繁考察的位置將成為阿爾法圍棋的最終選擇。在經過先期的全盤探索和過程中對最佳落子的不斷揣摩后,阿爾法圍棋的搜索算法就能在其計算能力之上加入近似人類的直覺判斷。這樣設計一個圍棋人工智能的程序就會依據既定好的策略執行,直到最后獲得棋盤上最大的地盤。
圖片|人類設計的微芯片平面圖(a)與機器學習系統設計(b)的不同(來源:Nature)
再回到原本的話題,人工智能技術在幫助芯片設計的過程中,除了對芯片布局規劃的直接影響外,這種形式還能被應用在廣泛的科學和工程應用中,例如硬件設計、城市規劃、疫苗測試和分發以及大腦皮層布局研究等。
結果顯示,在不到6小時時間里,這種方法自動生成的芯片平面圖不管是功耗、性能,還是芯片面積等參數都優于或與人類專家生成的設計圖效果相當,要知道人類工程師達到同樣的效果往往需要數個月的努力。
將芯片設計問題轉變為一個機器學習問題并不容易,美國加州大學圣迭戈分校科學家對此認為,開發出比當前方法更好、更快、更省錢的自動化芯片設計方法,有助于延續芯片技術的“摩爾定律”。
人工智能技術能幫助芯片設計解決哪些難題
此前OFweek電子工程網在采訪MathWorks首席戰略師Jim Tung時曾了解到,將人工智能算法應用在電子設計自動化軟件中其實已經很常見,比如知名的光刻機龍頭ASML在開發基于機器學習的半導體制造虛擬計量技術時,哪怕本身是一名不具有神經網絡機器學習方面經驗的ASML工藝工程師,也能通過MATLAB軟件案例及其中提供的各種案例,去學習使用這款工具進行開發。
Jim Tung還提到,MathWorks所提供的激光雷達工具箱、預測性維護工具箱、無線工具箱、機器學習/深度學習/增強學習工具箱、自動駕駛工具箱、虛擬道路仿真工具箱,以及關于視覺檢測、醫學成像、土地分類等一系列的參考案例中,都有人工智能技術的參與。
同樣,對于谷歌來說這已經不是他們第一次利用人工智能技術加速芯片開發的實驗了。過去幾年里,谷歌表示其內部正在將人工智能技術用于一系列芯片設計項目中,比如谷歌開發了AI硬件家族——Tensor Processing Unit(TPU芯片),專門用在服務器計算機中處理AI。使用AI來設計芯片是一個良性循環,AI讓芯片變得更好,經過改良的芯片又能增強AI算法,依此類推。
人工智能技術到底能幫助解決芯片設計中的哪些難題?第一點就是芯片層的設計規劃,芯片布局不是簡單的二維平面問題,而是復雜的三維設計問題,需要在一個受限制的區域內跨多個層小心地配置成百上千個組件。人類工程師會手動設計配置,以最小化組件之間使用的電線數量來提高效率,然后使用電子設計自動化軟件來模擬和驗證它們的性能,而僅一個單層的平面圖就需要花費超過30個小時。現在,人工智能技術也能以人類啟發式思維去考慮芯片性能、復雜性、制造成本等多個因素,以最佳方式進行設計。
第二點是時間成本,傳統意義上芯片的壽命在2到5年之間,光是芯片設計就占據了幾個月的時間,隨著人工智能技術的快速發展,越來越多優化芯片層規劃的算法開始出現,極大縮減研發人員的開發時間。
第三點是智能化程度,比如上文提到的機器學習算法使用正反饋和負反饋來學習復雜的任務,研究人員設計了一種“獎勵函數”根據算法的設計表現對其進行獎懲。直到該算法產生數萬到數十萬個新設計,每個設計都在幾分之一秒內完成,并使用獎勵函數對它們進行評估。隨著時間的推移,它最終形成了以最佳方式放置芯片組件的策略。
最后一點是方案的最優解,研究人員發現算法可以計算到人們腦力無法企及的空白區,訓練計算的數量上去了,可作為優選的方案自然也就更多了。換言之,算法的許多平面圖其實比人類工程師設計的要好,也就是說它還教會了人類一些新技巧,這也是一個相互學習的過程。
當然,強大的算法雖然可以縮減芯片設計的時長,但并不意味著具有完全自主決策的能力,它更多的還是扮演著“AI助理”的角色,只不過這個助理豐富的案例和超快計算能力能夠更好的幫助人類工程師實現快速的芯片設計流程。
參考資料
1、《A graph placement methodology for fast chip design》
2、《AI system outperforms humans in designing floorplans for microchips》