繞過CPU:英偉達與IBM致力推動GPU直連SSD以大幅提升性能
- 來源:cnbeta
- 作者:cnbeta
- 編輯:豆角
通過與幾所大學的合作,英偉達和 IBM 打造了一套新架構,致力于為 GPU 加速應用程序,提供對大量數(shù)據(jù)存儲的快速“細粒度訪問”。所謂的“大加速器內(nèi)存”(Big Accelerator Memory)旨在擴展 GPU 顯存容量、有效提升存儲訪問帶寬,同時為 GPU 線程提供高級抽象層,以便輕松按需、細粒度地訪問擴展內(nèi)存層次中的海量數(shù)據(jù)結構。
以 CPU 為中心的傳統(tǒng)模型示例
顯然,這項技術將使人工智能、分析和機器學習訓練等領域更加受益。而作為 BaM 團隊中的重量級選手,英偉達將為創(chuàng)新項目傾注自身的廣泛資源。
比如允許 NVIDIA GPU 直接獲取數(shù)據(jù),而無需依賴于 CPU 來執(zhí)行虛擬地址轉(zhuǎn)換、基于頁面的按需數(shù)據(jù)加載、以及其它針對內(nèi)存和外存的大量數(shù)據(jù)管理工作。
對于普通用戶來說,我們只需看到 BaM 的兩大優(yōu)勢。其一是基于軟件管理的 GPU 緩存,數(shù)據(jù)存儲和顯卡之間的信息傳輸分配工作,都將交給 GPU 核心上的線程來管理。
通過使用 RDMA、PCI Express 接口、以及自定義的 Linux 內(nèi)核驅(qū)動程序,BaM 可允許 GPU 直接打通 SSD 數(shù)據(jù)讀寫。
BaM 模型示例
其次,通過打通 NVMe SSD 的數(shù)據(jù)通信請求,BaM 只會在特定數(shù)據(jù)不在軟件管理的緩存區(qū)域時,才讓 GPU 線程做好參考執(zhí)行驅(qū)動程序命令的準備。
基于此,在圖形處理器上運行繁重工作負載的算法,將能夠通過針對特定數(shù)據(jù)的訪問例程優(yōu)化,從而實現(xiàn)針對重要信息的高效訪問。
顯然,以 CPU 為中心的策略,會導致過多的 CPU-GPU 同步開銷(以及 I/O 流量放大),從而拖累了具有細粒度的數(shù)據(jù)相關訪問模式 —— 比如圖形與數(shù)據(jù)分析、推薦系統(tǒng)和圖形神經(jīng)網(wǎng)絡等新興應用程序的存儲網(wǎng)絡帶寬效率。
為此,研究人員在 BaM 模型的 GPU 內(nèi)存中,提供了一個基于高并發(fā) NVMe 的提交 / 完成隊列的用戶級庫,使得未從軟件緩存中丟失的 GPU 線程,能夠以高吞吐量的方式來高效訪問存儲。
BaM 設計的邏輯視圖
更棒的是,該方案在每次存儲訪問時的軟件開銷都極低,并且支持高度并發(fā)的線程。而在基于 BaM 設計 + 標準 GPU + NVMe SSD 的 Linux 原型測試平臺上開展的相關實驗,也交出了相當喜人的成績。
作為當前基于 CPU 統(tǒng)管一切事務的傳統(tǒng)解決方案的一個可行替代,研究表明存儲訪問可同時工作、消除了同步限制,并且 I/O 帶寬效率的顯著提升,也讓應用程序的性能不可同日而語。
此外 NVIDIA 首席科學家、曾帶領斯坦福大學計算機科學系的 Bill Dally 指出:得益于軟件緩存,BaM 不依賴于虛擬內(nèi)存地址轉(zhuǎn)換,因而天生就免疫于 TLB 未命中等序列化事件。
最后,三方將開源 BaM 設計的新細節(jié),以期更多企業(yè)能夠投入到軟硬件的優(yōu)化、并自行創(chuàng)建類似的設計。有趣的是,將閃存放在 GPU 一旁的 AMD Radeon 固態(tài)顯卡,也運用了類似的功能設計理念。

玩家點評 (0人參與,0條評論)
熱門評論
全部評論