中文 英语

计算数据所在位置

计算存储方法推动了功耗和延迟的权衡。

受欢迎程度

随着系统架构师来掌握在处理器和分层内存和存储之间的大量数据的上升,能量和延迟影响,开始计算存储器开始牵引。

据国际数据公司(IDC)称全球边界将从2019年的45ztb增长到2025年的175 ztb。但这些数据基本上是无用的,除非对其进行分析或进行一些计算,而将这些数据转移到CPU需要比计算本身更多的能量。计算存储等方法试图减轻这些问题。

数据和油的价值之间已经进行了许多比较。“除非您与他们做点什么,否则数据和石油都是无用的,”营销总监Kartik Srinivasan说Xilinx数据中心组。“原油不能放在你的车里。您需要使用一些应用程序来使其有用。数据更具挑战性,因为您在分析完成后使数据可用的延迟非常关键。当股票经纪人获得一段信息时,“这是发动机推荐的交易,”如果它已经迟到了五分钟,这是无用的。因此,如果对其的分析没有正确的延迟进行分析,则数据的价值会减少。“

所有类型的数据共享和流式传输都已启动生成,交换和共享的数据量。大流行只加剧了对更高的需求数据中心Scott Durrant观察到,DesignWare IP云细分市场经理synopsys.。“与Covid,这是指数兴奋的,预计我们工作方式的变化,我们学习的方式,我们互动的方式,我们找到娱乐的方式是永久性的。”

因此,创建设备的SOC设计人员为这些高速,低延迟应用程序的设计是开始考虑替代架构,例如计算存储。

“当我们看到更多的控制系统上网时,低延迟的临界程度都将增加重要性,”Durrant说。“随之而来,数据中心的另一个重点是优化能量利用率。现在有一个大的驱动器朝着数据中心净碳足迹,这实际上是一个巨大的挑战,因为他们今天是大量的电力消费者。数据中心中的每个元素都将在此处播放。数据中心在优化电力方面时,传统上的传统上是移动设备架构。多年来的移动设备一直在尝试通过最小化功耗和关闭在特定时间点不使用的设备的碎片来最大限度地提高电池寿命。我们今天在数据中心看到类似的实施,以最大限度地提高功率效率。此外,已经引入了新的处理器架构,历史上已被用于移动设备中使用。例如,ARM处理器现在正在定位数据中心基础架构。ARM和RISC-V处理器充分打开,您可以优化它们的特定工作负载。“


图1:计算储存对能量的影响。资料来源:2019年8月,HPCC的Synopsys / 21st Ieee会议

这是计算存储所适应的地方。“自上次开始以来,通过数据进行计算的想法已开始,”Srinivasan说。“但现在使用数字转换,有合理的硬件进行分析,以及允许分析完成的软件框架。这些组件以一种好的方式聚集在一起。数据准备好了。硬件价格实惠。软件框架可用于申请。“

然而,这比看起来要难得多。“将会有一堆磁盘和装满数据的磁盘,你可能只需要其中的一、两块,但所有的都必须被搜索,”Steven Woo说,他是麻省理工学院的研究员和杰出发明家Rambus。“这样做的传统方式是将所有内容占用磁盘,将其转移到CPU,然后CPU将通过一切搜索并丢弃所有的所有99.999%。它正在做的很多工作实际上浪费了。或者,可能存在磁盘阵列,并且系统设置为并行传输所有数据,因此它越快。但最终,仍然只有一个CPU搜索数据,这是瓶颈。“

Woo说,这是计算存储真正闪耀的地方。“如果每个磁盘都有一点点聪明,那么怎么了?现在可以对所有磁盘说,“并行搜索。我要去说,你们每个人都要扫描你的所有信息。只寄给我匹配我的特定请求的东西。“有趣的是我不浪费我永远不会使用的带宽和能量移动数据。这一切都留在本地,我只能看到与我的标准相匹配的东西。“

广泛的应用
计算存储开始在边缘获得关注,从终端设备到各种类型的服务器(既有内部的,也有外部的),计算资源的层次结构有点模糊。在所有情况下,目标都是在尽可能接近源的地方进行尽可能多的计算,从而限制数据需要传输的距离。

