如何設計一顆40PFLOPS量級的AI晶元?

Nvidia剛剛發布的最強「GPU」DGX-2,由16顆V100+12顆NVSwitch晶元組成,能夠提供2PFLOPS。而單顆V100的Deep Learning處理能力是120TFLOPS。如果我們要設計一顆能夠實現40PFLOPS處理能力的AI晶元,該怎麼操作?其實挺「簡單」,把晶元面積儘可能做大。那麼單個裸片(Die),最大能做多大呢?當然就是佔滿一片晶圓(Wafer)的面積。這就是今天要討論的話題,Wafer Scale Integration(WSI)。


這不是一個憑空想像的話題,傳說有人正在嘗試一個8英寸x 8英寸的WSI。而它實現的指標就是40PFLOPS,能耗17KW(16nm工藝)。本文並不是為了討論這個傳聞,而是為了探討WSI的可能性,畢竟之前的嘗試都失敗了。有個形象的感覺,我在A4紙上按照1:1的比例畫了一下這個晶元的裸片(Die)想像圖(面積41290.24mm2)。大家可以感受一下,差一點A4紙就放不下了。作為對比也畫出了Nvidia的P100晶元的Die(假設是正方形)(面積是610mm2)。這裡用P100對比,是因為它也是用的16nm工藝。

做晶元的同學應該都了解一片晶圓只產出一個裸片意味著什麼,所以當我把這張圖貼到朋友圈的時候也引來了激烈的評論。除了問這是誰家的之外,問題主要圍繞在良率,容錯,封裝,散熱等話題上。當然,大家的問題都問到了點子上。


和我們之前討論過的脈動陣列(脈動陣列 - 因Google TPU獲得新生),非同步電路(「傳說中」的非同步電路是否能在AI晶元中異軍突起?)技術一樣,WSI並不是什麼新技術。從Wikipedia的「Wafer-scale integration」詞條就可以看出它的歷史。在上個世紀70和80年代,就開始有很多這方面的嘗試,其目標主要是服務於超算領域(massively parallel supercomputers)。如果能夠實現,好處是顯而易見的,可以在一顆晶元上實現大量的運算和存儲資源,而它們之間的通信可以使用晶元上相對「物美價廉」的連線資源。但是,當時的所有嘗試都失敗了。

在1984年的ISSCC會議上,有個關於WSI的討論,組織者之一是David A. Patterson。在會議紀要中可以看到如下對問題的描述:

the 60s, various approaches were tried, primarily to reduce system cost. Then, the scale of integration was too low and the ratio of redundant circuits to active circuits was too high to be cost-effective compared to more direct means of improving yield.

Today, there are several additional motivations for wafer scale integration/redundancy including: system reliability; high performance through the use of very wide, fast data busses for array/systolic processors and CPUs; and system flexibility and reconfigurability.

The major issues for application of WSI include generality; technical problems such as testing and yield statistics; and practical problems such as packaging, ruggedness, repairability, and system partitioning.

而在後面的討論中,既有樂觀的看法,即未來5年內隨著相關晶元技術的進步,就可以實現實用的WSI系統;也有悲觀的論點,即它永遠不可能成為主流的晶元技術。雖然我們很難預測未來,但至少到目前為止,後者更為準確。

雖然是冷門技術,但相信大家在看到40PFLOPS這樣的指標時,還是會有興趣再做一點深入的分析。其實我第一次聽說有公司在做這東西的時候,基本是不相信的,直到從很多側面得到了印證,才開始認真的思考它的可能性。


如前面所說,WSI最大挑戰主要包括兩個方面。首先是和矽片生產引入的缺陷相關的技術問題。然後是集成中面對的實際問題,包括封裝,散熱,供電等。我們先看看前者。

