- Advertisement -
首頁 技術頻道 深度學習/雲端架構聯手發威 系統晶片設計進入新境界

深度學習/雲端架構聯手發威 系統晶片設計進入新境界

- Advertisement -

近期EDA產業內最熱門的兩個話題,分別是導入深度學習與工具雲端化,而這兩個議題其實互為因果,彼此高度相關。要探討這兩個議題之前,必然要先從最底層的硬體計算平台發展開始談起,因為超級電腦是支撐深度學習與雲端EDA的基礎。

超級電腦為EDA雲端化重要推手

超級電腦跟一般典型的雲端伺服器不同,其發展方向在於提供更多運算效能,給某些需要極高運算力的應用或服務使用。目前全球最快的超級電腦是由IBM打造,位於美國橡樹嶺國家實驗室的Summit(圖1),但是在過去幾年裡,世界最快的超級電腦卻在中國。

圖1 位於美國橡樹嶺國家實驗室的超級電腦Summit。

目前世界排名第二跟第三的超級電腦,分別是中國國家平行計算機工程與技術研究中心所開發的「神威.太湖之光」與中國國防科技大學打造的「天河二號」。

Summit並非典型的雲端伺服器,反而更像是一個高度專業化的獨立雲端數據中心。Summit中的每個節點都有兩個22核的IBM Power 9處理器(CPU)及6個NVIDIA Tesla V100加速器,整個系統共有4,608個節點(最終4,096+512個節點,所以它在只會計算2次方的電腦科學家眼裡看起來並不那麼奇怪),Summit事實上是一個採用了202,752核Power 9及27,648個NVIDIA Volta GPU的超大型系統,外加10PB的DRAM及250 PB的存儲空間(假設它是Flash儲存的)。

其峰值性能為每秒200千兆/千萬億(1015)次的浮點運算。美國能源部計畫在2021年開展一個每秒100京/一億億億(1018)次浮點運算等級的機器。

這些怪獸級的超級運算機器,不僅是用來進行深度學習訓練的利器,也是EDA工具業界得以推出雲端化解決方案的原因

EDA大舉走向雲端

EDA工具業者近來在雲端布局上動作頻頻,如益華電腦(Cadence)近期便宣布推出「Cadence Cloud」。這個雲服務的內容包羅萬象,並皆能促使Cadence的工具通過雲端的槓桿作用,將效能表現推升到新的境界。有些工具因為可以擴展到上百或上千個內核,而成「雲端就緒(Cloud-ready)」的設計工具。另一種方法則是使用大量內核,藉由平行運算架構更快地完成運算任務。這種方法的最好的例子是「元件庫特徵化(Cell-library Characterization)」,使用者可以在上百個Corner及上千個元件中找到成千上萬正在處理的工作。

高度平行化與使用大量運算核心,對IC設計的許多環節而言,可以帶來很大的速度優勢。路易斯.卡羅爾(Lewis Carroll)所著的        「愛麗絲鏡中奇遇」(編按:本書為愛麗絲夢遊仙境的續作)中有一段著名的話可以代表設計規則檢查(DRC)小組組長的觀點:

紅皇后回答:「那真是個慢郎中的國家!在這裡,你必須拚命的跑,才能留在原地;如果你要到另一個地方,你要跑得比剛才快一倍才行。」

對DRC來說,每增加一個流程節點,需要檢查的設計規則數量就會翻倍。更嚴重的是,這些規則的複雜性亦以兩種方式遞增(圖2);其中一個是「由真實的物理尺寸所決定的規則」,最典型的就是跟微影(Lithography)製程效應相關的規則。這意味著隨著尺寸越小,就會有越多的多邊形需要處理;其次是規則本身就變得更加複雜。在晶片開發的早期,幾乎所有規則都是簡單的最小寬度、最小間距或封裝規則,沒有任何規則取決於互連中的當前方向、沒有金屬反射規則、沒有因開放平台通訊(OPC)不允許某些尺寸而導致的規則、也沒有用於「多重圖形(Multiple Patterning)」的著色規則。

圖2 設計規則數量成長趨勢