“今天发生了什么是数据来运输,即使它在边缘生成,无论是监视图像还是车牌读者,”存储解决方案总监Neil Werdmuller说手臂。“通常,所有这些数据流都被发送到某处的中央服务器,然后处理它。它将从数据流中拉出的是偶尔的牌照号码,似乎似乎疯了。如果您只能在边缘进行处理,请发送洞察力或您在需要去的地方的值,这更有意义。“


图2:计算与传统存储。来源:ARM

另一个例子可能是在5G电信环境中,在基站上实现计算存储。Werdmuller说:“如果一辆汽车通过那个特定的蜂窝区域,他们就可以有高清地图,将所需的瓦片存储在需要的地方,而不是每一辆通过那个蜂窝区域的汽车都必须从中央某处下载相同的东西。”“所有的回程都是昂贵的,消耗能量,增加延迟,因为通常情况下,当你以这种方式移动数据时,就会涉及到延迟。”

在边缘处处理这些数据也有安全和隐私方面的好处。

但并非所有数据都可以在边缘收集和处理,并且在云中也有一个巨大的机会使用计算存储。

Werdmuller说:“管理所有这些工作真的很有挑战性,而且工作量经常呈爆炸式增长。”“把所有这些都放在一台服务器上管理,然后不得不把数据放到那里,这很复杂。它增加了能量,增加了延迟,所以如果你能有存储特定数据的存储,你就能有特定的工作负载。例如,如果你想对一系列的照片进行机器学习来进行面部识别,如果你知道这些图像存储在驱动器的哪里,那么对实际数据进行这样的操作就很有意义。你必须集中管理更少的工作负载,并能够分配工作负载。”

所有这些都引起了企业的兴趣,因为移动数据所需的精力和时间,以及需要快速处理的不断增加的数据量。“如果不花费太多精力和时间,这就不是问题,”Woo说。“一旦你有了这种只发送真正重要的信息的能力,也许你甚至可以在存储中做一些简单的计算。但一旦你有能力将更少量更有意义的数据发送回CPU,那么CPU就会尽可能长时间地保存它。它可以使用机器学习技术,保存数据,并尽量不移动数据。您所希望的是最小化磁盘上的数据移动。然后,一旦你得到了更有意义的东西,你就可以把它发送回处理器这样就不会浪费带宽,因为你只发送了有意义的东西。然后处理器会尽可能长时间地抓住它,并尽量不移动它。所有这些都是为了最小化数据移动。”

SSD到CSD演变
从设计角度来看,从固态驱动器(SSD)到计算存储设备(CSD)的路径是进化的路径。

“Up until about 2019, we were solving one of the biggest problems with emulation that users were trying to work with in SSDs, i.e., measuring performance — specifically the IOPS (input/output per second) — and the bandwidth and the latencies,” said Ben Whitehead, solutions product manager, emulation division at西门子EDA。“随着其他类型的验证,延迟是一个很大的问题,因为它们并不是很准确。您可以获得功能纠正的解决方案,它将是,“哇,这很棒”,然后你就可以录音并进入实验室,有时它的性能将按数量级的顺序关闭。它令人尴尬的是表现多么糟糕。它的工作,但我们无法真正准确地测量性能预硅。做一个SSD这是多么困难。但是,所有这些SSD工作的副产品都是SSD在其中有多个处理器 - 实时处理器。我在设计中使用了八个相当大的微处理器的设计,并且在您的存储关闭的数字系统中,它可以快速提供数据,然后闲置。大多数时候这些处理器都闲置,当他们需要时,他们真的需要。就像一个战斗机飞行员一样,它是四个小时的无聊,然后是15秒的恐怖。 That’s what drives do. They sit around waiting to just blast data back and forth. With all that processing power around it, it made logical sense to do something more with it.”

CSD处理数据的移动。怀特海德说:“L2缓存总是被CPU在主板上的数据请求所挤压。”“当处理器花费所有的时间来来回移动数据时,它提出了一个问题,‘我们在这里做什么’,并意识到很多处理可以在其他地方完成。”《CSD》真正吸引人的地方在于,我们可以将部分处理能力用于硬盘本身。”

