GPU大到快極限了怎辦?

作者 : 黃燁鋒,EE Times China

為什麼不將現在的GPU做得更大,在一顆裸晶上堆更多的運算資源呢?如果摩爾定律恆定持續,同面積內容納更多電晶體,則這種方案是可持續的。但在摩爾定律放緩的情況下,要在一顆裸晶上塞下更多的繪圖運算核心,尺寸和成本都是無法接受的…

消費用戶市場,普通用戶都能用上16核心甚至64核心處理器的PC。這可不是單純堆核心就能「天下太平」。以目前CPU核心的規模和可接受的成本,消費電子裝置上一顆晶片就達到這種數量的核心數目,與Chiplet的應用是分不開的。

Chiplet是這兩年業界的香餑餑。前不久的ISSCC會議上,Chiplet也是今年的熱門議題。AMD從Zen架構開始,Ryzen系列處理器就全面應用了Chiplet技術。Chiplet並不是什麼新技術,更早提的多晶片模組(multi-chip module,MCM)就是應用了Chiplet的一種晶片方案。

簡單來說,MCM通常是指將多個裸晶(多個IC或晶片)封裝在一起,構成MCM的一個個裸晶,或者功能電路模組,即是Chiplet。多個Chiplet之間能夠協作,構成更大的晶片,也就是MCM。有時,MCM/多晶片封裝(Multi-chip Package)又被當作某一類封裝方式。

不過本文探討的MCM/Chiplet可能有一定程度的窄化,這裡不探討類似英特爾(Intel)Kaby Lake G那一類方案,即便它算是典型的Chiplet應用(以及像很多近代Intel處理器那樣只將處理器裸晶和PCH裸晶分開的那類Chiplet,以及HBM儲存Chiplet),可能單純稱其為MCM會更合理。

 

 

以AMD的Ryzen 3000系列處理器為例,每4個核心(外加快取)組成一個CCX,兩個CCX就組成一個CCD——也就是一個裸晶或Chiplet,一顆處理器晶片上就會有多個這樣的CCD。另外還有個I/O裸晶作為通訊中心(cIOD),連接各個裸晶,如上圖所示。

值得一提的是,Ryzen 3000處理器的CCD部分製造採用7nm製程,而cIOD則選擇了12nm製程,這就很能體現Chiplet在製造上物盡其用、節約成本的優越性。

如果說處理器的Chiplet/MCM商用已經全面落地,那麼裸晶尺寸更大的GPU能不能也採用MCM的方案?這是本文要探討的話題,MCM應用於GPU還需要多久?借此也能窺見Chiplet作為此類高運算力晶片的技術方向時,半導體製造已經走到了哪裡。

當GPU裸晶尺寸大到嚇人程度時

如果只看消費市場,骨灰級玩家對GPU運算力的追求是無止盡的,只怕運算力不夠,不怕價格、功耗有多誇張。繪圖運算力的饑渴從未停止過:1998年3dfx引入SLI技術,即2個或者更多的顯卡一起上,實現更大規模的繪圖平行運算。

SLI同類技術(包括AMD的CrossFire)並未大規模普遍化,主要是因為這樣的技術不僅有硬體級別的支援要求,而且對遊戲開發者也有要求。在很多不支持多GPU平行運算的遊戲中,此類方案甚至會使遊戲體驗變差,不過多GPU擴展的方案,在當代資料中心還是比較常見。

 

 

基於這個思路,如果將多GPU的層級下沉到多裸晶——也就是一個GPU之上,有多個Chiplet,堆砌更多的繪圖運算單元,好像也是完全行得通的方案。只不過多GPU(或多核心顯卡)需要跨系統或者跨板級,而多裸晶則是基於同一個基板的封裝級方案,延遲和頻寬理論上也比跨PCB板更有優勢才對。

那麼為什麼不直接將現在的GPU做得更大,在一顆裸晶上堆更多的運算資源呢(也就是所謂的monolithic)?如果摩爾定律恆定持續,同面積內容納更多電晶體,則這種方案是可持續的。但在摩爾定律放緩的情況下,要在一顆裸晶上塞下更多的繪圖運算核心,尺寸和成本都是無法接受的。

 

 

目前的顯卡主流產品中,AMD Radeon RX 6900XT的單裸晶尺寸達到了519mm2,Nvidia Geforce RTX 3090則達到628mm2。這種裸晶尺寸也算是不惜血本的代表了,逐漸逼近微影機可處理的最大尺寸(rectile limit, 858mm2)。未來再為GPU加運算核心,單裸晶方案會有極大難度,這是GPU考慮MCM/Chiplet方案的先決條件。