由於「縮放定律(Dennard Scaling)」已經結束,以及半導體產業的某些因素,電腦運算效能的成長速度已經放慢,結果就是晶片設計過程中的DRC步驟,需要越來越長的運行時間。

就像計算機科學中只有三個數字(0,1,∞)一樣,對EDA使用者來說,運算任務的執行時間其實只有四種等級:

1.在我去喝杯咖啡或回覆電子郵件時,工作就已經結束了。它的運行速度已經夠快,如果能更快當然是最好,但那不是重點;

2.運算任務大概需要吃一頓飯的時間,所以使用者每天有兩次設計迭代(Iteration)機會,就是吃午飯跟晚飯的時間;

3.運算任務要花一整個晚上執行,所以設計者每天都會有一次設計迭代;

4.運算任務需要好幾天的時間執行,所以使用者會盡可能的避免運行整個晶片設計,但這在設計簽核(Signoff)時是無法避免的。

不用說,第一、二甚至第三種狀態,都比第四種狀態更可取。但實際情況是,不只Signoff DRC無法在一夜之間完成,跑個三天都不算罕見,甚至連某些子平台也需要超過24小時的運行時間。更糟糕的是,DRC需要具有大量記憶體及處理器核心的機器,而它們價格昂貴,因此很少見。

目前業界所使用的典型「作業調度程序(Job Scheduler)」(如LSF或RTDA)無法優雅地處理它們。如果你需要四台同時具有巨大記憶體容量的機器,那麼作業調度程序必須讓第一到第三類作業空等,讓第四類作業有最高優先順序。這會在等待時浪費一些最昂貴的計算資源,而且由於這樣的機器很少,所以即使是開始工作的延誤,也是很大的浪費。

因此,業界需要評估不同的做法,在自有特殊伺服器農場或使用公有雲提供的大量普通伺服器之間進行權衡。不過,相對的,軟體工具也必須具有這種支援大量平行化與不同運算架構的彈性。

新軟體架構支援各種布署方案

以Cadence為例,該公司近期發表的Pegasus就可以在模擬或客製的環境中運行,並與Virtuoso平台以及Innovus實現系統(Implementation System)無縫整合。關鍵是它使用目前晶圓廠認證的PVS平台。

和其它命名中帶有「-us」字尾的產品相比, Pegasus的平行化程度更高。它是第一個將流水線基礎設施與資料流架構(Dataflow Architecture)結合的解決方案,可在上百個CPU上實現「近線性可擴展性(Near-linear Scalability)。它是雲端就緒的產品,能夠在內部伺服器或亞馬遜雲端服務(AWS)等外部商業雲端上運行。對使用者來說,Pegasus可以直接在高峰使用期間,例如DRC送交設計定案(Tape Out)時,從公有雲逐步添加大量資源。

Pegasus的早期客戶之一是德州儀器(TI);與其現有的解決方案相比,他們已成功使用大量的Pegasus CPU,大幅降低了全晶片DRC的運行時間。另一位早期客戶是Microsemi,它發現以前需要運行24小時以上的工作可以在幾個小時內完成。結果如圖3所示。在沒有Pegasus的情況下,在「時序收斂(Timing Closure)」後可以預見昂貴的延遲,而在有Pegasus的情況下,DRC及最終的「工程變更指令(ECO)」週期是快速且可預測的。

圖3 高度平行化並可支援外部運算資源的Pegasus可明顯減少DRC執行的時間。

根據Cadence彙整的資料,在使用360個處理器核心的條件下,三個不同客戶的實際設計加速了6倍到12倍不等。更重要的是,Pegasus還可支援更多核心,且效能還可持續增加。圖4顯示,Pegasus可支援160、320、640個CPU核心,且效能可持續提升。許多平行化工具在數十個CPU核心上運作,可表現出令人驚艷的加速成果,但核心數量增加到一定程度後,再添加額外的處理器核心,就不再有進一步的改進,甚至在某些情況下,由於協調CPU資源的工作成為瓶頸,反而會導致速度減慢。

圖4 Pegasus的可擴展性

