引言
近年來,AI應用態(tài)勢迅猛增加,對計算側的算力和內(nèi)存提出了更高的要求。GPU、HBM這些高性能高密計算部件和內(nèi)存部件,在AI計算場景中作為必需品,成為市場熱點。業(yè)界也在討論能否把計算側的業(yè)務卸載到存儲側,稱為計算型存儲(Computational Storage),通過存儲側卸載數(shù)據(jù)預處理,如數(shù)據(jù)校驗、解壓、數(shù)據(jù)提取,甚至卸載局部機器學習訓練,從而減輕計算側的算力負載和內(nèi)存負載。這兩年,SNIA和NVMe陸續(xù)定義了計算型存儲框架和協(xié)議接口,而IBM、Intel、Dell、Solidigm、Kioxia等知名廠商也在通過存儲應用和SSD盤聯(lián)合定制,開拓計算型存儲應用道路。
01計算型存儲協(xié)議框架
SNIA在2022年8月發(fā)布的Computational Storage Architecture and Programming Model,描述了計算型存儲的架構和模型定義。計算型存儲設備定義為三種模型:計算型存儲處理器(Computational Storage Processor,CSP)、計算型存儲盤(Computational Storage Drive,CSD)和計算型存儲陣列(Computational Storage Array,CSA)。

◎圖1 CSD架構
以計算型存儲盤(CSD)為例,其架構框架如圖1所示。Storage Controller可以對應于SSD的管理控制器,控制Device Memory(如SSD內(nèi)的DDR)和Device Storage(如SSD內(nèi)的NAND Flash)。計算型存儲主要是定義計算型存儲資源(Computational Storage Resource, CSR),用于設備提供用戶可支配使用的計算資源和內(nèi)存資源。
其中,計算型存儲引擎(Computational Storage Engine, CSE),是用于提供計算資源。CSE里面包括計算型存儲引擎環(huán)境(Computational Storage Engine Environment, CSEE)用于提供執(zhí)行計算環(huán)境或者平臺,譬如操作系統(tǒng)、Container容器,或者FPGA這種硬件環(huán)境。計算環(huán)境里通過計算型存儲功能(Computational Storage Function, CSF),提供具體的計算功能,如壓縮、加密、數(shù)據(jù)filter、Erasure Code、RAID、hash/CRC、重刪、正則表達式計算等功能。
另一方面,功能數(shù)據(jù)內(nèi)存(Function Data Memory,F(xiàn)DM)是設備提供給CSE進行計算使用的內(nèi)存區(qū)域。用戶通過分配功能數(shù)據(jù)內(nèi)存(Allocated Function Data Memory,AFDM)綁定給具體CSF,用于具體計算存儲輸入數(shù)據(jù)、中間過程數(shù)據(jù)和輸出結果。
NVM Express在2024年發(fā)布的Computational Programs Command Set Specification和Subsystem Local Memory Command Set Specification兩個協(xié)議標準,具象化了計算型存儲框架在NVMe接口上的實現(xiàn)。NVM Express在原有用于數(shù)據(jù)持久化存儲的NVM Namespace外,額外定義了Compute Namespace和Subsystem Local Memory (SLM) Namespace,分別對應SNIA定義的CSE和FDM,為用戶提供計算資源和內(nèi)存資源。

