NVMe计算型存储:三星、WD和NGD的“SmartSSD”
ccwgpt 2024-11-20 13:06 20 浏览 0 评论
WD也把FPGA加到"SSD"上了,但不是真的SSD...
这两天看到“OCP ODSA(Open Domain-Specific Architecture)Workshop - Prototyping Chiplet Based Open Data Accelerators”会议的资料,有些东西可以分享给大家。
最近DPU/SmartNIC火的不得了,基于网卡的计算/卸载我不算太熟悉,而计算型存储(Computational Storage)还可以凑合聊聊。
图片点开后可放大查看(以下同)
在Gartner最新的《Hype Cycle for Storage and DataProtection Technologies, 2021》中,Computational Storage的位置比去年又往第一波峰顶前进了一点。
上图中的厂商,由于还加上了SNIA CSMI(Compute, Memory, and Storage Initiative)的成员,所以显得有点多。而完整数量比这个还多,Futurewei和YMTC实际上也在里面,具体就不展开了。
我还想起老牌存储厂商,比如日立(HDS)很早就在SSD上做了压缩;而IBM则是最近在企业级QLCSSD上开始加入SLC Cache。
三星的SmartSSD计算存储设备
Samsung在这款SSD上加了颗Xilinx(赛灵思)FPGA,已经不是新闻了。如上图,SmartSSD的主机接口统一走FPGA——同时兼做PCIe Switch的角色。具体来说,闪存控制器、4TB TLC NAND和4GB DRAM(存放FTL等)是一个子系统;而FPGA和它的DRAM可以单独干活。当然FPGA直接访问SSD控制器也是可以不经过主机资源的。
上图中列举了SmartSSD的3种用例:
- 数据库:在查询任务中,FPGA可以卸载完整数据传输、过滤和压缩,CPU只做SQL处理就好了;
- 富媒体:H.264视频转码。右边的参考图,是U.2的SmartSSD在服务器中配置到24块时,多流转码性能可以线性提升;
- 存储和大数据服务:这里特别提到了LZ4解压缩带宽的扩展(解压缩比压缩快正常),还有相同对象的搜索。
WD基于FPGA的U.2 AI/ML加速设备
WD(西部数据)进入这个领域是我刚知道的新闻,注意上面的PCIe U.2设备不是SSD闪存盘。
这个所谓的“计算加速平台”,其实就是把Xilinx UltraScale+ MPSoC XCZU7EV做成U.2物理形态,可以安装在支持PCIe Gen3 x4 2.5寸SFF驱动器的服务器上,功耗也控制在25W。
WD给出的用例比三星SmartSSD要宽一些,毕竟同样尺寸内不需要再容纳SSD的位置和功耗,纯FPGA的算力会更大。
一个是视频转码(H.264/H.265);然后是AI推理(Inference)——图像/视频;还有计算型存储——NVMe& eBPF支持(TP4091原型),也就是用这个FPGA再去连接SSD,可用于视频、数据库的分析加速等。
FPGA的视频转码加速这块,基本上Xilinx自己都把实现做好了,有兴趣的朋友不妨咨询下唐杰总:)
这个使用ffmpeg的测试在双线程上跑到220 FPS,我理解应该是用的1块FPGA——此时已经比32核x86 CPU表现好。这里也能看出WD纯FPGA加速器的性能优于SmartSSD上的FPGA。
WD Accelerator FPGA在ffmpeg测试中峰值功耗低于20W。上面图表中标在60W左右,应该是加上了CPU的Idle功耗,毕竟要插在服务器上使用。
如果只是单纯用于视频转码,还有像NETINT这样用ASIC来做的厂商,FPGA性能不一定会占优势,所以就需要灵活性。上图是Zebra FPGA用于机器学习的推理,训练还是用GPU来做。支持TensorFlow、PyTorch、MXNet、Caffe这些主流的框架。
这里提到了使用eBPF在NVMe上实现计算型存储(TPAR4091)。具体在结构图的右端,以WD这款产品的FPGA为例,用ARM Core上跑的软件提供一个块设备驱动接口,来访问存储盘。至于P2P DMA over PCIe,应该指FPGA访问SSD可以绕过主机CPU。
这里友情插个小广告:有需要联系WD企业级产品销售专家的朋友,我推荐一下CCF的刘委员(平台小秘书,微信号wood6988)。
NGD Systems:使用ASIC的CSD(计算存储设备)
关于NGD的SSD,这些年我有过一点了解,他们最初应该是用FPGA,后来有了自己的ASIC,兼做NAND主控和计算。另一家类似的厂商ScaleFlux用的还是FPGA。
NGD在这里列出的应用,包括GZIP压缩、CDN、AI推理在数据中心和边缘、分布式机器学习、数据搜索(Elasticsearch)和分布式处理(Hadoop)。
计算型SSD上跑一个Linux,这一点是不是和DPU网卡相似?
NGD认为DPU和CSP(计算存储处理器),相对于CPU/OS、GPU/SmartNIC距离数据更近。我理解这里的DPU和有些网卡厂商所说的DPU不同,因为NGD把CSP做到SSD主控上了;而有些使用ASIC/FPGA的网卡只是提供PCIe通道来连接NVMe SSD,如下图:
上图我在《NVMe-oF E-JBOF设计解析:WDRapidFlex网卡 & OpenFlex Data24》中就给大家看过,只可惜这款产品好像停掉了。
Linux-Based CSD上的硬件和软件资源,大家可以参考一下。
上图中的浅绿色通道,是NGD CSD的通用NVMe SSD接口;而橙色部分,则是主机上的应用,通过一个代理来连接4核Arm上运行的Linux和应用——间接访问NAND存储介质上“处理过的数据”。
NGD介绍了一个边缘分析的Demo,跑在DellEMC服务器+ VMware Bitfusion基础平台,上面还有Tanzu和Greenplum数据库。每个NGD CSD盘就是一个片段主机/数据节点,故障恢复镜像的粒度更细了。
最后再看一下NGD的功耗。U.2 32TB的功耗做到12W,看起来相当低了。这也使他们能够做到多种Form Factor,如果用FPGA的话M.2基本就不用想了吧。不过我有点怀疑的是,计划中的EDSFF E3 64TB,也能做到12W吗?
还有一点,在这样低的功耗下,ASIC的算力能达到多少,或者说NGD的价值更多在于将计算靠近数据?
注:厂商列出的更多性能数字我不在这里放了,有兴趣的朋友可以去看原始演讲资料文档。
小结
本文中提到3家不同厂商、各具特色的产品,应该说NGD在计算型存储(Computational Storage)这条路上走得更远一些,而到大规模主流应用还有一定距离。而三星和WD拿FPGA做的事情,更像是一种试水。不过万事总有开头:)
参考资料
https://www.opencompute.org/events/past-events/ocp-odsa-workshop-prototyping-chiplet-based-open-data-accelerators(里面还有youtube视频链接)
注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
尊重知识,转载时请保留全文。感谢您的阅读和支持!
相关推荐
- 腾讯开源框架TarsCpp-rpc设计分析-server(二)
-
2Tars协议2.1是什么借用官方说法:TARS编码协议是一种数据编解码规则,它将整形、枚举值、字符串、序列、字典、自定义结构体等数据类型按照一定的规则编码到二进制数据流中。对端接收到二进制数据流...
- 微服务调用为什么用RPC框架,http不更简单吗?
-
简单点,HTTP是协议,RPC是概念!实现RPC可以基于HTTP协议(Feign),TCP协议(Netty),RMI协议(Soap),WebService(XML—RPC)框架。传输过程中,也因为序列...
- go-zero:开箱即用的微服务框架(gin框架微服务)
-
go-zero是一个集成了各种工程实践的Web和rpc框架,它的弹性设计保障了大并发服务端的稳定性,并且已经经过了充分的实战检验。go-zero在设计时遵循了“工具大于约定和文档”的理...
- SOFARPC :高性能、高扩展性、生产级的 Java RPC 框架
-
#暑期创作大赛#SOFARPC是一个高性能、高扩展性、生产级的JavaRPC框架。在蚂蚁金服,SOFARPC已经使用了十多年,已经发展了五代。SOFARPC致力于简化应用程序之间的RPC...
- 自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记
-
痛点1.bsf底层依赖springcloud,影响bsf更新springboot新版本和整体最新技术版本升级。2.eureka已经闭源,且框架设计较重,同时引入eureka会自行引入较多sprin...
- Rust语言从入门到精通系列 - Tonic RPC框架入门实战
-
Rust语言是一种系统级语言,被誉为“没有丧失性能的安全语言”。Rust语言的优势在于其内存安全机制,在编译时就能保证程序的内存安全。Tonic模块是Rust语言的一个RPC(RemoteProce...
- 腾讯开源框架TarsCpp-rpc设计分析-client(一)
-
前言Tars是腾讯开源的微服务平台,包含了一个高性能的rpc框架和服务治理平台,TarsCpp是其C++版本。对于以C++为主要开发语言,同时还想深入了解rpc和微服务框架具体实现的同学来说,Tars...
- 设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
-
为啥要开发RPC框架事情是这样的,在开发这个RPC框架之前,我花费了不少时间算是对Dubbo框架彻底研究透彻了。冰河在撸透了Dubbo2.x和Dubbo3.x的源码之后,本来想给大家写一个Dubbo源...
- rpc框架使用教程,超级稳定好用,大厂都在使用
-
rpc是什么远程调用协议如何使用导入依赖<dependency><groupId>org.apache.dubbo</groupId><art...
- Layui 框架实战:动态加载 Select 与二级联动全解析
-
在现代Web开发中,下拉选择框(Select)是用户输入数据时不可或缺的组件。很多时候,我们需要的选项并非静态写死在HTML中,而是需要根据业务逻辑从后端动态获取。更有甚者,我们可能需要实现“...
- 15个能为你节省数百小时的前端设计神器,从UI库到文档生成
-
无论你是刚开始开发之旅的新手,还是疲于应付生产期限的资深程序员,有一个真理始终不变:正确的工具能彻底改变你的工作流程。多年来,我测试了数百个开发工具——有些实用,大多数平庸。但有一批免费网站经受住了时...
- Layui与WinForm通用权限管理系统全解析
-
嘿,小伙伴们,今天咱们来聊聊Layui和WinForm这两个框架在通用权限管理系统中的应用。别担心,我会尽量用简单易懂的语言来讲解,保证让大家都能跟上节奏!首先说说Layui。Layui是一个前端UI...
- 纯Python构建精美UI!MonsterUI让前端开发效率飙升
-
“无需CSS知识,告别类名记忆,11行代码实现专业级卡片组件”在传统Web开发中,构建美观界面需要同时掌握HTML、CSS、JavaScript三剑客,开发者不得不在多种语言间频繁切换。即使使用Boo...
- WebTUI:将终端用户界面(TUI)之美带到浏览器的CSS库
-
在当今Web技术飞速发展的时代,界面设计愈发复杂多样。然而,随着现代化工具的广泛使用,一些开发者开始回归极简风格,追求一种简洁而富有韵味的设计。WebTUI正是这样一款CSS库,它将经典的终...
- 人教版二年级下册生字描红汇总(拼音+笔顺+描红),可打印!
-
可定制内容,评论区留言。本次整理的为人教版二年级下册所有生字,共计300个;写字是小学阶段一项重要的基本功训练,把汉字写得正确、工整、美观,可以提高运用汉字这一交际工具的准确性和效率。对小学生进行写字...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 腾讯开源框架TarsCpp-rpc设计分析-server(二)
- 微服务调用为什么用RPC框架,http不更简单吗?
- go-zero:开箱即用的微服务框架(gin框架微服务)
- SOFARPC :高性能、高扩展性、生产级的 Java RPC 框架
- 自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记
- Rust语言从入门到精通系列 - Tonic RPC框架入门实战
- 腾讯开源框架TarsCpp-rpc设计分析-client(一)
- 设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
- rpc框架使用教程,超级稳定好用,大厂都在使用
- Layui 框架实战:动态加载 Select 与二级联动全解析
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- ui自动化框架 (47)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)