雖然近年來各大EDA公司都在積極的將AI引入到自己的芯片設計工具當中。但是早在2020年,谷歌就發佈了題爲《Chip Placement with Deep Reinforcement Learning》預印本論文,介紹了其設計芯片佈局的新型強化學習方法。隨後在2021年,谷歌又在 Nature上發表了論文並將其開源了。
近日,谷歌詳細介紹了其用於芯片設計佈局的強化學習方法,並將該模型命名爲「AlphaChip」 ,據稱AlphaChip有望大大加快芯片佈局規劃的設計,並使它們在性能、功耗和麪積方面更加優化。目前AlphaChip已發佈在Github上與公衆共享,同時谷歌還開放了一個在 20 個 TPU 模塊上預訓練的檢查點。據介紹,AlphaChip在設計谷歌的張量處理單元 (TPU) 方面發揮了重要作用,並已被包括聯發科(MediaTek)在內的其他公司採用。
谷歌首席科學家 Jeff Dean 表示,開放預訓練 AlphaChip 模型檢查點以後,外部用戶可以更容易地使用 AlphaChip 來啓動自己的芯片設計。
從數個月縮短至數小時
通常芯片設計佈局或平面圖是芯片開發中時間最長、勞動強度最高的階段。近年來,新思科技(Synopsys)開發了 AI 輔助芯片設計工具,可以加速開發並優化芯片的佈局規劃。但是,這些工具非常昂貴。谷歌希望在一定程度上使這種 AI 輔助芯片設計方法大衆化。
如今,如果由人類來爲 GPU 等複雜芯片設計平面圖大約需要 24 個月。不太複雜的芯片的平面規劃可能也至少需要幾個月的時間,而這意味着數百萬美元的成本,因爲維持一個設計團隊通常需要一大筆費用。
谷歌表示,AlphaChip 加快了這一時間表,可以在短短几個小時內創建芯片佈局。此外,據說它的設計非常出色,因爲它們優化了電源效率和性能。谷歌還展示了一張圖表,顯示與人類開發人員相比,各種版本的 TPU 和 Trillium 的平均線長(wirelength)都有所減少。
圖中展示了 AlphaChip 在三代 Google 張量處理單元 (TPU) 中的平均線長(wirelength)減少量,並與 TPU 物理設計團隊生成的位置進行了比較。
AlphaChip 是如何工作的?
芯片設計並非易事,部分原因在於計算機芯片由許多相互連接的塊組成,這些塊具有多層電路元件,所有元件都通過極細的導線連接。此外,芯片還有很多複雜且相互交織的設計約束,設計時必須同時滿足所有約束。由於這些複雜性,芯片設計師們在 60 多年來一直在努力實現芯片佈局規劃過程的自動化。
與 AlphaGo 和 AlphaZero 類似,谷歌構建時 AlphaChip,也將芯片的佈局規劃視爲一種博弈。
AlphaChip 從空白網格開始,一次放置一個電路元件,直到完成所有元件的放置。然後根據最終佈局的質量給予獎勵。谷歌提出了一種新穎的「基於邊」的圖神經網絡使 AlphaChip 能夠學習互連芯片元件之間的關係,並在整個芯片中進行推廣,讓 AlphaChip 在其設計的每一個佈局中不斷進步。
△左圖:AlphaChip 在沒有任何經驗的情況下放置開源處理器 Ariane RISC-V CPU的電路元件;右圖:AlphaChip 在對 20 個 TPU 相關設計進行練習後放置相同的電路元件。
AlphaChip 還使用強化學習模型,其中代理在預設環境中採取行動,觀察結果,並從這些經驗中學習,以便在未來做出更好的選擇。在 AlphaChip 的情況下,系統將 chip floorplanning 視爲一種遊戲,一次將一個 circuit 元件放置在空白網格上。該系統隨着解決更多佈局而改進,使用圖形神經網絡來理解組件之間的關係。
谷歌TPU及聯發科天璣芯片設計均已採用
自 2020 年以來,AlphaChip 一直被用於設計谷歌自己的 TPU AI 加速器,這些加速器驅動着谷歌的許多大規模 AI 模型和雲服務。這些處理器運行基於 Transformer 的模型,爲谷歌的 Gemini 和 Imagen 提供支持。
爲了設計 TPU 佈局,AlphaChip 首先在前幾代的各種芯片塊上進行練習,例如片上和芯片間網絡塊、內存控制器和數據傳輸緩衝區。這個過程稱爲預訓練。然後谷歌在當前的 TPU 塊上運行 AlphaChip 以生成高質量的佈局。與之前的方法不同,AlphaChip 解決了更多芯片佈局任務實例,因此變得更好、更快,就像人類專家所做的那樣。
可以說AlphaChip 改進了每一代 TPU 的設計,包括最新的第 6 代 Trillium 芯片,確保了更高的性能和更快的開發。儘管如此,谷歌和聯發科目前仍都只是依賴 AlphaChip 來製作芯片當中有限的一些區塊,而人類開發人員仍然承擔了大部分的設計工作。不過,隨着持續AlphaChip的持續迭代,其所承擔的區塊也越來越多,已經從TPU v5e的10個區塊提升到了Trillium的25個區塊。
谷歌最近三代張量處理單元 (TPU)(包括 v5e、v5p 和 Trillium)中 AlphaChip 設計的芯片塊的數量
到目前爲止,AlphaChip 已被用於開發各種處理器,包括谷歌的 TPU 和聯發科旗艦級天璣 5G SoC芯片,這些處理器廣泛用於各種智能手機。此外,還包括谷歌首款基於 Arm 的通用數據中心 CPU—— Axion。因此,AlphaChip 能夠在不同類型的處理器中進行泛化。
谷歌表示,它已經在各種芯片模塊上進行了預訓練,這使得 AlphaChip 能夠在實踐更多設計時生成越來越高效的佈局。雖然人類專家可以學習,而且許多人學得很快,但機器的學習速度要高出幾個數量級。
擴展AI在芯片開發中的應用
谷歌表示,AlphaChip 的成功激發了一波新的研究浪潮,將人工智能用於芯片設計的不同階段。這包括將AI技術擴展到邏輯綜合、宏選擇和時序優化等領域,Synopsys和Cadence已經提供了這些技術,儘管需要很多錢。據谷歌稱,研究人員還在探索如何將 AlphaChip 的方法應用於芯片開發的更進一步階段。
「AlphaChip 激發了芯片設計強化學習的全新研究路線,跨越了從邏輯綜合到佈局規劃、時序優化等的設計流程,」谷歌的一份聲明中寫道。
展望未來,谷歌看到了 AlphaChip 徹底改變整個芯片設計生命週期的潛力:從架構設計到佈局再到製造,人工智能驅動的優化可能會帶來更快的芯片、更小(即更便宜)和更節能的芯片。雖然目前谷歌的服務器和基於聯發科天璣 5G 的智能手機受益於 AlphaChip,但未來應用程序可能會擴展到幾乎所有領域。
目前AlphaChip 的未來版本已經在開發中,因此或許未來在AI的驅動下,芯片設計將會變得更加的簡單。