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