◎圖2 NVM Express計算型存儲框架
NVM Express的計算型存儲接口架構和運作,如上圖所示。一個Compute Namespace可以支持多個程序(Program)。Program可以支持主機加載(Downloadable Program),或者是盤內(nèi)預設(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中的多個內(nèi)存區(qū)域(Memory Range)。
用戶在激活需要的Program和建立Program所需的內(nèi)存區(qū)域后,可以通過以下步驟執(zhí)行Program:
1主機下發(fā)Memory Copy命令,盤片從NVM Namespace,即SSD存儲LBA數(shù)據(jù)區(qū)域,讀出數(shù)據(jù)后,拷貝數(shù)據(jù)到SLM的內(nèi)存區(qū)域。此外,主機也可以下發(fā)Memory Write命令,盤片從主機內(nèi)存拷貝數(shù)據(jù)到SLM的內(nèi)存區(qū)域。以準備好Program執(zhí)行所需要的輸入數(shù)據(jù)。圖2中A1-A3示例是將SSD存儲的數(shù)據(jù)庫數(shù)據(jù),拷貝到SLM的內(nèi)存區(qū)域。
2主機通過下發(fā)Excute Program命令,執(zhí)行Compute Namespace的Program,采用內(nèi)存區(qū)域中的數(shù)據(jù)作為輸入,Program進行計算后,輸出到內(nèi)存區(qū)域中。圖2中B1-B4示例過程是,主機調用盤內(nèi)的filter program,對數(shù)據(jù)庫數(shù)據(jù)進行篩選計算,將篩選結果輸出到SLM的內(nèi)存區(qū)域后,上報主機。
3主機通過下發(fā)Memory Read命令,盤片將SLM內(nèi)存區(qū)域中的數(shù)據(jù),讀出到主機內(nèi)存,如圖2中C1-C2所示。
02計算型存儲應用思路
SNIA和NVMe定義了一整套盤片和主機進行計算交互的框架和接口,SNIA還定義了一整套的API(見Computational Storage API, SNIA)。這樣可以有效推動應用規(guī)范化,將計算型存儲接口落入到設備驅動、操作系統(tǒng)內(nèi)核等,支撐起主機應用層訪問接口標準化。
從SSD設備的角度來看,SSD作為存儲部件,在存儲系統(tǒng)內(nèi)分配的空間、功耗和成本都是受約束的。SSD的設計規(guī)劃上,SSD并不是一個強算力系統(tǒng)。對于一個15W的SSD來說,可能分配到內(nèi)部CPU計算的功耗不到2W。從SSD CPU和總線選取和設計來說,CPU的作用主要是進行SSD內(nèi)部控制,而不是進行數(shù)據(jù)計算。這樣,在SSD內(nèi)要實現(xiàn)靈活的、用戶可加載的計算引擎,如通過OS或者Container平臺進行軟件計算,通過SSD內(nèi)部CPU計算達到高性能是很困難的。
從目前業(yè)界趨勢來說,一方面是在SSD控制器外,增加FPGA作為計算引擎,或者是FPGA同時用于SSD控制和計算(如IBM FlashCore Module方案),由于FPGA在芯片封裝大小、成本和功耗上不如ASIC,這樣會造成整盤性能、硬件布局、功耗、散熱、成本等一系列的問題。另一方面是通過在控制器ASIC提供定制的硬化引擎,這就對盤片廠商有很高的能力要求,除了有盤片設計生產(chǎn)能力,還要有SSD控制器芯片定義和設計能力,并且能夠拉通上層應用廠商,識別盤片卸載業(yè)務趨勢進行長遠規(guī)劃。
這里以2023年Solidigm在Flash Memory Summit發(fā)表的Data scrubbing卸載定制作為示例。存儲服務器會經(jīng)常巡檢全部的數(shù)據(jù),即把數(shù)據(jù)全部讀出,進行hash計算(如CRC32、MD5等),再和存儲保存在元數(shù)據(jù)的結果進行比對。這個場景下對于服務器的算力、內(nèi)存、NVMe/TCP接口都有很大壓力,會成為業(yè)務瓶頸。

◎圖3 Data scrubbing
Solidigm提出的方案是在盤內(nèi)進行hash計算。主機側組織需計算的LBA list下發(fā)到盤,盤片從LBA區(qū)域讀出數(shù)據(jù),存放到盤內(nèi)內(nèi)存區(qū)域,調用盤內(nèi)硬化引擎進行CRC32等計算,只將計算結果返回到主機。
這樣,卸載了主機側進行hash計算的算力,由于盤片只上報結果,節(jié)省大量接口數(shù)據(jù)讀取帶寬,以及主機內(nèi)存,而且可以隨著盤數(shù)量增加擴展計算能力。

◎圖4 CSD實現(xiàn)
03憶聯(lián)端到端能力構建
計算型存儲SSD隨著協(xié)議標準的成熟化,可與客戶聯(lián)合定制實現(xiàn)業(yè)務卸載。其價值是減輕客戶側的系統(tǒng)算力、內(nèi)存壓力,減少網(wǎng)絡和設計接口帶寬,從而在AI高速發(fā)展的趨勢下,突破系統(tǒng)瓶頸,發(fā)揮系統(tǒng)能力。
作為一家領先的SSD廠商,憶聯(lián)正積極整合內(nèi)外部資源,深入探索計算型存儲的前沿領域。通過引入先進的計算技術,優(yōu)化控制器設計,并結合智能存儲管理,致力于開發(fā)具有高性能、高可靠性和智能化特性的存儲解決方案。
憶聯(lián)不僅關注對數(shù)據(jù)傳輸效率和存儲容量的提升,更關注探索各垂直應用領域的融合技術創(chuàng)新。憶聯(lián)擁有成熟的芯片、軟件、硬件、以及生產(chǎn)團隊,能夠支撐SSD從控制器芯片、軟件業(yè)務、硬件設計、裝備生產(chǎn)的端到端規(guī)劃和設計開發(fā),可支撐各垂直行業(yè)客戶實現(xiàn)SSD聯(lián)合定制,滿足多樣化市場需求,突破客戶業(yè)務瓶頸,創(chuàng)造各行各業(yè)的客戶價值。
-
處理器
+關注
關注
68文章
20149瀏覽量
247161 -
存儲
+關注
關注
13文章
4696瀏覽量
89571 -
SSD
+關注
關注
21文章
3061瀏覽量
121786 -
AI
+關注
關注
89文章
38106瀏覽量
296642
原文標題:Tech Talk: 淺談AI浪潮下的計算型存儲SSD
文章出處:【微信號:UnionMemory憶聯(lián),微信公眾號:UnionMemory憶聯(lián)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄

一文詳解計算型存儲協(xié)議框架
評論