CPU失業前兆?NVIDIA 重磅技術了解下
傳統的數據讀取依賴於CPU執行虛擬地址轉換、基於頁面的按需數據載入以及其它針對記憶體和外存的大量數據管理工作,作為電腦核心部件之一的顯示卡是無法直接從SSD中讀取數據。
但隨著人工智慧和雲計算的興起,有GPU直接讀取SSD硬體內數據,是最高效的方式。
為了讓GPU應用程式能夠直接讀取數據,NVIDIA 聯合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目前尚未明確如何在消費者領域應用,但相信不久後也會有相關產品面世。