最近半導體領域發生了一件備受關注的收購案:英偉達擊敗英特爾,以69億美金收購以色列晶元廠商Mellanox。英偉達是全球知名的GPU製造商,帶動也得益於AI的蓬勃發展,已經成為半導體炙手可熱的公司。另一方面,Mellanox以InfiniBand和乙太網產品線知名。此次收購的目的,是將英偉達的加速計算平台與Mellanox全球知名的加速網路平台結合,共同創建新一代數據中心級解決方案。英偉達葫蘆里賣的什麼葯?GPU在數據中心加速的現狀如何,優勢與劣勢又在何處?GPU,網路和數據中心,這三者又是如何結合起來的?

實際上,通過乙太網連接加速器已經不是什麼新鮮玩意兒,微軟早在2015年就開始在其雲計算服務Azure中布局了通過乙太網連接的FPGA在數據中心對服務進行加速的方案Project Catapult。該方案在每台伺服器的CPU和NIC之間放置一個有自己協議棧的FPGA,FPGA之間利用伺服器之間的乙太網進行互聯通信。該項目現在已經在Bing、Azure等業務上大規模的投入使用。在計算機網路系統NSDI2019上,微軟發表了最新的互聯繫統Direct Universal Access,進一步增強了整個數據中心的資源的互聯互通。

英偉達為了實現GPU互連,提出了NVLink和NVSwitch技術,基於此,英偉達在2017和2018年發布了DGX-1和DGX-2,其中DGX-2實現了16個GPU的兩兩互連。然而這種方案在數據中心層面的可擴放性(scalability)十分有限。首先,NVSwitch作為單板交換機,帶寬的可上升空間已經不大,可以預測通過NVLink+NVSwitch方案進行互連的GPU數量不會再有大幅上漲。此外,由於Intel並不買NVSwitch的帳,因此CPU成了限制GPU更大規模互連的瓶頸,這也將DGX限制在了單個主機上。(關於上面兩種互連方案的細節,可參見筆者另一篇文章

曼殊:AI時代加速器互聯高性能計算解決方案比較,FPGA+Ethernet VS GPU+NVSwitch?

zhuanlan.zhihu.com圖標

如此看來,如果使用乙太網連接GPU,就能從根本上解決GPU在數據中心層面的可擴放性問題。然而,與FPGA不同,GPU本身作為一個加速卡的存在,是無法作為一個主機使用的,無法單獨支持乙太網協議棧,直接處理網卡中的數據。也就是說GPU就無法像微軟Project Catapult中的FPGA那樣,繞開CPU獨立作為網路中的一個節點實現互連。

非常巧妙地,英偉達使用RDMA技術解決了這個問題,RDMA協議中應用程序可以繞開CPU直接與網卡交換數據,GPU支持與網卡分享內存。這樣,RDMA協議就能夠使GPU通過網路,直接讀取另外的GPU中的數據。通俗點說,既然GPU不能做主機,就讓網卡來做主機。英偉達此次收購的Mellanox的InfiniBand是最早實現RDMA的網路協議,Mellanox與英偉達在2014年初發布了支持GPUDirect RDMA的網卡驅動程序。(GPU Direct RDMA技術細節參見阿里雲棲社區

淺析GPU通信技術(下)-GPUDirect RDMA?

yq.aliyun.com
圖標

綜上,三種加速器互聯方案的優缺點分別是

微軟:FPGA+Ethernet

優點:可擴放性好,可支持的互連規模理論可以非常大。可以分布在數據中心不同主機上,可靠性高。使用乙太網互連,可直接使用數據中心的網路,不需要增加太多的額外設備,因此功耗低。

缺點:相比於使用軟體,FPGA硬體開發的難度大、周期長,後期維護困難。且生態環境比GPU差

英偉達:GPU+NVLink

優點:無需硬體定製,因此系統開發難度低,NVLink和NVSwitch的帶寬很大,因此系統的算力與帶寬都很大

缺點:系統體積、功耗大。受制於Intel CPU,只能在單機中使用,不適合數據中心。支持NVSwitch的PowerPC的生態環境也遠不如Intel

英偉達:GPUDirectRDMA

優點:基本與FPGA+Ethernet的優點相同,且開發難度低

缺點:InfiniBand和傳統TCP/IP網路的差別大,需要專用的硬體設備,價格貴

各方案優缺點比較總結如下表

綜上,GPUDirectRDMA方案結合了GPU良好的生態環境、開發友好度,和網路連接帶來的高可擴放性,英偉達在數據中心中的應用未來可期。另一邊,微軟也在積極解決其FPGA方案的種種問題,微軟NSDI2019上發表的DUA,可以使FPGA通過統一的編程介面訪問數據中心中所有的資源。

谷歌: How about ASIC?

Google 2018年發布的TPUv3Pod,算力達到了驚人的100PFLOPs,在被問及TPUv3Pod是如何進行互連的時候,Google Could TPU的Zak Stone的回答是:The only thing I can tell you is that we solved this by ourselves. Each TPU node has enough bandwidth talk to others.」 在被問到TPU Pod是否用自己的專用網路時,得到的回答是「From my understanding, yes.」(參見cloud.tencent.com/devel。 應該可以這樣說,若想在雲端獲得某種特定應用的超高算力,ASIC+乙太網應該是現在可以看到的最優解決方案,而國內外的廠商究竟誰有這個技術積累、資金和動機做這件事,想必讀者們也各自心中有答案。


推薦閱讀:
相关文章