因此,Pegasus允許企業利用內部伺服器中的大量通用伺服器,有效地擴展到上百個核心。當內部資源耗盡或無法使用時,Pegasus可以銜接雲端上的資源繼續使用。

不過,筆者還是要提醒,當開發團隊擁有近乎無限量的處理器核心時,很容易造成運算資源的浪費,而這個代價可不便宜。浪費模擬或浪費迭代太容易了。

EDA上雲端 機器學習水到渠成

當雲端及EDA都匯集在一起時,機器學習的元素,就可以很自然地加入其中。

與Cadence Cloud同時發表的Liberate Trio,就是一個機器學習自然融入EDA工具鏈的實例。該套件可以在在無新資料的情況下,利用機器學習來發現研發團隊可能認為需要完成哪些運算任務,以及哪些運算任務可以安全地跳過。

幾年前在DAC舉行的小組討論會上,Microsemi的Sifuei Ku令人難忘地將舊的做事方式描述為「大英博物館算法(British Museum Algorithm)」。

筆者相信,很多人在大型博物館(如大都會藝術博物館或羅浮宮)都有過類似經歷。博物館通過語音導覽來指引參觀者,並帶參觀者了解其收藏品的亮點,但更好的解決方案是,這些語音導覽可以在了解使用者感興趣的內容後,恰當的更新其引導路徑,把參觀者帶到他感興趣的展覽品所在地,並提供相關內容。這更像是Liberate Trio所做的事情;它在得知必須做什麼之後,恰當的調整它的行動。

元件庫特徵化(Library Characterization)的一大挑戰是直觀的舊規則不再適用。開發者可以賦予某些參數的特性為「慢-慢」、「典型」、及「快-快」(在相同的電壓及溫度下),並以為「典型」介於慢速與快速參數之間,但實際上的情況可能不是如此。就像如果你保持過程不變,並在不同的溫度下賦予特性,那麼中間的那個可能不在高與低之間。顯而易見的解決方案,無處不在的賦予萬物特性,這需要太多的計算,或者至少需要比基本需求多得多的計算。機器學習可以確定哪些模擬運行真正需要完成。這不是可以提前靜態完成的事情–它需要先前模擬的結果來做出決定。

No-Human-in-the-Loop設計流程

Library characterization並不是機器可以學習的唯一場所。我們在EDA中做的很多事情是通過更加線性的流程來試圖避免迭代,但是,我們必須承認,還是有很多迭代。例如,你執行了融合,但不喜歡其結果,所以你調整了一些參數並再次執行。當然,在類似融合的過程中,有大量的迭代在幕後進行(幾十億次迭代),但對於研發者來說線性的,只有在必須調整參數時,研發者才會將其視為迭代。

然而,設計師有很多工具所沒有的(非機器)學習:以前運行工具的經驗、在以前的設計中使用相同IP的體驗、對工具可能會如何響應參數調整的感覺。一個更微妙的問題是難以明確優化權衡:「盡快地設計,但不要以太多的面積或功率為代價」,這個要求太籠統了。此外,在區塊(Blocks)之間亦存在權衡。例如,可以在相鄰區塊之間交換時序預算(Timing Budget)。

雲端的輔助性在此顯現。研發者可以為參數設置若干值、把這些值都嘗試了,然後選擇其中的最佳值。使用雲端,可以並行嘗試所有參數集,但這只能部分的解決問題。

我們也希望擺脫「大英博物館算法」,並將人類帶出循環,以便今天需要研發人員進行的干預及迭代被機器學習取代。當然,循環中沒有人是理想的:你只需要在成千上萬的伺服器上開始工作,並希望某天或一周後,它完成一個符合所有規範的解決方案。你可能已經不再需要查看幕後運作了,就像軟體程序設計者不必費心去查看生成的彙編代碼一樣。

除NVIDIA及卡內基.梅隆大學(CMU)以外,美國國防部屬下的一個行政機構國防高等研究計畫署(DARPA)也希望這樣做,並根據IDEA(智能電子資產設計)計畫授予Cadence支持這項工作的合約,作為其電子復興計畫(Electronic Resurgence Initiative)的一部分。