其他人也同意。“十年前,固态硬盘是新的,”Kurt Shuler说,营销副总裁Arteris IP。“真的没有像企业SSD的任何东西。在盘式硬盘驱动器上运行很少的微控制器。那是半导体的地方。从那时起,已经改变了。许多初创公司正在做出真正复杂的SSD控制器,最初的问题是NAND闪存在运行时消耗自己,因此您总是必须检查单元格。然后,一旦你发现他们很糟糕,你必须把它们绳索,告诉他们不要再保存任何东西。如果您购买1-Terabyte SSD驱动器,它实际上具有超过1磅的特性,因为它在运营时磨削自己死亡。对于SSD控制器,这是初始挑战。但现在,存储磁盘公司经历了很多整合。 If you look at what’s going on computational storage, we have customers who are doing SSD storage and controllers for the data center that are focused on a particular application, such as video surveillance, so there is computation actually within those controllers that is dealing with that particular use case. That is completely new. Within that computation, you’ll see things like traditional algorithmic, if/then analysis. Then, some of it is trained AI engines. Any of the SSD, enterprise SSD controllers are heading in that direction.”

这开始重塑竞争格局,特别是在西部数据(Western Digital)等传统存储公司开始设计自己的硬件加速器之际。

了解计算存储
从技术角度来看,概念相对简单,Marc Greenberg表示,产品营销集团主任IP集团节奏。在软件中取一个简单的计数器或累加器函数,x = x + 1。如果x是我们将要大量使用的东西,它可能会被存储在CPU上的缓存或暂存板中。但是假设我们有很多这样的计数器或者其中一些不经常使用。然后,它们中的一些可能被存储在外部内存中,比如DRAM。当需要执行x = x + 1操作时,我们需要激活内存中的页面,从DRAM中读取x,将xX带到处理器中,给它加1,然后将它写回DRAM。根据这个进程所花费的时间,我们可能需要在内存中预充页,然后在写准备好之后再次激活它。所有这些都需要能量,将数据在DRAM、CPU和DRAM之间移动,以及激活DRAM中的页面并使用当前。”

Greenberg说,如果存储设备中有一个简单的逻辑元素,就可以发送一个事务,比如“在内存地址x的内容中添加一个,然后返回结果。”通过这样做,它将在接口之间移动数据所需的能量减少了一半,减少了内存中页面必须处于活动状态的时间,并减轻了CPU的负担。

从那个简单的例子,它可以分为一百万个选项。“应该概括为任何x = x + y吗?如果它溢出怎么办?它是否能够减去?繁殖怎么样?关于其他基本的ALU函数,如比较,转移,布尔函数的函数?最终它成为内存中的二级CPU,不一定是坏事,但今天没有通过通用基础进行。至少在短期内,似乎内存中的特殊功能处理器可能是要走的方式,有公司在内存中做出某些定向的AI函数,例如,通过构建具有AI数学处理功能的自定义存储器设备在,“他说。

需要解决的问题
但要实现这一工作,必须在内存中添加逻辑,Darko Tomusilovic表示vTool.。“你必须添加一些控制器作为内存块的一部分,内存逻辑的一部分。这与在处理器和内存之间进行分离是有区别的。现在你将把一个逻辑放入内存本身。当你验证内存控制器时,你要考虑到它不仅仅是一个愚蠢的内存控制器。它也可以做一些事情。这违反了核查的整个概念。在此之前,我们需要测试内存子系统,然后将内存子系统集成到全芯片环境中。将软件测试用例仅仅作为整个芯片的一部分来运行,这或多或少是一种常见的方法。现在它变得更加交错。 In that sense, we see that there is a huge demand for specific engineers who will only target memory controller verification, so now it almost becomes a separate profession. As a services company, we see a huge demand specifically for that.”

与此同时,通用电气公司高效电子部门主管安迪·海宁指出,这些方法在各个层面上都缺乏标准弗劳恩霍夫IIS的自适应系统部工程。程序员想要在框架中编程,这意味着基于库的高级编程(比如用于AI编程的Tensorflow)。软件也在许多不同的抽象级别上进行编程——底层驱动程序编程、一级库、基于前者的高级库、应用程序编程。在驱动程序级别封装内存中计算是可能的,但是我们假设这种方法的全部潜力无法通过这种方式实现。只有当您能够通过所有编程级别访问该机制时,才能充分发挥潜力,因为这样应用程序算法才能直接使用加速的数据计算。但是要让它通过所有的编程级别也意味着需要所有编程级别上的标准来获得不同库之间的兼容性。要在框架层上实现这样的编程,必须实现许多较低的层。如果必须为每个体系结构进行新的操作,那么这将耗费时间和资源。因此,必须建立硬件、软件驱动等各个层面的标准。”

