隨著AI、5G通信以及云計算等專用計算領域的發展,面向專用計算領域的計算機體系結構也進入了新的黃金時代。描繪這一黃金時代的兩支重要畫筆就是開源硬件(芯片)與敏捷開發:開源可降低芯片設計門檻,敏捷設計能縮短開發周期。
開源指令集RISC-V引發了開源硬件的熱潮。但芯片的設計和生產流程比軟件更長,需要更多工具和流程,EDA也開始轉向依靠開源社區的模式來解決復雜的設計難題,同時降低開發成本。但國內EDA技術一直是一項軟肋,本土EDA企業尚未發展壯大,該如何應對開源EDA這一新的技術形態與生態模式呢?這些問題在召開的中國計算機學會青年精英大會(YEF2021)技術論壇【芯片智造——敏捷設計與開源EDA之路】上展開了激烈的討論。
開源芯片成發展新趨勢
說到開源芯片,RISC-V可謂是開源的代表。去年RISC-V國際基金會將總部搬往瑞士,目前其已有超過1000個會員,企業機構約200家。中國在這里面占據很重要的作用,中國企業占比超過20%,而且19個理事會成員中有9個來自中國。
隨著開放指令集RISC-V逐漸受到業界追捧,開源芯片的概念逐漸進入人們的視野,并受到全世界的關注與投入。國際上,早在2019年國際計算機體系結構旗艦會議ISCA的遠景研討會上,包括圖靈獎得主David Patterson教授在內的多位美國工程院院士,以及來自MIT、UC Berkeley、UCSD、Stanford、Google、Nvidia、DARPA等頂尖大學、企業和政府機構的專家就聚焦討論了“面向下一代計算的敏捷開放硬件”的前沿熱點,涉及到內容包括指令集、EDA工具鏈開源、設計流程、高層次綜合、形式化驗證。
看向國內,“十四五”規劃也已開始對開源芯片布局,“十四五”規劃第五篇第十五章第一節中提到,支持數字技術開源社區等創新聯合體發展,完善開源知識產權和法律體系,鼓勵企業開放軟件源代碼、硬件設計和應用服務。
那么開源芯片有哪些創新機會呢?中國科學院計算技術研究所副所長包云崗在技術論壇上講到:RISC-V屬于指令集開放,其實是指令集手冊的開放,如英特爾CPU的指令集手冊有5000多頁,ARM CPU的指令集手冊有2000多頁,而RISC-V的指令集手冊只有200多頁。如果把指令集變成真正的架構,此時就會產生諸多設計文檔,那么文檔可以公開;根據設計文檔再變成源代碼,源碼也可以公開;EDA工具鏈可以將開源代碼再變成芯片版圖,那么EDA設計工具也可以開源。
他總結,開源芯片主要包含有三個層次:(1)指令集(2)處理器微架構設計/實現(3)設計流程/工具。
在這三個層次中,除了指令集,芯片設計的工具也很重要。EDA工具是開源芯片設計體現的基石,如今多種開源EDA工具基本覆蓋了芯片設計中的模擬仿真、邏輯綜合、布局布線、物理實現和簽核等功能。
眾所周知,全球EDA市場被三大廠商Cadence、Synopsys、Mentor(2021年1月更名為:Siemens EDA,即西門子EDA)壟斷。他們的規模大,產品線完整,可以提供全流程的完整解決方案。相反,國內EDA工具在中國的市場份額不到5%,在全球的市場份額僅為0.2%。而且國內EDA公司規模小,產品單一,多是“點”工具,只能提供局部解決方案。單一EDA工具很難滿足設計人員對于IC設計的全流程需求,不同工具間的切換又為數據完整性增添了風險。于是日前市場對于開源平臺的呼聲日益增高。
開源EDA很重要,但難題亦很多
鵬城實驗室、中科院計算所的解壁偉認為,開源EDA是支撐開放芯片生態的重要保障。多個成功經驗表明,開源開放是構建繁榮的技術生態和產業生態的必要基礎。如Linux操作系統,支撐了整個開源生態體系;再比如Android移動操作系統,雖然現在已經閉源,但當年以開源為起點,統一了除iOS外的整個移動互聯網生態;在人工智能領域,Caffe、TensorFlow、Pytorch、PaddlePaddle可以說是整個AI技術生態體系的基石。
開源EDA工具可以降低芯片設計門檻,如降低芯片設計的人力、IP、EDA成本。還能為開展EDA領域的基礎科學研究和人才培養,無論是對企業、高校、學術科研機構還是芯片和EDA方向的個人愛好者而言,都能提供很好的思路。如果開源EDA可以集合多方力量,將有助于我國加速追趕國際先進水平。
然而,我國EDA軟件的基礎還相對薄弱,在開源領域幾近空白。開源EDA仍然面臨諸多挑戰:用戶少、貢獻者少以及框架結構不清晰;論壇上也討論了一些解決方案。具體如下:
(一)用戶少:開源EDA工具質量相比商業工具有較大差距,用戶數量非常有限。解決方案是提升工具質量,強調生產環境下的項目檢驗,即開源EDA工具不能只停留在學術論文和軟件代碼,要與其他點工具共同匯聚成工具鏈,支撐完整的芯片流片驗證,產生有效的用戶反饋。如美國的Magic就經過了數次流片驗證,論文就有實際芯片測試數據。
(二)貢獻者少:EDA領域相對小眾,其開源社區更是人丁單薄,Yosys、abc、magic、OpenROAD等開源工具的主要貢獻者大多在10余人左右。由于EDA學科的特點,開源EDA貢獻者需要同時具備CS、Math、EE和MicroE的知識,技術門檻較高。每個開源EDA工具的開發并不開放,基本是某個學校、研究機構和公司的內部團隊,外部參與者很少、也很難參與。解決方法是充分拆解、抽象和描述EDA技術問題,并分類轉化到數學、算法和高性能等專業領域能夠理解的語言表述,發動多個學科的社區力量。
(三)框架結構不清晰:代碼不統一且復用率低是開源軟件的一項通病,然而開源EDA工具與算法強綁定,問題更為突出。設計新算法通常需要大量重寫代碼,失去了開源的意義。解決方案有二。第一,模塊化設計,從基礎框架設計出發,再深入到算法層,抽象共有操作和數據格式,從代碼中探索出迭代重構規律,形成精簡高效和模塊化的基礎框架。這種模塊化設計還便于用分布式并行計算架構進行EDA設計流程的加速。第二,規范化抽象,用Multi-level Intermediate Representation(MLIR)等優秀的編譯器設計理念對整個設計流程(尤其是前端設計)進行多個抽象層次的劃分,便于各個領域專家專注于各自的抽象層次,同時通過多個層次的編譯打通EDA工具鏈,完成敏捷方便的全流程驗證。這樣,即使一個點工具也可以通過規范的轉換格式,靈活的接入到開源的EDA工具鏈中,完整地驗證自己所開發工具的性能和質量。目前,北美產業界和學術界正在形成這種趨勢。
落實到開源EDA項目來說,無論從低工藝(110nm)至高工藝(55nm,40nm甚至28nm)。從高校教學級應用到企業產品級應用,從小規模ASIC芯片到更大規模的SoC項目,都應堅持研用結合的策略,以實用為牽引,以用帶研,研以致用。從工具鏈、點工具、基準測試集、示范應用以及工業級開源工藝庫等五大方面逐個擊破。
業界的研究進展
值得一提的是,在ASPLOS 2021大會上,剛剛從Google Brain跳槽到明星RISC-V公司SiFive的Chris Lattner博士(LLVM 項目的主要發起人與作者之一, Clang編譯器的作者)做了The Golden Age of Compiler Design in an Era of HW/SW Co-design的演講,提出了基于MLIR編譯技術打造的全新的統一的EDA (Electronic Design Automation)框架,像軟件中的TensorFlow或PyTorch那樣為EDA設計工具鏈提供完整、靈活的基礎設施。CIRCT項目與MLIR同源,在硬件設計和軟件編譯的容易形成生態一致性。
在開源EDA軟件之路上,國內EDA學術和產業都在努力尋找合適的位置為開源EDA做貢獻。
在開源芯片領域,中科院計算所2019年啟動了RISC-V處理器芯片與RISC-V原生操作系統等項目,并且在國產28nm工藝上構建具有性價比優勢的開源芯片技術體系。此外,他們還在探索開源EDA設計開源芯片,基于現有開源工具,構建了一套基于Python的RTL到GDSⅡ的設計流程;去年8月份,國科大五位本科生整整歷時兩年使用開源EDA工具設計出了果殼-1芯片,并實現了流片。
中科院還研發了芯片敏捷設計云平臺AgileServe,該平臺集成了各種開源要素,能支持用戶快速定制處理器芯片與軟件開發,降低芯片設計門檻。于學生來說,可以隨時隨地開展芯片設計;對老師來說,可以實現在線指導學生。
南京集成電路設計服務產業創新中心有限公司(以下簡稱EDA創新中心)常務副總經理陳剛介紹了以開源的方式來打造國產EDA通用底座(openEDI)。考慮到國內的EDA點工具各自獨立,建設國內生態的通用底座,有望把點工具連接在一起。EDA通用底座的研發目標是支持所有國產EDA工具,聚合成套的EDA工具鏈,成為國內生態的通用底座。下圖為EDA通用底座架構。最下方的部分是數據層,承載所有EDA在內存及磁盤上的數據庫和數據模型,其中包括各種解析器的模塊、用戶界面模塊等。上層為通用算法層與計算框架。
北京大學的林亦波在會上介紹了知名的《深度學習輔助布局布線優化》項目,他講述了利用深度學習來改進傳統的布局布線算法,在這個過程中必須要利用開源的布局布線工具,否則很難獲取深度學習樣本。未來他們將繼續改進算法,提高穩定性和泛化能力。預計可能發布如ImageNet那樣的開放EDA數據集,吸引學術界和產業界的共同競爭與發展。
東南大學國家專用集成電路系統工程技術研究中心的閆浩講述了寬電壓近閾值設計方法學研究與開源EDA的進展。他介紹到,EDA工具的技術挑戰是不斷演進的工藝和蝕刻尺寸帶來的偏差建模以及優化算法的開發。他指出在做研究時,遇到最大的挑戰是需要耗費大量精力復現別人代碼,因此他們也與如NiiCEDA等國內EDA企業合作,積極投入到開源時序分析工具的開發中。
寧波大學的儲著飛分享了在多邏輯域自動綜合工具上的研究進展。他講到,邏輯綜合是在滿足約束條件下,將所有設計數字電路的RTL級描述,轉化為指定的工藝庫中單元電路的連接。邏輯綜合主要包括三個階段:翻譯、優化和工藝映射。他指出,不同的邏輯完備集所發展而來的綜合方法適用場景不同,現有的這些EDA工具都是基于傳統布爾邏輯發展而來,新型算符能帶來更多機會,比如基于極性變換的Reed-Muller、TB和RM雙邏輯等。在EDA開源方面,他指出邏輯綜合工具的發展趨勢:一、AI for EDA,用AI的方法推斷邏輯綜合優化變換的順序,讓沒有任何經驗的工程師得到一個優化腳本;二、EDA for AI,用查找表形式反推邏輯操作,達到與神經網絡訓練權重一樣的目的;三、Optimal Solution,給定一個數字電路,現有的方法高度依賴SAT求解器獲得如最小節點個數,最小邏輯深度等最優解,但是SAT 求解器本身又是啟發式算法,通過數字電路仿真可以輔助SAT進行更高效的搜索;四、Technology Enabler,發展新的邏輯抽象方法,幫助一些諸如二維材料等新工藝的評估和發展。無論訓練集,搜索優化與新模型都將在開源生態中獲得收益。
開源EDA何去何從?
開源EDA生態從0到1所面臨諸多困難,如何打通開源EDA的生態閉環?如何維護生態持續發展?如何防范流片失敗、IP泄露、專利等生態風險?未來又該何去何從?針對這些問題,在場學者和專家眾說紛紜,進行了激烈且有意義的討論。
從0到1,開源EDA的生態從學術界開始建設
跟傳統的開源軟件不同,開源EDA軟件的數據結構、代碼質量尤其算法的專業性極高,用戶群體較小,限制了開源社區的規模。縱觀歷史,硅谷渺如星辰大海的高科技公司都是從高校創新開始做起的。EDA也一樣,首先在高校培養開源EDA的第一批用戶群體,包括老師和學生,讓他們通過創新的形式先把開源工具用起來,然后通過不斷的使用和迭代改進工具,在將來達到可用的程度。
然而,從學術界開始推廣和維護EDA生態閉環也有挑戰。最主要的是發展學術界參與開源EDA和持續維護開源項目的問題。從功利的角度看,當高校研究人員轉移研究興趣或者課題結束時,維持開源項目的動力消失;學生花幾年的經歷學習和掌握開源EDA工具,不如掌握商業工具對找工作更實用;高質量的開源工作不多,學生們重新實現一個算法或工具有時比hack(甚至debug)一個開源項目的代碼更快。學生畢業之后,如果沒有一個很好的文檔和高質量的代碼管理,那么后續的學術繼續迭代開發的動力也不足。
因此論壇建議適當引導高校的學術評價標準,使代碼和文檔質量高的開源項目、Github/Gitee等代碼托管協作平臺上星數多的項目,成為高校學者、學生以及企業專家的學術名片,這對于啟動和維護開源EDA項目、對于學生就業將會是極大的激勵。
開源EDA生態的建立也需要基準測試集,特別是可以完成端到端流程的工業級基準測試集;如何從學術界小規模數據集到工業級先進設計,是個需要繼續探討的話題。業界知名的芯片設計公司能否提供一些脫敏的設計,讓開源社區可以以此為參考進行學術研究、學生競賽,以此擴大開源社區的規模。尤其,在深度學習技術與EDA領域緊密結合的當代,更需要一個芯片設計領域的“ImageNet”來促進社區繁榮。
產學研有機聯合,提升軟件質量,提供開源EDA獨有價值
前面也提到的開源代碼質量的問題,其實開源EDA工具對軟件質量的要求遠比其他領域嚴苛。因為EDA軟件與芯片設計緊密結合,一旦設計出有問題的芯片,不僅要修改軟件代碼,還要重新流片,代價高昂。因此開源EDA軟件無法像互聯網/游戲軟件那樣,用敏捷開發模式、低成本試錯迭代模式提高軟件質量。
學術界的開源項目要與EDA、IP等工業界有機地聯合。高校的老師和學生啟動項目并實現原型,企業提供工程力量和資金用于維護和推廣,業界的工程與品控能力可以保障開源軟件的質量和持續發展。業界不僅可以吸收開源項目的精髓,提升自己的產品先進性,而且還做了一個極好的廣告,在人才市場中形成良好口碑。典型的案例就是美國DARPA項目的openROAD開源項目,Cadence參與度甚至遠高于學術界綜合。放眼望去,美國成功的開源項目(LLVM,TVM等)最終都得到了業界的大力支持。
為實現高校與企業的有機聯合,開源EDA工具必須能提供獨特的價值,例如對新的設計方法或者新的制造工藝更為敏銳,提供與商業工具互補的功能特性。維護EDA生態閉環,項目的定位、以及組織者聯結需求、資源、人員的作用十分重要。
風險與機會并存,合理區分風險,降低整體芯片開發成本
EDA生態在技術標準、安全可信、以及流片風險均存在風險。IEEE標準有成熟的運作規范,相對安全。但很多事實標準其實是三大EDA公司的私有標準。即使在開源社區有可免費使用的私有標準,也存在著跟標準相關的隱藏專利風險。需要制定國內標準,并掌握關鍵技術來防范專利風險。
開源EDA軟件的可信和安全則是一把雙刃劍。一方面,開源EDA工具中可能存在惡意代碼泄露用戶的核心設計數據,也可能在設計里植入惡意的硬件木馬;另一方面,EDA工具代碼開源,且貢獻者基本可以溯源,相關責任也容易追查,一切都在陽光下風險反而可控。
針對流片失敗的風險,可能并非開源EDA工具獨有問題。要在指甲蓋大小的硅片上擺放上百億個幾納米大小的晶體管是當今世界最具有挑戰的工程,流片失敗本身是不可避免。商業公司的EDA工具也不一定能保證成功,特別是支持新技術新工藝的工具。開源許可證有免責聲明,應讓使用開源工具進行流片的使用方充分認清風險和成本。成功流片的開源EDA工具,反而是高質量的最佳宣傳,有機會培育出大量以設計服務為目標的公司,憑借開源工具的使用經驗幫助用戶提高流片成功率,有望降低整體的芯片開發和設計成本。對開源EDA工具的各種風險,需要區別對待,隨著開源EDA工具實踐經驗增加,反復評估風險變化。
EDA生態子系統協同,尋找可持續的動力,形成價值鏈閉環
開源EDA生態有學術、企業等內部生態子系統。高校立足教學和科研,適合做創新工作,產生有獨特功能、技術超前的開源EDA工具,獲取學術影響力;只要這些獨特的“優勢”可以轉化成企業明確利益需求,就會在企業轉化為一個高質量的產品級項目。但這些產品級項目不一定會重新開源。應該尋找一種激勵企業的模式,在其保護商業價值的同時,能持續對共性技術部分保持開放,讓學術界能在更高質量的EDA工具平臺上繼續貢獻。為此,可以考慮GPL許可證模式,強迫新增和修改共性功能代碼開源,再通過封裝成云服務等形式來約束GPL的作用范圍,保障企業的投入和產出公平。
開源EDA生態應與外部生態合作共贏。例如,與超算和云計算的生態融合,既能解決EDA軟件算法需要消耗大量算力的問題,促進超算中心的業務發展;也可以借助云服務吸引更多的工具用戶,降低使用獲取和使用門檻,同時也促進云計算廠商的用戶群。Google和微軟的EDA上云就是非常典型的案例。
寫在最后
本次論壇由CCF YOCSEF上海AC組織,執行主席為CCF YOCSEF上海主席(2021-2022)蔣力,副主席(2020-2021)裴頌文,論壇思辨和閉門討論分別由北京大學羅國杰、浙江大學卓成共同主持。論壇吸引了50余位高校學者、企業專家與研究生參加。
后續我們還會繼續組織敏捷設計,框架與編譯器等專題論壇,與開源EDA,開源硬件開放指令集關系緊密,敬請關注。
責任編輯:tzh
評論
查看更多