谷歌新研究:AI可以在6小時內設計出計算機芯片
圖片來源@視覺中國
文丨學術頭條
現代計算的革命在很大程度上是由計算機系統和硬件的顯著進步促成的。隨着摩爾定律的放緩和Dennard標度的擴大,世界正朝着專用硬件發展,以滿足指數級增長的計算需求。
然而,今天的芯片需要幾年的時間來設計,因此大大縮短芯片設計週期,使硬件適應快速發展的機器學習領域是當前的一個發展趨勢。
如果使用機器學習算法代替人為設計工作來嘗試設計芯片,同時其本身能夠提供縮短芯片設計週期的方法,從而在硬件和機器學習之間創建一個更加集成的關係來促進彼此的發展,那又會怎麼樣呢?
近日,由谷歌AI的首席科學家Jeff Dean領導的團隊共同撰寫了一份預印論文,該論文描述了一種基於學習的芯片設計方法。
他們將芯片放置視為強化學習(RL)問題,用RL策略來優化芯片放置的質量。與以前方法不同的是,該方法可以從過去的經驗中學習,並隨着時間的推移不斷改進。特別是,當訓練更多的芯片塊時,該方法更擅長為先前未見過的芯片塊快速生成優化的佈局。
他們聲稱,該方法完成芯片設計的平均時間不到6個小時,這比人類專家花數週時間完成設計要快得多。
芯片佈局規劃困局在傳統的 “佈局佈線” 任務中,芯片設計人員使用軟件來確定芯片電路在芯片中的佈局,類似於設計建築物的平面圖。
計算機芯片被分成許多塊,每一塊都是一個單獨的模塊,如內存子系統、計算單元或控制邏輯系統。這些模塊可以用網表、電路組件和標準單元 (如 NAND、NOR 和 XOR 等邏輯門) 的圖形來描述,所有這些組件都是通過導線連接。
確定一塊芯片的佈局是一個稱為芯片佈局規劃的過程,它是芯片設計過程中最複雜、最耗時的階段之一,涉及到將網表放置在一個芯片畫布 (2d 網格) 上,從而提升功率、性能以及區域 (PPA) 最小化,同時遵守對密度和路由擁塞的限制。為了找到滿足多個目標的最佳佈局,需要考慮許多變量。
儘管這方面的研究已經進行了幾十年,但是人類專家仍然需要花上幾周的時間來迭代,以生成滿足多方面設計標準的解決方案。這個問題的複雜性源自網表圖的大小,這些圖的大小範圍從數百萬到數十億個節點組成數千個集羣,通常,評估目標指標需要花費數小時到一天的時間。
“基本上,在設計過程中,你可以使用一些設計工具來進行一些佈局,但仍需要人工佈局和佈線專家同這些設計工具一起進行很多次重複的迭代,”Dean説道,“從你想要的設計到實際將其物理佈局到芯片上,並在面積、功率和導線長度上有適當的限制,而且也要滿足所有的設計角色或任何正在進行的製造過程,這是一個數周的過程。而通過建立一個機器學習模型,可以讓它學會玩特定芯片的組件放置遊戲。”
深度強化學習模型研究人員設計了一個深度強化模型,該模型可以嘗試各種步驟來查看哪些步驟可以帶來更好的結果,這些步驟不是在遊戲板上放置零件,而是研究如何在整個芯片中設計放置正確的電路佈局。
該模型可以指導經過強化學習訓練的RL策略來優化芯片放置。其輸入是芯片網表 (節點類型和圖鄰接信息)、要放置的當前節點的ID,以及一些網表元數據,如連接總數、宏和標準單元集羣。網表圖和當前節點通過一個基於邊緣的圖神經網絡傳遞,該神經網絡是為編碼輸入狀態而開發的,嵌入生成部分放置的圖和候選節點。
圖神經網絡生成的嵌入與元數據嵌入串聯在一起,形成對策略和價值網絡的輸入
然後將邊緣、宏和網表元數據嵌入連接起來,以形成單個狀態嵌入,並將其傳遞給前饋神經網絡。前饋網絡的輸出是一種學習表示,它捕獲有用的特徵並作為策略和價值網絡的輸入。策略網絡在所有可能的網格單元上生成一個概率分佈,當前節點可以放置在這些網格單元上。
在每次訓練的迭代中,宏均根據RL策略依次放置,然後通過力導向方法放置標準單元簇,該方法將電路建模為一個彈簧系統,以最大程度減少導線長度。RL訓練的指導原則是使用近似線長(即半周線長,HPWL)的加權平均值和近似擁塞(路由資源消耗的比例),為每個實行RL策略的芯片位置計算一個快速但近似的獎勵信號放置的網表。
在每次訓練迭代期間,一次將一個宏放置一次策略,並通過強制定向方法放置標準單元簇。獎勵是根據近似導線長度和擁塞的加權組合計算得出的。
在實踐中,RL策略從空的芯片開始,按順序依次放置組件,直到它完成網格為止,並且直到最後代理波長 (與功率和性能相關) 的負加權總和和擁塞為零,才獲得獎勵。為了指導代理選擇先放置哪些組件,組件按大小降序排序,首先放置較大的組件,降低了以後沒有合適位置的可能性。
訓練 RL 策略需要創建一個包含10,000 個芯片放置的數據集,其中輸入是與給定放置相關的狀態,標籤是放置的獎勵 (即線長和擁塞)。研究人員首先選擇了5個不同的芯片網表,然後應用AI算法為每個網表創建2000個不同的位置。
訓練數據大小與微調性能
儘管這項工作並不完全是新穎的,它是基於谷歌工程師在3月份發表的一篇論文中提出的一項技術,但該工作推進了這項技術的發展,因為它意味着芯片上晶體管的放置可以在很大程度上實現自動化。一旦公開發布,谷歌研究人員的技術可以讓資金緊張的初創公司開發出自己的芯片,用於人工智能和其他特殊用途。此外,它可以幫助縮短芯片設計週期,使硬件更好地適應快速發展的科學研究。
研究人員表示,當他們在更多的芯片上訓練框架時,能夠加快訓練過程,並更快地產生高質量的結果。實際上,他們聲稱與領先的基準相比,它在生產中的谷歌張量處理單元 (TPUs)(一款谷歌定製設計的人工智能加速芯片)上實現了優於領先基線的PPA。
研究人員總結道:“與現有的從頭開始優化每個新芯片的位置方法不同,我們的工作利用從放置以前的芯片中獲得的知識,來使其隨着時間的推移變得更好。此外,我們的方法可以直接優化目標指標、線長、密度和擁塞,而不必像其他方法那樣定義這些功能的近似值。我們的方法不僅使新的成本函數在可用時易於整合,而且還使我們能夠根據給定芯片塊的需求,例如,時序關鍵或功耗受限,來權衡它們的相對重要性。”
而在Reddit上,這則消息也引發了網友熱議。有網友説,當他看到這則消息,他覺得非常酷。因為放置數以億計的晶體管,使其可以連接並正常工作是一項艱鉅的任務,其中佈局和佈線非常重要的,信號沿導線移動需要花費時間,而佈局目標是使導線長度最小,減少組件之間的等待時間,這很難做到。但是仍然會存在一些問題,例如接線不合適,這就需要人工來解決。而減少設計芯片所需的時間,就可以設計更多的芯片來加快迭代速度。
也有網友表示,它可以幫助設計人員輕鬆設計用於神經網絡、機器學習、深度學習的芯片,加速AI的發展。
軟件與硬件的發展相輔相成,深度學習三巨頭Bengio、Hinton、LeCun就曾在AAAI 2020大會上共同探討未來深度學習神經網絡的前景,他們均表示用於加速神經網絡訓練和推理的新型硬件可以生成更大的模型,也許有一天有可能使數萬億突觸神經網絡成為可能,而谷歌的快速設計計算機芯片更是助力了其發展。
參考來源:
https://venturebeat.com/2020/04/23/google-claims-its-ai-can-design-computer-chips-in-under-6-hours/
https://ai.googleblog.com/2020/04/chip-design-with-deep-reinforcement.html
https://www.zdnet.com/google-amp/article/google-experiments-with-ai-to-design-its-in-house-computer-chips/
https://www.reddit.com/r/artificial/comments/g7ov49/googles_ai_can_design_computer_chips_in_under_6/
https://www.zdnet.com/article/ai-on-steroids-much-bigger-neural-nets-to-come-with-new-hardware-say-bengio-hinton-lecun/#ftag=CAD-00-10aag7e