晶元生產過程中一定會產生缺陷,缺陷應該是以工藝複雜度不同而以不同概率出現在wafer上。以平均缺陷密度D0表徵。一般的晶元生產中,一片晶圓都會切割出很多裸片。對於有缺陷且無法「修復」的晶元,剔除就可以了。在同樣的缺陷分布情況下,晶圓上的裸片越大(分割的數量越少),缺陷的影響就越大(剔除的面積就約大)。上圖就是反映良率(yield)的和裸片面積的關係。對於WSI這種一片晶圓一顆裸片的極端情況,如果剔除就是整個晶圓都浪費了。所以,如果只看一片Wafer,我們可以說它的良率是『0%』。WSI的良率應該看所有Wafer中能夠正常(或者基本正常)工作的裸片的比例。不難看出,WSI的挑戰主要就是在一定會有錯誤的情況下,如何盡量減少錯誤的影響,即容錯設計的問題。

對於容錯設計,其實在晶元設計中是有過大量的探索和經驗的,有的也相當成熟。對於運算,存儲和互連中可能出現的錯誤及修復方法(包括硬體和軟體的修復),我們可以找到很多參考。而考慮到AI晶元的一些特點,容錯設計可能會相對容易處理一些。第一,AI晶元中,存儲器所佔比例很高,而存儲器的容錯設計是比較成熟的技術。第二,考慮到AI演算法的特點,不論是DNN還是類腦計算(SNN),都有可能在演算法層面做一些容錯設計。([2]中也可以看到對此的描述)第三,AI晶元一般採用比較規則的多核架構(以NoC連接),在WSI中可以比較自然的分成不同的區域(類似於一個Wafer上虛擬的「分割」成很多裸片)。這樣,即使出現無法通過軟體修復的缺陷,還可以通過犧牲性能,關閉某個獨立內核的方法來部分解決。

在各種缺陷當中,最為頭疼的是短路問題,一旦電源地短路,整個域都會掛掉。電源地短路的可能性很多,還是相當麻煩的。這一點還不知道是否有好的辦法。另一個問題是製程均一性問題,高端製程很難保證整片wafer這麼大區域內器件性能一致,可能導致不同區域性能不一致,wafer中心和邊緣的核心速度不一致。在這種情況下,晶元間互連需要特別處理,而系統運行和調度也很有挑戰。

一些容錯設計需要建立在定位缺陷的基礎上,只有準確定位了缺陷的位置,才有可能實現修復。如果是同步設計,基本上現有的DFT方法問題不大,主要是測試規模的問題。另外,時間中應該會進行大量的功能測試,需要比較長的時間來進行測試,修復和調試。不過,這種規模的晶元肯定是以系統的方式銷售,即使需要更多的調試時間也問題不大。

當然我們在實踐中不可能做到100%容錯,而最終的考量還是經濟性,即付出多少代價(比如冗餘的晶元面積,性能損失等等)來預防,測試和修復缺陷在經濟上是可以接受的。這一部分話題挺多,以後有機會可以深入探討一下


其實,相對於容錯的問題,我對實現中的封裝,散熱和供電等問題更為好奇和擔心(主要是這方面經驗比較少)。而[3]這個Google的專利「SUPERCOMPUTER USING WAFER SCALE INTEGRATION」,讓我對這個問題有了比較樂觀的看法。這個專利是Google 2015年2月申請的,主要就是解決WSI的封裝,散熱和供電等問題。下圖是這篇論文的一個實施例的概況,300mm直徑(12吋)的Wafer,89個chip site,每個大約邊長24mm。整個晶圓進行封裝而不切割。

The full wafer is packaged without dicing. The chips are composed of an active chip area, which contains active semiconductor devices such as processors, memory, and other logical elements, and a connection Zone 22 around the perimeter, which contains no active devices. The chips may be identical, or maybe a mixture of different chips, and may be wired together using the upper metal layers.

其中在B的位置的剖面如下圖所示,其中主要是工藝實現的內容。