從成本來看,這個問題大概會更明朗。即便不考慮切割大面積晶圓可能造成良率低下的問題,更小裸晶也能帶來更高的成本效益。300mm的晶圓最多可製造約114片22 × 22mm(接近Vega 64尺寸)片單裸晶;如果切分成更小的11 × 11mm,即原有每片裸晶可獲得4片更小的裸晶,則很大程度減少了晶圓切割邊緣浪費,就能造488片裸晶——如果這些裸晶在理想情況下每4片組成一顆MCM晶片,則產量就高了大約8%。

當然這其中並未考慮晶圓不同形狀的最佳化方案,也沒有考慮製造缺陷之類的問題,而且MCM晶片還需要耗費更多的裸晶來做專門的通訊(如Ryzen處理器的I/O裸晶),但Chiplet/MCM能夠實現的成本節約仍然是顯著的。

EE Times專欄作者Don Scansen不久前撰文提到,「AMD運算出以Chiplet方法製作EPYC處理器時,會需要比單一晶片多出10%的矽晶圓面積做為裸晶對裸晶的通訊功能區塊、冗餘邏輯(redundant logic),以及其他附加功能,但最後整個Chiplet形式處理器的晶片成本,比單晶片處理器節省了41%。」

總的來說,Chiplet/MCM本質上是在摩爾定律止步不前的當下,為進一步提高晶片運算力,採用的一種控制成本的方案。這裡的成本控制實際上還表現在IP的複用和彈性,Chiplet有時可以「複製黏貼」的模組化方式,靈活地存在於晶片之上。AMD如今的Ryzen處理器能夠如此便捷地堆核心,並且在多執行緒性能表現出對Intel的碾壓優勢,究其原因和Chiplet是分不開的。

GPU應用Chiplet的阻礙

不過GPU要應用Chiplet卻並不是一件簡單的事,就好像顯卡SLI (或雙核心顯卡)經過了這麼多年,都未普及一樣。Raja Koduri之前還在AMD的時候提過,GPU可能會採用Infinity Fabric方案(AMD Ryzen處理器的一種互連方案);這在當時被認為是MCM型GPU提出的依據。不過眾所周知,Raja Koduri後來就離開了AMD,這個規劃的延續性成為未知。

 

 

2019年Nvidia宣佈在實驗室打造一款名為RC18的AI處理器。這顆處理器採用16nm製程,更重要的是選擇了多裸晶解決方案。晶片整體包含36個小型模組,每個模組主要由16個PE (Processing Elements)構成,外加RISC-V核心及對應的快取,另外還有Nvidia的GRS (Ground-Referenced Signaling)互連。當時Nvidia提到,RC18的存在顯示很多技術的可行性,包括可擴展的深度學習架構,以及高效的裸晶對裸晶方案。

這顆晶片對於未來的Chiplet型態的GPU而言可能是個重要範本。不過對於繪圖運算的GPU而言,在同一顆晶片上渲染畫面影格,要分配到不同Chiplet之上,難度還是會比這類AI晶片更大。2018年AMD RTG團隊資深副總裁David Wang在接受採訪時,曾經提到過MCM GPU要實現起來並不簡單,「我們在看MCM的實現方法,但目前尚無法定論,傳統遊戲繪圖運算會應用類似技術。」

Wang提到,「從某種角度來看,其實這也就是在單一封裝上去做CrossFire (AMD版的SLI方案)。其挑戰在於,我們需要能夠做到在硬體層面對開發者不可見,否則其發展就不會順利。」而且,「GPU在非一致性記憶體訪問(NUMA)架構,以及一些特性方面有著一定的限制…」,尤其相比CPU,繪圖運算負載的這種設定會更有難度。

 

 

這話的意思是指,第一,如果MCM GPU需要遊戲開發者花額外的時間做開發上的調整,或者增加開發難度,則成為推廣MCM GPU的阻礙。第二,不同裸晶之間互連效率、資料一致性問題:包括在Chiplet之間切分繪圖運算管線,以及彼此之間儲存訪問的差異性,都會為設計帶來更高的複雜度。

SLI即以前的多GPU(或板級多晶片GPU)方案實際上是這兩個問題的放大版本。針對開發者時開發難度大;不同GPU之間的工作部署有難度(而且多GPU方案非常依賴於多層級的系統互連,這個過程中的資料移轉、同步帶來的功耗問題也比較大;所以最終互連,達成的有效頻寬和每位元消耗的能量都不盡人意)。

其中後一個問題也是Chiplet技術演進探討的熱門議題,即便已經商用的Chiplet CPU產品,依舊在互連方面有著持續改進的空間。

Chiplet將應用於GPU的幾個先兆

MCM GPU真正在這兩年呼聲特別高也不是沒有原因的。其中有幾件指標性事件可能說明MCM GPU離我們並不遙遠了——即便最早一批MCM GPU可能會是鎖定資料中心,並在後續才逐漸下放到遊戲和繪圖運算市場。

 

 

