《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電子元件 > 業(yè)界動(dòng)態(tài) > SSD直接連接到GPU,英偉達(dá)終于出手了

SSD直接連接到GPU,英偉達(dá)終于出手了

2022-03-16
來源: 半導(dǎo)體行業(yè)觀察
關(guān)鍵詞: SSD GPU 英偉達(dá)

  英偉達(dá)、IBM 和大學(xué)合作者開發(fā)了一種架構(gòu),他們稱該架構(gòu)將為 GPU 加速的應(yīng)用程序(例如分析和機(jī)器學(xué)習(xí)訓(xùn)練)提供對(duì)大量數(shù)據(jù)存儲(chǔ)的快速細(xì)粒度訪問。

  這種技術(shù)被稱為大加速器內(nèi)存(Big accelerator Memory),又名 BaM,這是一個(gè)有趣的嘗試,旨在減少 Nvidia 圖形處理器和類似硬件加速器在訪問存儲(chǔ)時(shí)對(duì)通用芯片的依賴,這可以提高容量和性能。

  我們知道,現(xiàn)代圖形處理單元不僅僅用于圖形;它們還用于各種重型工作負(fù)載,例如分析、人工智能、機(jī)器學(xué)習(xí)和高性能計(jì)算 (HPC)。為了高效地處理大型數(shù)據(jù)集,GPU 要么需要大量昂貴的本地專用內(nèi)存(例如 HBM2、GDDR6 等),要么需要高效地訪問固態(tài)存儲(chǔ)?,F(xiàn)代計(jì)算 GPU 已經(jīng)搭載 80GB–128GB 的 HBM2E 內(nèi)存,下一代計(jì)算 GPU 將擴(kuò)展本地內(nèi)存容量。但數(shù)據(jù)集大小也在迅速增加,因此優(yōu)化 GPU 和存儲(chǔ)之間的互操作性很重要。

  換而言之,我們必須改進(jìn) GPU 和 SSD 之間的互操作性有幾個(gè)關(guān)鍵原因:首先,NVMe 調(diào)用和數(shù)據(jù)傳輸給 CPU 帶來了很大的負(fù)載,從整體性能和效率的角度來看,這是低效的。其次,CPU-GPU 同步開銷和/或 I/O 流量放大顯著限制了具有大量數(shù)據(jù)集的應(yīng)用程序所需的有效存儲(chǔ)帶寬。

  “BaM 的目標(biāo)是擴(kuò)展 GPU 內(nèi)存容量并提高有效的存儲(chǔ)訪問帶寬,同時(shí)為 GPU 線程提供高級(jí)抽象,以便輕松按需、細(xì)粒度地訪問擴(kuò)展內(nèi)存層次結(jié)構(gòu)中的海量數(shù)據(jù)結(jié)構(gòu)”,該團(tuán)隊(duì)在其撰寫的論文中說。

  BaM 是 Nvidia 將傳統(tǒng)的以 CPU 為中心的任務(wù)轉(zhuǎn)移到 GPU 內(nèi)核的一步。BaM 不依賴于虛擬地址轉(zhuǎn)換、基于頁面錯(cuò)誤的按需加載數(shù)據(jù)以及其他以 CPU 為中心的傳統(tǒng)機(jī)制來處理大量信息,而是提供了允許 Nvidia GPU 獲取的軟件和硬件架構(gòu)直接從內(nèi)存和存儲(chǔ)中獲取數(shù)據(jù)并對(duì)其進(jìn)行處理,而無需 CPU 內(nèi)核對(duì)其進(jìn)行編排。

  BaM 有兩個(gè)主要部分:GPU 內(nèi)存的軟件管理緩存;以及用于 GPU 線程的軟件庫,通過直接與驅(qū)動(dòng)器對(duì)話,直接從 NVMe SSD 請(qǐng)求數(shù)據(jù)。在存儲(chǔ)和 GPU 之間移動(dòng)信息的工作由 GPU 內(nèi)核上的線程處理,使用 RDMA、PCIe 接口和允許 SSD 在需要時(shí)直接讀取和寫入 GPU 內(nèi)存的自定義 Linux 內(nèi)核驅(qū)動(dòng)程序。如果請(qǐng)求的數(shù)據(jù)不在軟件管理的緩存中,驅(qū)動(dòng)器的命令將由 GPU 線程排隊(duì)。

  這意味著在 GPU 上運(yùn)行以執(zhí)行密集型工作負(fù)載的算法可以快速獲取所需的信息,并且——至關(guān)重要的是——以針對(duì)其數(shù)據(jù)訪問模式進(jìn)行優(yōu)化的方式。

  微信圖片_20220316093942.jpg

  論文中的圖表比較了傳統(tǒng)的以 CPU 為中心的存儲(chǔ)訪問方法 (a) 與 GPU 主導(dǎo)的 BaM 方法 (b) 以及所述 GPU 將如何物理連接到存儲(chǔ)設(shè)備 (c)。

  研究人員使用現(xiàn)成的 GPU 和 NVMe SSD 測試了一個(gè)由 Linux 驅(qū)動(dòng)的原型 BaM 系統(tǒng),以證明它是當(dāng)今讓主機(jī)處理器指揮一切的方法的可行替代方案。我們被告知,可以并行化存儲(chǔ)訪問,消除同步障礙,更有效地使用 I/O 帶寬來提高應(yīng)用程序性能。

  “以 CPU 為中心的策略會(huì)導(dǎo)致過多的 CPU-GPU 同步開銷和/或 I/O 流量放大,從而減少具有細(xì)粒度數(shù)據(jù)相關(guān)訪問模式(如圖形和數(shù)據(jù)分析、推薦系統(tǒng)和圖形)的新興應(yīng)用程序的有效存儲(chǔ)帶寬神經(jīng)網(wǎng)絡(luò),”研究人員在論文中說。

  借助軟件緩存,BaM 不依賴于虛擬內(nèi)存地址轉(zhuǎn)換,因此不會(huì)遭受諸如 TLB 未命中之類的序列化事件的影響,”包括 Nvidia 首席科學(xué)家、曾領(lǐng)導(dǎo)斯坦福大學(xué)計(jì)算機(jī)科學(xué)系的 Bill Dally 在內(nèi)的作者指出。

  “BaM 在 GPU 內(nèi)存中提供了一個(gè)高并發(fā) NVMe 提交/完成隊(duì)列的用戶級(jí)庫,使按需訪問未從軟件緩存中丟失的 GPU 線程能夠以高吞吐量方式進(jìn)行存儲(chǔ)訪問,”他們繼續(xù)說道?!斑@種用戶級(jí)方法對(duì)每次存儲(chǔ)訪問產(chǎn)生的軟件開銷很小,并且支持高度的線程級(jí)并行性。”

  該團(tuán)隊(duì)計(jì)劃將他們的硬件和軟件優(yōu)化的細(xì)節(jié)開源給其他人來構(gòu)建這樣的系統(tǒng)。我們想起了 AMD 的 Radeon Solid State Graphics (SSG) 卡,它將閃存放置在 GPU 旁邊。

  

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。