傳統的數據讀取依賴于CPU執行虛擬地址轉換、基于頁面的按需數據加載以及其它針對內存和外存的大量數據管理工作,作為電腦核心部件之一的顯卡是無法直接從SSD中讀取數據。
但隨著人工智能和云計算的興起,有GPU直接讀取SSD硬件內數據,是最高效的方式。
為了讓GPU應用程序能夠直接讀取數據,英偉達聯合IBM,通過與幾所大學的合作打造一套新架構,為大量數據存儲提供快速“細粒度訪問”,也就是所謂的“大加速器內存”(Big Accelerator Memory,簡稱BaM)。
通過這一技術,能夠提升GPU顯存容量、有效提升存儲訪問帶寬,同時為GPU線程提供高級抽象層,以便輕松按需、細粒度地訪問擴展內存層次中的海量數據結構。
對于普通用戶來說,BaM擁有兩大優勢,第一是基于軟件管理的GPU緩存,數據存儲和顯卡間的信息傳輸分配,都交給GPU核心上的線程來管理。
并通過使用RDMA、PCI Express接口以及自定義的Linux內核驅動程序,BaM允許GPU直接打通SSD數據讀寫。
第二就是打通NVMe SSD的數據通信請求,BaM只會在特定數據不在軟件管理的緩存區域時,才讓GPU線程做好參考執行驅動程序命令的準備。在圖形處理器上運行繁重工作負載的算法,能夠通過針對特定數據的訪問例程優化,從而實現針對重要信息的高效訪問。
在以CPU為中心的策略電腦中,會因為CPU、GPU之間的數據傳輸以及I/O流量的放大,拖累具有細粒度的數據相關訪問模式。
研究人員在BaM模型的GPU內存中,提供基于高并發NVMe的提交/完成隊列的用戶級庫,使未從軟件緩存中丟失的GPU線程,能夠以高吞吐量的方式來高效訪問存儲。
更重要的是,BaM方案在每次存儲訪問時的軟件開銷極低,并支持高度并發的線程。在基于BaM設計+標準GPU+NVMe SSD的Linux原型測試平臺的相關實驗測試中,BaM交出相當喜人的成績。
作為代替基于CPU統管一切事務的解決方案,BaM的研究表明,存儲訪問可同時工作、消除同步限制,并且明顯提升I/O帶寬效率,讓應用程序的性能獲得大幅提升。
NVIDIA首席科學家Bill Dally指出:得益于軟件緩存,BaM不依賴于虛擬內存地址轉換,天生就免疫TLB未命中等序列化事件。
編輯點評:隨著Resizable BAR和SAM技術的發展和應用,GPU和CPU之間的帶寬瓶頸得到極大的緩解,但相比于從CPU獲取數據,讓GPU直接從SSD中獲得數據的應用效率會更高。
雖然新的BaM目前尚未明確如何在消費者領域應用,但相信不久后也會有相關產品面世。
評論