FIG. 4 shows an upper layer 41 formed of tetraethyl orthosilicate (TEOS) or fluorinated TEOS (FTEOS) based oxide insulators with embedded Cu BEOL 42 wiring, a lower layer 43 formed of a low-k dielectric insulators with additional Cu BEOL wires, and active devices 44. There is no crack stop structure at the perimeter that would block connections since the dies are not diced out of the wafer. The upper levels of wiring are used for communications between chips. Exposures are 「stitched together to form connections across the boundary between die/exposures. The die/exposures either butt against each other or have a slight overlap. No active devices 44. Such as transistors, etc., are present in the connection Zone 31. The chips/dies may all be identical, or may be a mixture of unique chip types.

下一個重要的內容就是散熱。下面幾張圖是從下(貼近矽片)到上的多個封裝層的式樣。而這些層就是為了實現所謂的「microchannel cooler」。「The individual layers of the wafer scale microchannel cooler and glass manifolds are shown schematically in FIGS. 5A-F, where the approximate thickness of each layer is also indicated.

The liquid flow path through this structure would start with an inlet fitting, proceed through an inlet opening to a horizontal manifold, through an opening in the manifold separator to a vertical inlet manifold, and then through a vertical inlet slit down to the microchannel wafer, where the water would be confined to the horizontal silicon channels until it reaches a vertical outlet slit and flows through a vertical manifold, an opening in the manifold separator to a horizontal manifold, and exits through an outlet opening and an outlet fitting. The vertical manifolds are tapered since coolant is being continuously provided to, or received from, the vertical inlets or outlets, and slits and microchannels along the length of the vertical manifolds.

這部分看的不是很明白,不過簡單來說應該就是通過微導管來實現某種水冷的機制。

再後面還有供電和I/O的示意圖。其中13是裸片的襯底(die substrates),水平方向;14是與之垂直的供電板;17是垂直的I/O板。最下面的圖是從上往下(13在下方)看的俯視圖。

把這些所有的內容組合在一起,就構成了下圖這樣的WSI完整形態。上面是供電和I/O,下面主要是散熱部分,除了之前看到的那些層次,還包括一層玻璃(15)和用於液體循環的管道(16)。

Google這個專利看起來很有意思,但他們是否真的做過實驗來進行驗證,以及這種方法是不是能實際操作不清楚了。


到這裡,最後剩下的問題就是,在WSI可做的前提下,如何能做一個能實現40PFLOPS運算能力的系統。相對而言,這個問題似乎要號回答一些。之前我們討論過的很多架構(可以參考:Nvidia Volta - 架構看點,脈動陣列 - 因Google TPU獲得新生,解密又一個xPU:Graphcore的IPU,Graphcore AI晶元:更多分析,Groq把AI晶元的性能推向新高),放到這樣大的晶元上似乎都有可能達到這樣的指標。比如1984年的論文[4],討論的就是脈動陣列怎麼通過WSI實現的問題。

再把腦洞開大一點,[2]中所說的3D WSI似乎可以把系統的處理和存儲能力擴展到更大規模,也許真能實現達到人腦規模的「platform for a wafer scale neuromorphic computer」也說不定,如下圖。


最後聲明一下,本文的目的和大家一起了解一下WSI的可能性,對我來說也是一種學習,難免有不準確的地方,還請真正研究這個領域的朋友批評指正。

參考:

1. P. A. Ivey, "The ELSA Wafer Scale Integration Project", IEEE Transactions on components Hybrids & Manufacturing Technology, vol. 16, no. 4, November 1993.

2. Arvind Kumar, 「3D Wafer Scale Integration: A Scaling Path to an Intelligent Machine」,Neuro-Inspired Computational Elements Workshop Berkeley, CA March 9, 2016

3. Google, "SUPERCOMPUTER USING WAFER SCALE INTEGRATION", US 9,568,960 B2.

4. H. T. Kung, M. S. Lam, "Wafer scale integration and two-level pipelined implementation of systolic arrays", J. Parallel Distributed Comput., vol. I, pp. 32-63, 1984.

- END-

歡迎關注我的微信公眾號:StarryHeavensAbove

題圖來自網路,版權歸原作者所有

本文為個人興趣之作,僅代表本人觀點,與就職單位無關

推薦閱讀:

TAG:人工智慧 | 晶元集成電路 | 晶元設計 |