iThome整理製表,2024年10月

藉由GPUDirect Storage(GDS),可以讓GPU伺服器本機的NVMe SSD,或是外部第3方的檔案儲存系統,透過DMA或RDMA方式,繞過GPU主機CPU與系統記憶體,直接將資料傳送到GPU的記憶體,從而大幅提高儲存裝置與GPU之間的資料傳輸效率。但要啟用這套架構,必須有硬體與軟體方面的配合。

● 硬體需求

在GPU伺服器端,只有較新款的Data Center等級GPU平臺,與Quadro等桌上型等級GPU平臺,可以支援與運行GDS(詳見Nvidia網站公布的清單),若要透過GDS連結外部儲存設備,GPU伺服器還需要搭配支援RDMA架構的網路卡,如InfiniBand或RDMA乙太網路卡。

至於儲存裝置端則分為兩種,一為區塊類型,另一為網路附加型儲存裝置。

區塊類型儲存裝置分兩種,一為GPU伺服器本機儲存裝置,能透過PCIe連結GPU的NVMe SSD即可。二為外部儲存設備從遠端掛載的區塊儲存區(Volume),需支援NVMe-oF形式的外部儲存設備。

對於網路附加型儲存裝置,基本上都是外部遠端掛載的檔案系統,檔案系統必須支援RMDA網路介面才能運行GDS。

● 軟體需求

要在GPU伺服器端啟用GDS,首先,必須安裝Nvidia的MLNX_OFED與nvidia-fs.ko這兩個軟體元件,前者用於為InfiniBand與RDMA乙太網路卡建立跨遠端的RDMA存取,後者用於為儲存裝置提供對於GPU記憶體的DMA直接存取。

其次,是必須安裝內含GDS軟體元件的CUDA 11.4版以後軟體套件。

在儲存裝置端,GDS對儲存裝置的存取,是在GDS的CuFile API控制下,透過nvidia-fs.ko驅動程式,經由Linux的虛擬檔案系統(Virtual Filesystem,VFS)介面的中介,在檔案系統層級上進行。

所以對於GPU伺服器連接的區塊型儲存裝置,包括本機的NVMe SSD,或是遠端掛載的外部儲存裝置邏輯儲存區(如EBOF儲存櫃),必須格式化為EXT4或XFS檔案系統的形式,再掛載到GPU伺服器使用。

對於檔案系統型儲存裝置,第3方檔案系統若要支援GDS,必須能支援RDMA遠端存取,通常採取2種實作方式,一為透過修改的NFS協定(例如NFS over RDMA),另一為透過OFED(OpenFabrics   Enterprise Distribution)介面,藉此將檔案系統空間掛載給GPU伺服器使用,採取前者作法的平臺,例如Dell PowerScale 9.2版以後版本,後者則有DDN的EXAScaler 5.2以後版本,Weka的WekaFS 3.13以後版本等。

這些GDS相容檔案儲存平臺,多是第3方廠商專屬儲存設備的檔案系統,因而只能跟著這些廠商的儲存產品硬體一同提供。不過,也有部分平臺例外,可以單獨提供檔案系統軟體套件,供用戶自行建置儲存系統,如BeeGFS與Weka FS,都提供這種建置模式。

資料來源:iThome整理,2024年10月

GDS使用的儲存裝置分為2大類型、一共3種形式:

第1大類是區塊型儲存裝置,包括GPU伺服器本機的NVMe SSD,以及外部儲存設備透過NVMe-oF掛載的Volume儲存區,這一類儲存裝置將被格式化為EXT4或XFS檔案系統形式後,經由Linux的VFS介面連結nvidia-fs.ko軟體元件,藉此讓儲存裝置能以DMA引擎存取GPU的記憶體。

第2大類是檔案型儲存裝置,相容GDS的第3方檔案系統,可透過nvidia-fs.ko軟體元件,以DMA方式存取GPU記憶體。

 相關報導 

熱門新聞

Advertisement