自1971年第一個商用微處理器的草圖面世以來,晶片設計已經取得了長足的進步。但是,隨著晶片變得越來越複雜,設計人員必須解決的問題也越來越複雜。而我們目前的工具並不總是能勝任這項任務。
當今使用的自動化工具通常無法解決設計過程中的現實問題,這意味著必須人工介入,這使得該過程比晶片製造商希望的更費力和耗時。
毫不奇怪的是,人們更傾向於採用 AI 來加速晶片設計,正如英特爾所做的那樣。但AI 本身不足以滿足多個約束同時處理的需要。
事實上,來自英特爾 AI 實驗室的團隊最近嘗試開發一種基於 AI 的解決方案來處理一項稱為佈局規劃的棘手設計任務,但在此之中他們找到了一個基於非 AI 方法的更成功的工具。
他們的研究成果以「AI ALONE ISN’T READY FOR CHIP DESIGN」為題,於 2024 年 11 月 21 日刊登於《IEEE Spectrum》。
團隊相信,該領域不應該太快就否定傳統技術。結合兩種方法優點的混合方法,雖然目前是一個未被充分探索的研究領域,但將被證明是最富有成效的前進道路。
AI 演算法的危險
在架構得到解決並且邏輯和電路已經解決之後,晶片設計中最大的瓶頸之一發生在物理設計階段。一個系統級晶片 (SoC) 平均有大約 100 個高階模組,由數百到數千個宏和數千到數十萬個標準單元組成。
而在後續的佈局規劃中,功能塊的排列需要滿足某些設計目標,包括高效能、低功耗和成本效益。此類佈局規劃問題屬於數學規劃的一個分支,稱為組合最佳化。如果讀者曾經玩過俄羅斯方塊,那麼這就算已解決了一個非常簡單的組合最佳化難題。
但在晶片設計中,需要求取問題的解決方案大得驚人。舉例來說,在典型的 SoC 平面圖中,大約有 10 的 250 次方個排列 120 個高階塊的方法;相比之下,估計有 10 的 24 次方個宇宙中的星星的總量。
在面臨這種量級,甚至在標準單元格的排列組合的數量要更甚幾個量級的情況下,機器學習與大語言模型的設計影響就不大了。這樣的編碼任務與解決像佈局規劃這樣的複雜最佳化問題相去甚遠。
從理論上講,可以透過訓練變壓器按順序預測晶片上每個模組的物理座標來建立一個基於 AI 的樓層規劃器,類似於 AI 聊天機器人按順序預測句子中的單詞。但,對於人類,怎麼使放置單元塊時不重疊在一起很好理解,甚至學得很快,但這個概念對於計算機來說學習起來並不簡單。
團隊採用了樹狀結構,隨著樹的生長,它會在向右和向上扇動時封裝平面圖。此外,因為塊的位置是相對的而不是絕對的,所以這個結構還能保證無重疊的平面圖。不需要預測放置的每個塊的確切座標。相反,可以根據塊的維度以及其關係鄰居的座標和維度輕鬆計算。
但即便是在此基礎上,AI 模型也產生了浪費時間尋求次優解決方案的問題。究其原因可能在於在於模型無法回溯。
迴歸傳統的晶片設計思路
解決大量組合最佳化問題的一種常見方法是使用一種稱為模擬退火 (SA) 的搜尋技術。SA 可以逐步找到最佳化問題的最佳解決方案,而不必繁瑣地檢查每一種可能性。
如果生成的代價更低,那麼方案可接受。如果情況稍壞一些,也可以接受。隨著時間的推移,隨著演算法不斷隨機調整資料塊,接受增加代價的操作的頻率越來越低。
避免演算法過早地陷入區域性最優,需要給演算法充足的發展餘地,以此,可以獲得最終的全域性最優解。
雖然,當演算法進行隨機塊更改以增加約束違規時,可以越來越多地進行拒絕這些操作,從而指示模型避免它們。但不幸的是,這種策略適得其反。
當增加 constraints 變數的權重以考慮這種剛性時,該演算法在最佳化方面做得很差。模型沒有努力修復導致全域性最優值的分歧行為,而是反覆導致模型無法逃避的區域性最優值。
推進機器學習
為了解決上述問題,團隊構思了 SA 的新變化,稱之為約束感知 SA (CA-SA)。此變體使用兩個演算法模組。第一個是 SA 模組,它側重於 SA 最擅長的方面:最佳化面積和線長。第二個模組選擇隨機約束衝突並將其修復。
使用這種方法,團隊開發了一個開源的佈局規劃工具,可以同時執行 CA-SA 的多個迭代。他們稱其為具有約束感知的並行模擬退火,或簡稱 Parsac。
為了瞭解 Parsac 在更真實的設計中的表現,團隊在基準測試問題中新增了自己的約束,包括關於塊放置和分組的規定。令人高興的是,Parsac 在不到 15 分鐘的時間內成功解決了擁有商業規模的高階佈局規劃問題,使其成為同類產品中已知最快的佈局規劃器。
除開正在開發的基於集合搜尋的非 AI 技術以處理奇特的塊佈局規劃問題,團隊正在努力使 Parsac 適應宏放置。單獨的 CA-SA 可能太慢,無法有效解決這種規模和複雜性的問題,而這正是機器學習可以提供幫助的地方。
對於給定一個 SA 生成的平面圖,可以訓練一個 AI 模型來預測哪個操作會提高佈局的質量。然後可以使用此模型來指導 CA-SA 演算法的決策。該演算法不會只採取隨機或導向區域性的操作,而是以一定的機率接受模型的“智慧”操作。
透過與 AI 模型合作,Parsac 可以顯著減少尋找最佳解決方案所需的運算元量,從而縮短其執行時間。在此基礎上,允許一些隨機操作仍然很重要,這可以避免演算法再次陷入區域性最優解,就像以往的失敗案例一樣。
此種或相近的方法可能有助於解決 floorplanning 之外的其他複雜組合最佳化問題。在晶片設計中,此類問題包括最佳化核心內互連的佈線和布林電路最小化,需要面臨構建具有最少門和輸入的電路來執行功能的挑戰。
全新的裁定方式
隨著研究人員尋求驗證新的晶片設計工具,對現代基準測試的需求越來越迫切。最近基於舊基準或專有佈局的研究對新型機器學習演算法的效能提出了質疑。
該團隊釋出了兩個資料集,現已在 GitHub 上提供。他們設計的佈局充分體現了當代 SoC 平面圖的廣度和複雜性,範圍從 20 到 120 個塊不等,包括實際的設計約束。
儘管這些資料集是人工的,但團隊還是很貼心的建立了平面圖屬性的詳細統計分佈,以貼合商用晶片的特徵需求。有需求的人可以從這些發行版中取樣,建立模擬真實晶片佈局的綜合佈局圖。
在研究末期,團隊並不看好 AI 或者是基於 AI 的技術方案來解決棘手的最佳化問題。相反,他們預測混合演算法將代替 AI 成為笑到最後的贏家。
透過學習識別最有前途的解決方案型別進行探索,AI 模型可以智慧地指導 Parsac 等搜尋代理,從而提高它們的效率,更快地解決問題,從而建立更復雜、更節能的晶片。
團隊強調道,AI 可能無法完全自行建立晶片,甚至無法解決單個設計階段。但是,當與其他創新方法相結合時,它將改變該領域的遊戲規則。