為了完成計畫章程,Cadence創建了「機器學習驅動的智能協作自動生成電子系統(MAGESTIC)」研發計畫(圖5),Cadence合作的團隊包括卡內基.梅隆大學及NVIDIA。

圖5 MAGESTIC計畫希望打造以ML為核心的P&R流程。

Cadence MAGESTIC計畫目標是在為期四年的時間內達成,其具體目標如下:

.推動機器學習的先進技術,以開發優化性能的算法;

.擴展對7nm及以下的高級「互補式金屬氧化物半導體(CMOS)」流程節點,以及更大的流程節點的支持;

.自動設備的布線及調整,以提高其可靠性、電路性能及彈性;利用機器學習、分析及優化,展示改進的功率、性能及面積(PPA);

.分段引入技術、允許系統向用戶學習、並允許用戶了解如何最好地利用工具來實現預期的結果

動機

雖然本計畫的重點是DARPA的航太及國防需求,但仍有明顯的商業應用。這也很重要,因為美國認為這是保持技術領先地位的戰略要務。軍方為大多數計畫購買的零件數量都很少,因此他們盡可能的轉而使用COTS(商用現貨軟體)產品,這使他們可以將有限的資源集中在沒有商業的領域。

但是尖端的設計越來越困難和昂貴。我不確定我是否完全相信傳聞中「5億美元」這個數字,但肯定會花費很多人及很多個月。DARPA無法負擔高通(Qualcomm)、英特爾(Intel)或華為所能組成的、擁有上百名工程師及數十萬台伺服器的規模。這些晶片的出貨量達數億顆,因此可以分攤投資,但是航空航太及國防計畫則不能。在商業領域中的大多數市場而言,因為沒有足夠的銷售量而存在同樣的問題。即使在汽車領域,全世界每年“只”生產一億輛,任何半導體公司都不可能在特定功能中拿下所有的單。

圖6突顯了三個問題:

圖6 先進IC設計所面臨的三大差距

.生產力差距:需要很長時間才能使設計接近所需要的水平;

.品質差距:設計達不到預期的水平;

.可預測性差距:反復的重新設計(物理設計和簽收,或實際的晶片重新設計)延遲了最終產品的交付。

DARPA的專案經理Andreas Olofsson就曾表示,憑藉超過1億美元的資金,IDEA及POSH計畫是迄今為止最大的EDA研究計畫之一」。DARPA的目標是改變這個產業的經濟性,並使設計低容量晶片變得經濟、不會產生過高的設計成本、並且設計時間更短。

DARPA的目標是創建一個如圖7的流程:

圖7 DARPA ERI希望建立的設計流程

.雲端驅動(Cloud-enabled);

.無人回路(No-Human-in-the-Loop);

.低於24小時的周轉時間;

.可接受的彈性質量。

本計畫不僅僅涉及最大成本源的「系統單晶片(SoC)」,它還涉及「印刷電路板(PCB)」的創建。

雲端/大數據/機器學習三位一體的未來

在某種程度上,MAGESTIC將在雲端中運用大規模並行性(基本上越多計算能力就越有用)、大數據、以及機器學習技術來代替工程師手動調整事物並進行迭代。當前工具忽略了大量可用數據:先前在同一設計上以相同工具進行的運行、類似設計的結果、所有IP區塊的累積知識等。經驗豐富的工程師在決定如何改變設計或工具控制旋鈕以啟動新的迭代時,已經利用了這種知識,MAGESTIC是要讓工具能夠自己完成這些動作。

筆者知道,很多軟體工程師都認為FPGA設計是一種只有熟練的工程師才懂,像黑魔法一般的神奇技術,但如果我們能讓晶片設計像FPGA設計一樣輕鬆,整個產業的情況就會大為改觀。如果我們能夠真正做到一站式方案,設計團隊就能在開展一個工作專案十天內,得到一個完全正確的解決方案。這將改變系統設計的世界。

(本文作者任職於Cadence)

相關文章

- Advertisement -
- Advertisement -

最新文章

- Advertisement -

熱門文章

- Advertisement -

編輯推薦

- Advertisement -