Tech Talk: 浅谈AI浪潮下的计算型存储SSD

引言

近年来,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:

①主机下发Memory Copy命令,盘片从NVM Namespace,即SSD存储LBA数据区域,读出数据后,拷贝数据到SLM的内存区域。此外,主机也可以下发Memory Write命令,盘片从主机内存拷贝数据到SLM的内存区域。以准备好Program执行所需要的输入数据。图2中A1-A3示例是将SSD存储的数据库数据,拷贝到SLM的内存区域。

②主机通过下发Excute Program命令,执行Compute Namespace的Program,采用内存区域中的数据作为输入,Program进行计算后,输出到内存区域中。图2中B1-B4示例过程是,主机调用盘内的filter program,对数据库数据进行筛选计算,将筛选结果输出到SLM的内存区域后,上报主机。

③主机通过下发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联合定制,满足多样化市场需求,突破客户业务瓶颈,创造各行各业的客户价值。

◎图5 忆联端到端能力构建

参考文献
1.Computational Storage Architecture and Programming Model Version 1.0, SNIA Standard;

2.Computational Programs Command Set Specification Revision 1.0a, NVMe;
3.Subsystem Local Memory Command Set Specification 1.0a, NVMe;

4.In-Storage Data Integrity Check,Solidigm, Flash Memory Summit 2023.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/460775.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为配置 之 STP

