繞過CPU:英偉達與IBM致力推動GPU直連SSD以大幅提升性能

通過與幾所大學的合作,英偉達和 IBM 打造了一套新架構,致力於為 GPU 加速應用程序,提供對大量數據存儲的快速“細粒度訪問”。所謂的“大加速器內存”(Big Accelerator Memory)旨在擴展 GPU 顯存容量、有效提升存儲訪問帶寬,同時為 GPU 線程提供高級抽象層,以便輕鬆按需、細粒度地訪問擴展內存層次中的海量數據結構。

1.jpg

以 CPU 為中心的傳統模型示例

顯然,這項技術將使人工智能、分析和機器學習訓練等領域更加受益。而作為 BaM 團隊中的重量級選手,英偉達將為創新項目傾注自身的廣泛資源。

比如允許 NVIDIA GPU 直接獲取數據,而無需依賴於 CPU 來執行虛擬地址轉換、基於頁面的按需數據加載、以及其它針對內存和外存的大量數據管理工作。

對於普通用戶來說,我們只需看到 BaM 的兩大優勢。其一是基於軟件管理的 GPU 緩存,數據存儲和顯卡之間的信息傳輸分配工作,都將交給 GPU 核心上的線程來管理。

通過使用 RDMA、PCI Express 接口、以及自定義的 Linux 內核驅動程序,BaM 可允許 GPU 直接打通 SSD 數據讀寫。

2.jpg

BaM 模型示例

其次,通過打通 NVMe SSD 的數據通信請求,BaM 只會在特定數據不在軟件管理的緩存區域時,才讓 GPU 線程做好參考執行驅動程序命令的準備。

基於此,在圖形處理器上運行繁重工作負載的算法,將能夠通過針對特定數據的訪問例程優化,從而實現針對重要信息的高效訪問。

顯然,以 CPU 為中心的策略,會導致過多的 CPU-GPU 同步開銷(以及 I/O 流量放大),從而拖累了具有細粒度的數據相關訪問模式 —— 比如圖形與數據分析、推薦系統和圖形神經網絡等新興應用程序的存儲網絡帶寬效率。

為此,研究人員在 BaM 模型的 GPU 內存中,提供了一個基於高併發 NVMe 的提交 / 完成隊列的用戶級庫,使得未從軟件緩存中丟失的 GPU 線程,能夠以高吞吐量的方式來高效訪問存儲。

3.jpg

BaM 設計的邏輯視圖

更棒的是,該方案在每次存儲訪問時的軟件開銷都極低,並且支持高度併發的線程。而在基於 BaM 設計 + 標準 GPU + NVMe SSD 的 Linux 原型測試平台上開展的相關實驗,也交出了相當喜人的成績。

作為當前基於 CPU 統管一切事務的傳統解決方案的一個可行替代,研究表明存儲訪問可同時工作、消除了同步限制,並且 I/O 帶寬效率的顯著提升,也讓應用程序的性能不可同日而語。

此外 NVIDIA 首席科學家、曾帶領斯坦福大學計算機科學系的 Bill Dally 指出:得益於軟件緩存,BaM 不依賴於虛擬內存地址轉換,因而天生就免疫於 TLB 未命中等序列化事件。

最後,三方將開源 BaM 設計的新細節,以期更多企業能夠投入到軟硬件的優化、並自行創建類似的設計。有趣的是,將閃存放在 GPU 一旁的 AMD Radeon 固態顯卡,也運用了類似的功能設計理念。

(0)
上一篇 2022-03-17 17:00
下一篇 2022-03-17 17:00

相关推荐