许多CSD实现利用驱动器内部的应用程序处理器,而不是实时处理器。西门子EDA的Whitehead指出:“应用处理器与实时处理器有很多不同的要求和处理方式。“他们完全不同。为此,一些处理器供应商,比如Arm,专门为多核计算存储创建了处理器。它结合了应用处理器和实时处理器的元素,所以处理可以在两种模式下完成。”

Whitehead说,大多数在实时处理器、ssd和控制器方面有经验的工程师都习惯了这种工作方式。“对于Arm处理器,你可以在它上面运行固件,做写、读、垃圾收集和所有你想在SSD上做的事情。但是现在您在DUT中添加了整个Linux堆栈,这在设计和验证中产生了一些实际的后果,因为现在您的驱动器中有了一个真正完整的系统。它看起来像一台电脑,这意味着不同的东西。从主机的角度来看,当您插入它时,它仍然必须看起来像一个SSD。它仍然会说,‘我是一个驱动器,我可以满足你所有的存储需求。’但如果系统知道它也有一个Linux系统,你就可以SSH(一种用于计算机之间安全通信的Linux网络协议)进入这个系统,然后它看起来就像一个无头服务器运行在那个硬盘里。”

考虑到延迟和性能是最大的斗争,这会带来完全不同的验证标准。

“现在您已在驱动器中添加了应用程序处理器,”他说。“你如何衡量这一点?如果它正在工作,你需要重新启动那些实时模式的情况会发生什么?现在你真的搞砸了你的延迟,你会得到真正的偏差。你需要解释一下。“

他并不是唯一一个指出这一点的人。Arm的Werdmuller说:“基本上,如果你采用Linux的理想模式,除了计算量之外,没有什么不同。”“例如,如果你看看Arm智能网卡,或基于Arm的服务器或Intel Xeon服务器,因为它有很多工作负载,要管理很多东西,通常计算是非常密集的。对于某些工作负载,这可能是正确的方法。当然,在其他情况下,实际执行分布式计算——每个驱动器只执行少量操作,而不是将其全部转移到需要大量能量的真正强大的计算——本地执行也有好处。这里有一个功率限制,一个PCIe插槽的功率通常是25瓦,但是20多瓦用来为设备中的NAND和RAM供电,所以你只剩下5瓦用于计算中的其他所有东西。这看起来很低,但你仍然可以用这种级别的计算做很多事情。”

结论
通过更多计算入住内存,Compute架构的其他部分也在发生变化。

“我们对”服务器“的旧定义曾经有一个坐在其中的CPU,这对发生的一切都负责,”Xilinx的Srinivasan说。“所有应用程序处理,所有数据都是由CPU完成的,其余的外围设备几乎负责将数据存储到CPU,存储它,或让临时存储器访问数据以无论中间的原因访问数据计算。”

他说,随着行业慢慢开始发展,现在需要分担责任。
“从超级标量到企业,他们都接受这样一个事实,即并非所有工作负载都是平等的。您希望能够将CPU用于正确的工作,gpu用于正确的工作,fpga用于它们所能做的工作。因此,这意味着为正确的工作使用正确的工具,这不是一项简单的任务,因为不存在典型的数据中心这样的东西。因此,计算存储的概念将应用于驱动器、处理器或阵列级别。”



3评论

凯文·卡梅隆 说:

内存计算可以追溯到20世纪70年代

https://en.wikipedia.org/wiki/Communicating_sequential_processes

Transputer是在20世纪80年代实现的。

阻止它发生的是CPU和内存的分离,因为DRAM在不同的硅进程上。然而,现在我们有了叠模,这不是什么问题。

当前计算存储更像是分布式计算,因为PCIe卡基本上是自身的计算机。

Ann Mutschler. 说:

谢谢你的评论,凯文。好点。虽然这显然不是什么新想法,但它是定制计算的另一种方式,我认为这是有趣的一点!如今有很多方法可以实现系统架构——对每种方法进行权衡需要架构师和设计人员具备大量的知识、洞察力和经验。

另一次 说:

嗨,
哪个HPCC纸是第一个数字?
谢谢,
另一次

发表评论


(注意:此名称将被公开显示)