目录 简介: STP: RSTP: 如何改变根网桥: (1)改变优先级: (2)改变root: 各端口的状态: 总结: 简介: STP(Spanning Tree Protoco…

大数据挖掘和数据挖掘有什么不一样?

一、数据挖掘: 数据挖掘(Data Mining)是指从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。 数据挖掘的概念起源于 20 世纪 80 年代后期&#xff0c…

活动|2024 CodeFuse 「编码挑战季」活动已开启!欢迎报名参加

Hi~开发者们,1024 程序员节快乐,向你们致敬! CodeFuse 开源一年多以来,受到众多开发者的欢迎。在 1024 程序员节之际,CodeFuse 发起「编码挑战季」活动,诚邀广大开发者们参与 muAgent、MFTCoder、ModelCach…

Linux上本地部署KubeSphere与cpolar实现远程管理和监控集群

文章目录 前言1. 部署KubeSphere2. 本地测试访问3. Linux 安装Cpolar4. 配置KubeSphere公网访问地址5. 公网远程访问KubeSphere6. 固定KubeSphere公网地址 前言 本文主要介绍如何在Linux CentOS搭建KubeSphere并结合Cpolar内网穿透工具,实现远程访问,根…

Chrome浏览器音/视频无法自动播放

背景:由于google的一些制度,我们在写html项目时会发现刷新页面时无法自动播放audio和video,即使你添加了autoplay属性也无济于事, 但是IE和Edge浏览器是可以自动播放的。 解决方案: 本人在网上搜寻了很多方法&#xf…

vue的路由的两种模式 hash与history 详细讲解

文章目录 1. Hash 模式工作原理优点缺点使用示例 2. History 模式工作原理优点缺点服务器配置示例使用示例 总结 Vue Router 是 Vue.js 的官方路由管理器,它支持多种路由模式,其中最常用的两种是 hash 模式和 history 模式。下面我们详细讲解这两种模式的…

什么是目标检测?

首先计算机视觉能够解决哪些问题?? 分类、检测、分割 首先以下面这幅图为例: 分类就是输入一张图像,算法能够告诉我们图像中有什么类别,比如说猫或者狗,而并不知道这个类别在图像中的位置,如…

转移概率矩阵的计算

目录 T1T2 T1 写出图示信道的转移概率矩阵,并指出其是否为对称信道。 解: 信道的转移概率矩阵 P ( Y ∣ X ) [ 0.99 0.01 0 0.005 0.99 0.005 0 0.01 0.99 ] P(Y|X)\begin{bmatrix}0.99&0.01&0\\0.005&0.99&0.005\\0&0.01&0.9…

Linux中Samba服务配置和管理

文章目录 一、Samba介绍1.1、Samba是什么1.2、Samba的核心功能1.3、Samba的主要组件1.4、Samba的工作流程1.5、Samba主要配置文件smb.conf 二、Samba安装2.1、更新yum源2.2、安装Samba客户端和服务器软件包2.3、启动Samba 三、Samba的使用3.1、设置Samba服务的全局选项3.2、tes…

MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升

在当今矿业行业,随着全球对资源需求的不断增加和开采难度的逐步提升,传统的作业方式面临着越来越多的挑战。露天矿山开采,因其大规模的作业环境和复杂的地形特点,面临着作业人员的安全风险、设备调度的高难度以及资源利用率低下等…

Spring Security 门神中的战斗机

Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。 小项目有Shiro的比较多,因为相比与SpringS…

CentOS 7 下升级 OpenSSL

升级openssh,下载:https://download.csdn.net/download/weimeilayer/89935114 上传到服务器,然后执行命令 rpm -Uvh *.rpm --nodeps --force安装依赖 yum -y install gcc perl make zlib-devel perl-CPAN下载安装包:https://github.com/ope…

unordered_map、unordered_set 底层原理及其相关面试题

目录 unordered_map、unordered_set的底层原理 哈希表的实现 unordered_map 与map的区别?使用场景? unordered_map、unordered_set的常用函数 unordered_map map区别和联系 unordered_map、unordered_set的底层原理 unordered_map的底层是一个防冗余…

若依框架部署到服务器后头像资源访问404

排错过程 第一开始以为是代理出问题了 官网给出的解决方案 第一种是用代理后端接口,第二种是重写路径直接访问静态文件 接口通过捕获profile开头的路径/profile/avatar…,转为/home…/avatar找到我们在该路径下的文件 但是我想了一下,我ngin…

Linux——五种IO模型

目录 一IO基本理解 二五种IO模型 1五种IO模型示意图 2同步IO和异步IO 二非阻塞IO 1fcntl 2实现非阻塞IO 三多路复用 1select 1.1定位和作用 1.2介绍参数 1.3编写多路复用代码 1.4优缺点 2poll 2.1作用和定位 2.2介绍参数 2.3修改select代码 3epoll 3.1介绍…

【隐私计算篇】全同态加密应用场景案例(隐私云计算中的大模型推理、生物识别等)

1.题外话 最近因为奖项答辩,一直在忙材料准备,过程非常耗费时间和精力,很难有时间来分享。不过这段时间虽然很忙碌,但这期间有很多新的收获,特别是通过与领域内专家的深入交流和评审过程,对密码学和隐私计算…

【汇编语言】第一个程序(四)—— 谁在幕后启动程序 : 探讨可执行文件的装载与执行

文章目录 前言1. 可执行文件的加载与运行1.1 DOS中的程序加载过程1.2 问题1:谁加载了1.exe?1.3 问题2:程序运行结束后的返回过程1.4 操作系统的外壳1.5 回答问题1和问题21.6 汇编程序执行的完整历程 2. 使用Debug加载与跟踪1.exe2.1 Debug的加…

Unreal Engine 5 C++(C#)开发:使用蓝图库实现插件(一)认识和了解Build.cs

目录 引言 一、创建一个C插件TextureReader插件 二、Build.cs文件 三、ModuleRules 四、TextureReader插件的构造 4.1ReadOnlyTargetRules的作用 4.2TextureReaderd的构造调用 4.3设置当前类的预编译头文件的使用模式 4.4PublicIncludePaths.AddRange与PrivateInclude…

SELS-SSL/TLS

一、了解公钥加密(非对称加密) 非对称加密中,用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓,而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密,数据仅能使用相应的私钥进行解密。 你可以将…

STM32FreeRTOS 使用QSPI驱动nandFlash

STM32FreeRTOS 使用QSPI驱动nandFlash 不清楚为什么STM32同时打开3个以上的音频文件时会出现播放问题,所以更换方案。因为SRAM的内存空间过小,用于存储音频文件不适合,所以使用大小为128MByte的nandFlash。 nandFlash使用华邦的W25N01GVZEI…