首先是Intel,Raja Koduri今年一月在Twitter上發佈了一條推文,展示Intel即將推向市場的XeHPC,如上圖所示——Xe GPU針對HPC高性能運算時,作為獨立GPU形態存在。

這顆代號為Ponte Vecchio的晶片看起來還是頗為壯觀。就這張圖片來看,這顆GPU運算核心可能主要由上下兩個Chiplet構成,圍繞四周的應該是HBM儲存,還有I/O或者其他屬於Xe特性的組成部分。Chiplet之間可能採用Intel的EMIB (Embedded Multi-die Interconnect Bridge)連接。先前Intel也提過Ponte Vecchio之上應用了Foveros 3D堆疊技術,具體情況未知。不過Chiplet在GPU上的應用,或者說真正的MCM GPU,在此也是初見端倪。

除此之外,2019年底Twitter傳出一則消息,稱Nvidia新一代Hopper架構(Ampere後續架構)GPU將以MCM的形態問世。

 

(來源:MCM-GPU:Multi-Chip-Module GPUs for Continued Performance Scalability, Nvidia)

 

事實上,Nvidia在2017年的ISCA上就發表過一篇題為MCM-GPU: Multi-Chip-Module GPUs for Continued Performance Scalability的報告。雖然這篇報告中提到的方法,只是在Nvidia實驗室裡以類比的方式將MCM GPU,與單裸晶GPU和多GPU方案進行比較,但這也顯示Nvidia的確有在探討其可行性。

這篇報告有具體探討不同層級的多晶片方案,比如SLI那樣的多顯卡方案,以及板級多晶片方案、同封裝下的多裸晶方案、單裸晶方案等、互連頻寬和開銷問題;並且認定當代技術儲備,比如說基板尺寸、裸晶之間訊號通訊技術(如Nvidia的GRS)都正走向成熟,為MCM GPU的實現開創了技術條件。

 

 

 

此外,這篇報告提到了幾個最佳化方案,包括導入L1.5快取,不同Chiplet之間執行緒調度和資料劃分方案。從這套方案的結果來看(如上圖),雖然某些測試項有不盡人意之處,但整體上MCM GPU能夠實現在性能上比多GPU方案的顯著領先(且功耗遙遙領先,0.5pJ/bit vs 10pJ/bit),而且性能較同運算硬體資源的單裸晶方案,並沒有太大損失(且需注意,這種單裸晶方案現實中是研發不出來的)。而相比目前能夠製造的最大單裸晶方案(128 SM單元),Nvidia預設中的這套方案有45.5%的性能優勢。

文中提及將這樣的方案應用在HPC大規模集群中,能夠極大提升性能密度,系統層級減少機櫃數量,以及對應的系統級網路、通訊規模變小。最終實現通訊、供電、製冷系統的耗電量極大節約。只不過這篇報告,整體上更多仍停留於紙面和模擬。

 

 

最後AMD作為已經在CPU上開啟Chiplet的市場玩家,今年年初出現一則其2019年申請的專利,名為「GPU Chiplets using High Bandwidth Crosslinks」。這項專利的很大一部分,旨在解決MCM GPU在開發層面困難的問題。

這項專利提到系統中包含一個CPU,它在通訊上與GPU Chiplet陣列的第一顆Chiplet連接。CPU和這顆GPU Chiplet透過一條匯流排連接;而這顆GPU Chiplet和後面的Chiplet則透過一種passive crosslink連接。這裡的passive crosslink實際上是個被動中介層(interposer)裸晶,專門用於Chiplet之間的通訊,以及負責將SoC功能切分成更小的Chiplet (如上圖所示)。

 

 

針對儲存一致性問題,每顆GPU Chiplet都會有其各自的LLC,也就是L3快取。LLC跨所有的Chiplet實現一致性,也是實現跨Chiplet儲存一致性乃至提升MCM GPU效率的關鍵。

這套系統中,僅第一顆GPU Chiplet接收來自CPU的請求,這樣一來對CPU而言,GPU就好像是傳統的單裸晶方案一樣,對繪圖運算開發也就比較友好了。無法得知AMD是否已將這項專利付諸實現,GPU本身內部的通訊延遲理論上可能會更高。

不過如前所述,MCM GPU最早應用的理論上可能還是資料中心、HPC這些領域。畢竟如Nvidia在報告中所述,這樣的設計對於資料中心具備了更天然的替代優勢。而在技術逐步準備就緒之際,MCM GPU的出現的確只是時間問題,包括下放到遊戲市場。Intel、AMD和Nvidia,哪家將率先踏出這一步,值得拭目以待。

本文原刊登於EE Times China網站

 

 

 

 

 

加入我們官方帳號LINE@,最新消息一手掌握!

發表評論