計算存儲將計算功能添加到存儲驅(qū)動器中逐漸成為現(xiàn)實。NGD,Eideticon和ScaleFlux已將計算卡添加到SSD中,以使計算過程能夠在存儲的數(shù)據(jù)上運行,而無需將該數(shù)據(jù)移入主機服務(wù)器內(nèi)存并使用其CPU來處理數(shù)據(jù)。據(jù)說視頻轉(zhuǎn)碼是計算存儲驅(qū)動器(CSD)的好用例。
但是,CSD如何與主機服務(wù)器交互。Blocks&Files采訪了ScaleFlux的首席科學家張彤(Tong Zhang),以找出答案。
問題:讓我們假設(shè)有一個視頻轉(zhuǎn)碼或數(shù)據(jù)庫記錄處理應(yīng)用程序。通常,將新的視頻文件寫入存儲設(shè)備,其中新記錄將出現(xiàn)在數(shù)據(jù)庫中。服務(wù)器應(yīng)用程序會意識到這一點,并開始處理服務(wù)器中的新數(shù)據(jù)。處理完成后,已轉(zhuǎn)換的數(shù)據(jù)將寫回到存儲中。使用計算存儲,整個過程是不同的。新數(shù)據(jù)被寫入存儲?,F(xiàn)在,服務(wù)器應(yīng)用程序必須告訴驅(qū)動器處理器處理數(shù)據(jù)。它是如何做到的?它如何告訴驅(qū)動器處理數(shù)據(jù)?
張彤:是的,為了將某些計算任務(wù)加載到計算存儲驅(qū)動器中,主機應(yīng)用程序必須能夠與計算存儲驅(qū)動器充分通信。這需要標準化的編程模型和接口協(xié)議,業(yè)界正在積極開發(fā)這些模型和接口協(xié)議(例如,NVMe TP 4091和SNIA計算存儲工作組)。
問題:驅(qū)動器的主要活動是為驅(qū)動器IO提供服務(wù),而不是處理數(shù)據(jù)。當驅(qū)動器還為IO請求提供服務(wù)時,驅(qū)動器CPU處理數(shù)據(jù)需要多長時間?時間長度可以預測嗎?
張彤:計算存儲驅(qū)動器在內(nèi)部專用于為驅(qū)動器IO服務(wù)的許多嵌入式CPU(例如ARM內(nèi)核),并專用于一定數(shù)量的嵌入式CPU和領(lǐng)域相關(guān)的硬件引擎(例如,壓縮,安全性,搜索,AI / ML,多媒體) 用于執(zhí)行計算任務(wù)。應(yīng)將CSD控制器設(shè)計為使領(lǐng)域相關(guān)的硬件引擎的性能與存儲IO性能相匹配。
與任何其他形式的計算off-loading(例如GPU,TPU,FPGA)一樣,開發(fā)人員在將計算任務(wù)off-loading到計算存儲驅(qū)動器中時必須準確估計延遲/吞吐量性能指標。
問題:完成驅(qū)動器上的處理后,驅(qū)動器如何告知服務(wù)器應(yīng)用程序數(shù)據(jù)已被處理,現(xiàn)在可以進行下一步處理了?使主機服務(wù)器應(yīng)用程序與計算存儲設(shè)備進行交互的軟件框架是什么?它是一個開放的標準框架嗎?
張彤:目前尚無開放和標準的框架,并且業(yè)界正在積極地對其進行工作(例如NVMe.org和SNIA計算存儲工作組)。
問題: 讓我們看一下處理所花費的時間。通常,我們將按以下順序進行:服務(wù)器應(yīng)用將新數(shù)據(jù)寫入存儲。它決定處理數(shù)據(jù)。數(shù)據(jù)被讀入存儲器。已處理。數(shù)據(jù)被寫回到存儲中。假設(shè)這需要時間T-1。與計算存儲相比,順序有所不同:Server應(yīng)用程序?qū)⑿聰?shù)據(jù)寫入存儲。它決定處理數(shù)據(jù)。它告訴驅(qū)動器處理數(shù)據(jù)。驅(qū)動器處理數(shù)據(jù)。它告訴服務(wù)器應(yīng)用程序處理完成的時間。假設(shè)這需要時間T-2。T-2比T-1大還是???隨著存儲驅(qū)動器IO的上升和下降,T-2和T-1之間的關(guān)系是否隨時間恒定?如果變化很大,那么計算存儲肯定不適合關(guān)鍵的處理任務(wù)嗎?處理驅(qū)動器上的數(shù)據(jù)是否比處理服務(wù)器本身中的相同數(shù)據(jù)消耗更少的電能?
張彤: T-1和T-2之間的關(guān)系取決于特定的計算任務(wù)以及主機和內(nèi)部計算存儲驅(qū)動器上的可用硬件資源。
例如,如果計算存儲驅(qū)動器內(nèi)部具有可以非常有效地處理任務(wù)的領(lǐng)域相關(guān)的的硬件引擎(例如,壓縮,安全性,搜索,AI / ML,多媒體),則T2可以(比T-1小得多) 。但是,如果計算存儲驅(qū)動器必須僅依靠其內(nèi)部ARM內(nèi)核來處理任務(wù),同時主機具有足夠的空閑CPU周期,則T-2可以大于T-1。
在計算存儲驅(qū)動器內(nèi)部,IO和計算任務(wù)由不同的硬件資源提供服務(wù)。因此,它們不會直接相互干擾。關(guān)于功率消耗,計算存儲驅(qū)動器通常消耗較少的功率。如果當前的計算任務(wù)可以由計算存儲驅(qū)動器內(nèi)部的特定領(lǐng)域硬件引擎很好地完成,那么我們的等待時間會更短,同時功耗也會更低。
如果當前的計算任務(wù)僅由計算存儲驅(qū)動器內(nèi)部的ARM內(nèi)核承擔,則功耗仍然可以更低,因為我們大大降低了數(shù)據(jù)移動引起的功耗以及ARM內(nèi)核的低功耗特性。
問題:我了解到,與服務(wù)器應(yīng)用程序和CPU處理每個驅(qū)動器的數(shù)據(jù)相比,10或20個驅(qū)動器的整體處理速度更快,但是這種并行處理需要多長時間進行一次?
張彤:數(shù)據(jù)密集型應(yīng)用程序(例如AI / ML,數(shù)據(jù)分析,數(shù)據(jù)科學,商業(yè)智能)通常需要對大量數(shù)據(jù)進行高度并行處理,這自然會受益于所有計算存儲驅(qū)動器內(nèi)部的并行處理。
總結(jié)
為了廣泛使用,CSD將需要一種與主機服務(wù)器進行通信的標準方式,以便它可以請求主機進行工作并在工作完成時得到通知。為此,需要CSD上的專用處理硬件與常規(guī)驅(qū)動器IO處理硬件分開,以確??深A測的處理時間。
需要相對較低級別處理大量存儲數(shù)據(jù)的較新的分析樣式工作負載可以從CSD而不是由主機服務(wù)器CPU進行的并行處理中受益。NVMe.org和SNIA的計算存儲工作組制定的標準將成為CSD采用該技術(shù)成為主流的途徑。
我們還認為,CSD將需要一個標準接口來與GPU對話。毫無疑問,標準機構(gòu)也在為此進行準備工作。
編輯:lyn
-
cpu
+關(guān)注
關(guān)注
68文章
11077瀏覽量
217022 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9793瀏覽量
87941 -
CSD
+關(guān)注
關(guān)注
0文章
67瀏覽量
13017
原文標題:計算存儲如何與主機服務(wù)器交互?
文章出處:【微信號:TopStorage,微信公眾號:存儲加速器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論