引言
近年來,AI應(yīng)用態(tài)勢(shì)迅猛增加,對(duì)計(jì)算側(cè)的算力和內(nèi)存提出了更高的要求。GPU、HBM這些高性能高密計(jì)算部件和內(nèi)存部件,在AI計(jì)算場(chǎng)景中作為必需品,成為市場(chǎng)熱點(diǎn)。業(yè)界也在討論能否把計(jì)算側(cè)的業(yè)務(wù)卸載到存儲(chǔ)側(cè),稱為計(jì)算型存儲(chǔ)(Computational Storage),通過存儲(chǔ)側(cè)卸載數(shù)據(jù)預(yù)處理,如數(shù)據(jù)校驗(yàn)、解壓、數(shù)據(jù)提取,甚至卸載局部機(jī)器學(xué)習(xí)訓(xùn)練,從而減輕計(jì)算側(cè)的算力負(fù)載和內(nèi)存負(fù)載。這兩年,SNIA和NVMe陸續(xù)定義了計(jì)算型存儲(chǔ)框架和協(xié)議接口,而IBM、Intel、Dell、Solidigm、Kioxia等知名廠商也在通過存儲(chǔ)應(yīng)用和SSD盤聯(lián)合定制,開拓計(jì)算型存儲(chǔ)應(yīng)用道路。
01計(jì)算型存儲(chǔ)協(xié)議框架
SNIA在2022年8月發(fā)布的Computational Storage Architecture and Programming Model,描述了計(jì)算型存儲(chǔ)的架構(gòu)和模型定義。計(jì)算型存儲(chǔ)設(shè)備定義為三種模型:計(jì)算型存儲(chǔ)處理器(Computational Storage Processor,CSP)、計(jì)算型存儲(chǔ)盤(Computational Storage Drive,CSD)和計(jì)算型存儲(chǔ)陣列(Computational Storage Array,CSA)。
◎圖1 CSD架構(gòu)
以計(jì)算型存儲(chǔ)盤(CSD)為例,其架構(gòu)框架如圖1所示。Storage Controller可以對(duì)應(yīng)于SSD的管理控制器,控制Device Memory(如SSD內(nèi)的DDR)和Device Storage(如SSD內(nèi)的NAND Flash)。計(jì)算型存儲(chǔ)主要是定義計(jì)算型存儲(chǔ)資源(Computational Storage Resource, CSR),用于設(shè)備提供用戶可支配使用的計(jì)算資源和內(nèi)存資源。
其中,計(jì)算型存儲(chǔ)引擎(Computational Storage Engine, CSE),是用于提供計(jì)算資源。CSE里面包括計(jì)算型存儲(chǔ)引擎環(huán)境(Computational Storage Engine Environment, CSEE)用于提供執(zhí)行計(jì)算環(huán)境或者平臺(tái),譬如操作系統(tǒng)、Container容器,或者FPGA這種硬件環(huán)境。計(jì)算環(huán)境里通過計(jì)算型存儲(chǔ)功能(Computational Storage Function, CSF),提供具體的計(jì)算功能,如壓縮、加密、數(shù)據(jù)filter、Erasure Code、RAID、hash/CRC、重刪、正則表達(dá)式計(jì)算等功能。
另一方面,功能數(shù)據(jù)內(nèi)存(Function Data Memory,F(xiàn)DM)是設(shè)備提供給CSE進(jìn)行計(jì)算使用的內(nèi)存區(qū)域。用戶通過分配功能數(shù)據(jù)內(nèi)存(Allocated Function Data Memory,AFDM)綁定給具體CSF,用于具體計(jì)算存儲(chǔ)輸入數(shù)據(jù)、中間過程數(shù)據(jù)和輸出結(jié)果。
NVM Express在2024年發(fā)布的Computational Programs Command Set Specification和Subsystem Local Memory Command Set Specification兩個(gè)協(xié)議標(biāo)準(zhǔn),具象化了計(jì)算型存儲(chǔ)框架在NVMe接口上的實(shí)現(xiàn)。NVM Express在原有用于數(shù)據(jù)持久化存儲(chǔ)的NVM Namespace外,額外定義了Compute Namespace和Subsystem Local Memory (SLM) Namespace,分別對(duì)應(yīng)SNIA定義的CSE和FDM,為用戶提供計(jì)算資源和內(nèi)存資源。
◎圖2 NVM Express計(jì)算型存儲(chǔ)框架
NVM Express的計(jì)算型存儲(chǔ)接口架構(gòu)和運(yùn)作,如上圖所示。一個(gè)Compute Namespace可以支持多個(gè)程序(Program)。Program可以支持主機(jī)加載(Downloadable Program),或者是盤內(nèi)預(yù)設(shè)(Device-defined Program)。用戶在使用前,需要通過Program Activation Management命令激活這些Program。
Subsystem Local Memory (SLM) 可以提供給Program用作數(shù)據(jù)輸入輸出的內(nèi)存區(qū)域。用戶可以通過Memory Range Set Management命令,為Compute Namespace建立SLM Namespace中的多個(gè)內(nèi)存區(qū)域(Memory Range)。
用戶在激活需要的Program和建立Program所需的內(nèi)存區(qū)域后,可以通過以下步驟執(zhí)行Program:
1主機(jī)下發(fā)Memory Copy命令,盤片從NVM Namespace,即SSD存儲(chǔ)LBA數(shù)據(jù)區(qū)域,讀出數(shù)據(jù)后,拷貝數(shù)據(jù)到SLM的內(nèi)存區(qū)域。此外,主機(jī)也可以下發(fā)Memory Write命令,盤片從主機(jī)內(nèi)存拷貝數(shù)據(jù)到SLM的內(nèi)存區(qū)域。以準(zhǔn)備好Program執(zhí)行所需要的輸入數(shù)據(jù)。圖2中A1-A3示例是將SSD存儲(chǔ)的數(shù)據(jù)庫(kù)數(shù)據(jù),拷貝到SLM的內(nèi)存區(qū)域。
2主機(jī)通過下發(fā)Excute Program命令,執(zhí)行Compute Namespace的Program,采用內(nèi)存區(qū)域中的數(shù)據(jù)作為輸入,Program進(jìn)行計(jì)算后,輸出到內(nèi)存區(qū)域中。圖2中B1-B4示例過程是,主機(jī)調(diào)用盤內(nèi)的filter program,對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行篩選計(jì)算,將篩選結(jié)果輸出到SLM的內(nèi)存區(qū)域后,上報(bào)主機(jī)。
3主機(jī)通過下發(fā)Memory Read命令,盤片將SLM內(nèi)存區(qū)域中的數(shù)據(jù),讀出到主機(jī)內(nèi)存,如圖2中C1-C2所示。
02計(jì)算型存儲(chǔ)應(yīng)用思路
SNIA和NVMe定義了一整套盤片和主機(jī)進(jìn)行計(jì)算交互的框架和接口,SNIA還定義了一整套的API(見Computational Storage API, SNIA)。這樣可以有效推動(dòng)應(yīng)用規(guī)范化,將計(jì)算型存儲(chǔ)接口落入到設(shè)備驅(qū)動(dòng)、操作系統(tǒng)內(nèi)核等,支撐起主機(jī)應(yīng)用層訪問接口標(biāo)準(zhǔn)化。
從SSD設(shè)備的角度來看,SSD作為存儲(chǔ)部件,在存儲(chǔ)系統(tǒng)內(nèi)分配的空間、功耗和成本都是受約束的。SSD的設(shè)計(jì)規(guī)劃上,SSD并不是一個(gè)強(qiáng)算力系統(tǒng)。對(duì)于一個(gè)15W的SSD來說,可能分配到內(nèi)部CPU計(jì)算的功耗不到2W。從SSD CPU和總線選取和設(shè)計(jì)來說,CPU的作用主要是進(jìn)行SSD內(nèi)部控制,而不是進(jìn)行數(shù)據(jù)計(jì)算。這樣,在SSD內(nèi)要實(shí)現(xiàn)靈活的、用戶可加載的計(jì)算引擎,如通過OS或者Container平臺(tái)進(jìn)行軟件計(jì)算,通過SSD內(nèi)部CPU計(jì)算達(dá)到高性能是很困難的。
從目前業(yè)界趨勢(shì)來說,一方面是在SSD控制器外,增加FPGA作為計(jì)算引擎,或者是FPGA同時(shí)用于SSD控制和計(jì)算(如IBM FlashCore Module方案),由于FPGA在芯片封裝大小、成本和功耗上不如ASIC,這樣會(huì)造成整盤性能、硬件布局、功耗、散熱、成本等一系列的問題。另一方面是通過在控制器ASIC提供定制的硬化引擎,這就對(duì)盤片廠商有很高的能力要求,除了有盤片設(shè)計(jì)生產(chǎn)能力,還要有SSD控制器芯片定義和設(shè)計(jì)能力,并且能夠拉通上層應(yīng)用廠商,識(shí)別盤片卸載業(yè)務(wù)趨勢(shì)進(jìn)行長(zhǎng)遠(yuǎn)規(guī)劃。
這里以2023年Solidigm在Flash Memory Summit發(fā)表的Data scrubbing卸載定制作為示例。存儲(chǔ)服務(wù)器會(huì)經(jīng)常巡檢全部的數(shù)據(jù),即把數(shù)據(jù)全部讀出,進(jìn)行hash計(jì)算(如CRC32、MD5等),再和存儲(chǔ)保存在元數(shù)據(jù)的結(jié)果進(jìn)行比對(duì)。這個(gè)場(chǎng)景下對(duì)于服務(wù)器的算力、內(nèi)存、NVMe/TCP接口都有很大壓力,會(huì)成為業(yè)務(wù)瓶頸。
◎圖3 Data scrubbing
Solidigm提出的方案是在盤內(nèi)進(jìn)行hash計(jì)算。主機(jī)側(cè)組織需計(jì)算的LBA list下發(fā)到盤,盤片從LBA區(qū)域讀出數(shù)據(jù),存放到盤內(nèi)內(nèi)存區(qū)域,調(diào)用盤內(nèi)硬化引擎進(jìn)行CRC32等計(jì)算,只將計(jì)算結(jié)果返回到主機(jī)。
這樣,卸載了主機(jī)側(cè)進(jìn)行hash計(jì)算的算力,由于盤片只上報(bào)結(jié)果,節(jié)省大量接口數(shù)據(jù)讀取帶寬,以及主機(jī)內(nèi)存,而且可以隨著盤數(shù)量增加擴(kuò)展計(jì)算能力。
◎圖4 CSD實(shí)現(xiàn)
03憶聯(lián)端到端能力構(gòu)建
計(jì)算型存儲(chǔ)SSD隨著協(xié)議標(biāo)準(zhǔn)的成熟化,可與客戶聯(lián)合定制實(shí)現(xiàn)業(yè)務(wù)卸載。其價(jià)值是減輕客戶側(cè)的系統(tǒng)算力、內(nèi)存壓力,減少網(wǎng)絡(luò)和設(shè)計(jì)接口帶寬,從而在AI高速發(fā)展的趨勢(shì)下,突破系統(tǒng)瓶頸,發(fā)揮系統(tǒng)能力。
作為一家領(lǐng)先的SSD廠商,憶聯(lián)正積極整合內(nèi)外部資源,深入探索計(jì)算型存儲(chǔ)的前沿領(lǐng)域。通過引入先進(jìn)的計(jì)算技術(shù),優(yōu)化控制器設(shè)計(jì),并結(jié)合智能存儲(chǔ)管理,致力于開發(fā)具有高性能、高可靠性和智能化特性的存儲(chǔ)解決方案。
憶聯(lián)不僅關(guān)注對(duì)數(shù)據(jù)傳輸效率和存儲(chǔ)容量的提升,更關(guān)注探索各垂直應(yīng)用領(lǐng)域的融合技術(shù)創(chuàng)新。憶聯(lián)擁有成熟的芯片、軟件、硬件、以及生產(chǎn)團(tuán)隊(duì),能夠支撐SSD從控制器芯片、軟件業(yè)務(wù)、硬件設(shè)計(jì)、裝備生產(chǎn)的端到端規(guī)劃和設(shè)計(jì)開發(fā),可支撐各垂直行業(yè)客戶實(shí)現(xiàn)SSD聯(lián)合定制,滿足多樣化市場(chǎng)需求,突破客戶業(yè)務(wù)瓶頸,創(chuàng)造各行各業(yè)的客戶價(jià)值。
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229647 -
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4296瀏覽量
85797 -
SSD
+關(guān)注
關(guān)注
21文章
2857瀏覽量
117366 -
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268874
原文標(biāo)題:Tech Talk: 淺談AI浪潮下的計(jì)算型存儲(chǔ)SSD
文章出處:【微信號(hào):UnionMemory憶聯(lián),微信公眾號(hào):UnionMemory憶聯(lián)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論