當前位置:
首頁 > 科技 > GPU是怎麼勾搭NVMe的?

GPU是怎麼勾搭NVMe的?

很久很久以前,CPU和內存是分離的,內存控制器位於北橋。CPU每次取數據都要經過北橋中轉,CPU嫌太慢,於是,把內存控制器直接集成到了自己內部,而北橋則只保留PCIE控制器。再後來,嫌PCIE控制器也離得太遠了,就也把它收歸麾下,北橋成了光桿司令,於是退出了歷史舞台。現在的主板上只有CPU和I/O橋在一唱一和。

突然不知哪天,殺出來了個GPU,之前人們也未曾想過GPU除了渲染圖像還能做更多事情,甚至被用來挖礦。GPU也要訪問內存,但是現在訪問內存要從CPU走一圈,GPU不幹了,明明是我在計算,CPU只是控制,為啥我要不遠萬里從CPU那取數據。於是,GPU和NVMe盤開始勾搭上了。欲知詳情,往下看。

R840/R940xa伺服器簡介

5月8日,DellEMC宣布了兩款新伺服器: PowerEdge R840和R940xa。這兩款伺服器都是4路CPU機型,將於2018年第二季度上市。

R840支持多達24個直連(直連到CPU,未經過PCIE Switch)NVMe驅動器和2個GPU卡或FPGA卡作為CPU加速器。在Monte Carlo Risk Analysis模擬中,R840相比R820快3.5倍。支持OpenManage RESTful API管理和用於DevOps集成的IDRAC9。顯然,R940xa和R840面向的市場除了傳統高端伺服器市場外還可以定位到人工智慧(AI)、機器學習和數據分析場景。

GPU是怎麼勾搭NVMe的?

此外R840最大支持48個DIMM內存槽,以及最高12個NVDIMM槽位。支持RDIMM /LRDIMM,最大速率2666MT/s,最大容量6TB。

R840前背板有24個2.5槽位,或者8個3.5槽位,對應著不同的背板可選。具體支持的選項如下:最多8個3.5」 SAS SATA (HDDs/SSDs) ,或者最多24個2.5」 SAS/SATA (HDDs/SSDs),或者最多24個 NVMe PCIe SSDs,或者SAS/SATA盤與NVMe盤混插(NVMe盤數量最多12個)。這些不同的選項對應了不同的背板選擇。前面板還支持額外2個2.5 SAS/SATA盤位。

NVMe與SAS/SATA混插的具體場景,冬瓜哥很早之前就寫過一篇文章介紹。有興趣可以閱讀:【冬瓜哥畫PPT】最完整的存儲系統介面/協議/連接方式總結一文的後面部分。

R940xa為一款4U4路的機型。最大可支持4個雙槽佔位的GPU卡或者8個FPGA卡。硬碟槽位可達32個,其中4個可以用於SAS/SATA和NVMe混插。R940xa(「XA」代表「eXtreme Aggregation」),因為它的最大GPU:CPU為1:1。

GPU是怎麼勾搭NVMe的?

GPU是怎麼勾搭NVMe的?

GPU是怎麼勾搭NVMe的

R840和R940xa這次無一例外的都支持大量NVMe槽位。GPU配NVMe,也算是好馬配好鞍。由於GPU運算時可能需要吞吐大量數據,硬碟如果拖了後腿,那麼就喂不飽GPU。但是,NVMe是連接到CPU上,而NVMe的數據也需要先到DDR RAM,然後才能被GPU訪問。而DDR RRAM也是連接到CPU上。如下圖所示▼

看到上面的圖,是不是感到,任何數據都要進CPU轉一圈,只因為DDR controller被集成到CPU內部了。這完全多此一舉,為何不能讓GPU直接從NVMe讀數據呢?

其實是可以的,只要GPU內部跑一個NVMe驅動就可以了,並負責NVMe的枚舉、初始化操作,這樣就與CPU完全沒什麼關係了。但是這樣做會讓Mr.CPU感到很尷尬,沒它啥事了。最好的辦法是依然讓Mr.CPU+OS來枚舉初始化和配置NVMe,但是讀寫數據的時候可以讓GPU與NVMe直接溝通。

NVMe盤是帶有DMA Engine的,只要將DMA目標地址設置為GPU BAR內的某個空間即可讓NVMe盤將數據DMA到GPU BAR內,或者從GPU BAR拿出來。而GPU並不會把它內部所有存儲器都映射到BAR里,只可以做到現用現分。所以要求對應的GPU必須支持這種P2P bypass CPU方式。

GPU是怎麼勾搭NVMe的?

AMD GPU的DirectGMA技術便是這樣一種技術。如上圖所示:

? 第一步通過GPU提供的編程庫向GPU申請一塊顯存,GPU傳回指針。

? 第二步配置NVMe的DMA engine讓其將數據DMA到對應指針處。

? 第三步DMA數據,這一步直接bypass CPU/RAM,直接通過PCIE通道實現NVMe與GPU的直接勾搭,延遲下降一大截。

? 第四步調用GPU編程庫通知GPU開始計算。

實現上述的P2P傳輸過程需要一個部件的參與,那就是PCIE Switch。目前市場上主流產品為Microsemi公司提供的PCIE Switch產品。如下圖所示,當採用了GPU到NVMe的P2P之後,其性能大幅提升。可節省host一端的投資,比如RAM使用量和性能可以下降,CPU規格可以下降,CPU與PCIE Switch的連接通道可以為x4甚至x2,節省PCIE通道的耗費量。

GPU是怎麼勾搭NVMe的?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 至頂網 的精彩文章:

谷歌開發出一種能夠模仿大腦「雞尾酒會效應」的人工智慧
機器人會不會消滅銀行業?

TAG:至頂網 |