英偉達和IBM推出Big Accelerator Memory:新的GPU-SSD互操作性框架

近日微軟宣布DirectStorage API已登陸PC,這項技術可以讓NVMe SSD繞過CPU和記憶體,直接向顯存傳輸數據,可大幅降低Windows遊戲的加載時間。英偉達、IBM和康奈爾大學也找到了一種方法,可以讓GPU與SSD無縫協作,而且不需要專有API。這項功能被稱為Big Accelerator Memory(BaM),未來有可能會應用在各種計算任務,對於大型數據類的工作負載會很有幫助。

英偉達和IBM推出Big Accelerator Memory:新的GPU-SSD互操作性框架

隨著GPU的不斷發展,現代的GPU已不再局限於圖形方面的應用,還會用在各種重型工作負載上,GPU在可編程性方面也越來越接近CPU,因此也需要直接訪問大型存儲設備。為了更高效地處理數據,GPU一般都配備了高速的大容量顯存,成本非常高,比如基於Ampere架構的新款A100計算卡,配置了80GB的HBM2e顯存,速率為3.2 Gbps,提供了2 TB/s的顯存帶寬。不過隨著GPU處理的數據量迅速增長,現有的方式遠遠跟不上數據處理的需求,優化GPU與存儲設備之間互操作性顯得更加迫切且重要。

要改進GPU和SSD之間的互操作性涉及一些關鍵因素。首先,NVMe調用和數據傳輸給CPU帶來了很大的負擔,從整體性能和效率來看,這是低效的操作。其次,CPU與GPU之間的不斷操作也大大限制了需要大數據量的應用程式所使用的有效存儲帶寬。TomsHardware表示,Big Accelerator Memory的目標是擴展GPU記憶體容量,並提高有效的存儲訪問帶寬,同時讓GPU更容易地訪問擴展記憶體中的海量數據。

Big Accelerator Memory本質上就是讓英偉達GPU能夠直接從系統記憶體和存儲設備中獲取數據,而且不需要經過CPU的參與。GPU將自身配備的顯存作為軟體管理的緩存,使用PCIe接口、RDMA和定製的Linux內核驅動程序移動數據,使SSD在需要時直接讀寫GPU的顯存。如果本地沒有所需的數據,GPU線程會將SSD的命令排隊。Big Accelerator Memory不使用虛擬記憶體地址轉換,因此不會出現TLB缺失等序列化事件。英偉達及其合作夥伴計劃將該驅動程序開源,以允許其他人使用BaM概念。

英偉達和IBM推出Big Accelerator Memory:新的GPU-SSD互操作性框架

英偉達表示通過Big Accelerator Memory,能讓GPU線程按需讀取或寫入少量數據,這取決於計算情況,由於每次存儲訪問的數據消耗很小,並且支持高度的線程級並行性,可以有效緩解和控制I/O流量。在GPU上運行BaM基礎架構軟體可以充分利用底層存儲設備,即便使用的是消費級SSD,BaM也會帶來具有競爭力的性能優勢。Big Accelerator Memory是GPU獲得大容量存儲池並獨立於CPU的一種方式,相比現有的解決方案,新方案使得計算加速器更加獨立。

AMD曾在數年前發布了一款GPU與SSD相結合的Radeon Pro SSG,通過額外的存儲允許硬體對大型數據集訪問進行優化。不過AMD的Radeon Pro SSG純粹作為圖形解決方案,並非為復雜的計算工作負載而設計的,顯然英偉達、IBM和康奈爾大學合作的Big Accelerator Memory更進一步。

來源:超能網