中文 英语

将数据和计算更紧密地结合在一起

这一点都不简单,但是功耗/性能和延迟的好处是潜在的巨大的。

受欢迎程度

处理器的速度已经提高到不再是许多系统的性能瓶颈的程度。现在是关于数据访问。

移动数据既费时又费电,开发人员正在寻找减少数据移动距离的方法。这意味着让数据和内存彼此更接近。

ScaleFlux的营销副总裁JB Baker说:“硬盘驱动器没有足够的数据流来造成CPU的瓶颈。“对于NVMe gen 3/4,有太多的数据可以扔给CPU,现在我们有了这个瓶颈。”

此外,为许多计算密集型应用程序处理任务,如机器学习(ML)相对适度,但频繁。“我们现在都看到,数据移动是限制因素。计算更小、更简单,因此将数据移到更接近内存的地方是有意义的。Rambus

解决这个问题的几种方法中的每一种都有特定的应用程序,从中受益最大。方法包括静态存储器动态随机存取记忆体和存储,它们彼此非常不同。

要理解这一点,需要澄清一些术语,这些术语对那些与记忆发展密切相关的人来说是显而易见的,但对其他人来说就不那么明显了。“内存”和“存储”之间的区别可能令人困惑,因为存储是使用内存技术构建的。(为了讨论的目的,“内存”指的是易于访问的工作内存- DRAM和SRAM。)

有人说,ML开发人员关心的所谓“内存墙”不是内存,而是存储。“内存和计算之间的延迟不是主要问题,”屠龙者咨询公司(Dragon Slayer Consulting)的分析师兼负责人马克·斯塔默(Marc Staimer)说。“这是一天结束时的寻呼。”如果是这样的话,那么挑战在于缩短访问时间和减少获取数据所需的功率。

另一个区别我们需要涉及两个相似的术语:near-memory计算"和"内存计算后者通常是指使用模拟存储器作为在存储器中实现乘法累积(MAC)功能的手段。这不是我们讨论的话题。该公司的重点将是将计算能力和数据紧密结合起来,即使它们仍然是分开的。

有两种方法可以拉近这些资源的距离——将数据移到更靠近处理器的地方,或将处理移到更靠近数据的地方。架构在高层上是相似的,无论采用何种方法,移动的“东西”通常更小。因此,如果数据移动到离处理器更近的地方,那么您就拥有了一个具有名义本地内存量的全功能处理器。如果是处理器在移动,那么你就拥有了存储大量数据的存储空间,附近的处理能力也不高。

不同的记忆方法不同
存储器技术的三个主要类别是SRAM、DRAM和非易失性内存(NVM)。这三个国家正在采取截然不同的措施。

有人指出,缓存形式的SRAM是使数据更接近处理器的最古老的方式。“近内存计算并不是一个真正的新想法——所有的缓存级别都是这样的,”的CTO Gideon Intrater说Adesto技术.它减少了访问常用数据的延迟。但它也有一个非常特定的结构,限制了它的使用,除了缓存。“如果有一种简单的方法来为人工智能使用缓存,我们就不会有这样的对话了,”他补充道。

在此背景下,更令人感兴趣的是紧耦合存储器(TCM)使用的增加。这些是处理器可以直接访问的SRAM块,而不需要共享内存总线。使用TCM的方式对开发人员和特定应用程序的需求完全开放。IP at的战略营销经理罗恩•洛曼(Ron Lowman)表示:“(今天的)骰子充满了内存(SRAM)和计算能力。Synopsys对此


图1:紧密耦合的内存直接连接到处理器上,而不是通过标准总线。资料来源:Bryon Moyer/Semiconductor Engineering

这刺激了更好的SRAM的持续发展。Lowman说:“我们正在探索基于锁存的SRAM与传统SRAM的对比。“我们一直在定制SRAM单元的密度或泄漏。”

DRAM在本讨论中的参与围绕UPMEM所采取的一种商业方法。“我很高兴看到UPMEM所做的一切,”Woo说。“他们是最极端的。”

UPMEM为DRAM芯片添加了一个小型处理器,这样您就可以在同一个芯片上拥有DRAM和处理能力。Winbond DRAM营销经理奥马尔•马(Omar Ma)表示:“他们(从事人工智能的那些人)确实希望DRAM有助于计算。”

DRAM进程没有针对高速计算进行优化。我们假定这样的处理器将拥有基于前沿逻辑流程创建的专用芯片,从而使DRAM可以自由地在单独的存储芯片上使用针对DRAM优化的流程。“挑战一直是DRAM工艺。你根本不想让它们漏出来。这将使晶体管运行得更慢;你无法构建最复杂的核心,”Woo指出。

因此,UPMEM在DRAM芯片上安装的处理器必然是功率不足的,其指令集比标准处理器上的指令集更有限。但它声称,即使这种方案比主处理器慢,你仍然可以获得性能提升,因为:

  • 您可以更轻松地访问大量数据,节省数据传输时间,并且
  • 您可以分配计算,使用不同的DRAM芯片并行处理不同的任务。


图2:UPMEM的方法将有限的处理器放在与DRAM相同的芯片上。资料来源:Bryon Moyer/Semiconductor Engineering

这种方法尚未取得成功。它必须克服一些挑战。最主要的一个问题是,为了利用这一点,程序必须以不同的方式编写。第二个问题涉及到这样一个事实,即您现在拥有一个专用于内存以外的空间的芯片。

“挑战的另一半是你需要处理器的空间,”Woo说。“内存的损失值得额外的计算吗?”

这直接涉及到在计算资源附近所感知到的价值。

计算存储
有了NVM,我们进入了一个完全不同的领域——一个新兴的类别。在这种情况下,我们讨论的是存储,因此它远离处理,并通过类似驱动器的接口或总线协议(如PCIe和NVMe)进行访问。它实际上是一个具有额外处理能力的固态硬盘(SSD)。

该公司产品管理和产品工程高级总监让-玛丽•布吕内表示:“它的巨大影响超出了人们对存储的想象。Mentor是西门子旗下的公司.“这是一个非常有活力的市场。”

计算存储特别兴趣小组主席Eli Tiomkin对此表示赞同。“计算存储市场的状态仍将被归类为新兴市场。一些供应商提供的解决方案正在被客户使用。”

目前使用的存储技术是闪存。其他有抱负的NVM技术也存在,包括3D Xpoint(相变)和MRAM(磁性)存储器在商业上走得最远。“他们都有问题,”屠龙者咨询公司的Staimer说。

但两者都很难在成本上竞争。Staimer说:“存储人员因为降低成本和增加容量而获得奖励,但没有因为提高性能而获得奖励。”“英特尔没有盈利。Optane 1只比NVMe Flash快3倍。价格是5倍。Optane 2的速度快了4.5倍,但价格还是贵了5倍。你至少要有一个平等的价值主张。”

其他存储器,如RRAM和NRAM,也在研究中——成本仍然是问题。

计算存储设备(CSDs)在概念上可以具有不同级别的功能灵活性。其中最简单的将具有固定的功能,将其操作奉献给单个应用程序。这些可能是各种卸载函数,例如重复数据删除、加密、解密、压缩或其他定义良好的类似任务。ScaleFlux的贝克表示:“这是一款内置服务的固态硬盘。考虑到这些定义的牢固程度,处理可以在逻辑中而不是在软件中实现。


图3:最简单的CSD具有固定的功能,无论是在硬逻辑还是软件中实现。资料来源:Bryon Moyer/Semiconductor Engineering

如果内存包含一个或多个代码段,每个代码段用于不同的任务,则会有更大的灵活性。其他地方的主处理器可以通过发送指向当时需要的特定代码的指针或使用自定义命令来启动任务。


图4:一个更灵活的CSD可能有一些内置的功能,如这个概念视图所示。然后,主机可以选择其中一个函数,可能是通过传递一个指针或专用命令作为任务分配的一部分。资料来源:Bryon Moyer/Semiconductor Engineering

更灵活的情况是主机处理器下载要执行的代码。这很容易是目标代码——然而,下载源代码并在CSD上实现即时编译的项目也在进行中。这种技术允许代码对执行它的处理器保持不可知。


图5:CSD最灵活的方法是允许以对象或源格式下载任意代码,如图所示。如果下载源代码,那么处理器将需要支持即时编译。资料来源:Bryon Moyer/Semiconductor Engineering

Staimer还警告说,计算存储有两个层次——系统和驱动器。我们一直在讨论的事情,用动力来形容再恰当不过了。它是一个单板,看起来像一个驱动器,碰巧有计算能力。“对于大多数人来说,当你使用计算存储时,这意味着你把CPU放在驱动器上。这不是做事的唯一方法,”他说。

一个系统可能由许多驱动器组成,每个驱动器都可以进行计算,或者它们可以是具有单一计算资源的标准驱动器。Staimer说,目前系统的唯一商业例子是Oracle的Exadata产品。“大多数计算存储的相关性将在系统级别,而不是在驱动器级别。即使有驱动器,也将由系统供应商进行集成,”他说。

这些csd的接口还没有具体转换。目前,PCIe和NVMe占主导地位。一些人认为CSX可能在其中发挥了作用。Arm的观点是,以太网会更容易,因为PCIe有瓶颈,而且PCIe根节点价格昂贵。“使用以太网,你可以更容易地扩展,”Neil Werdmuller说,存储解决方案,汽车和物联网总监手臂

此外,没有用于指向驱动器上的代码或用于下载对象或源代码的标准命令。如果这样的应用程序被证明是可行的,标准接口将使更广泛的开发人员更容易使用它。“市场上有一些系统,但它们是专有的,”Intrater说。

英飞凌就是一个做私有CSD的公司。“我们正在用一个小处理器做大量的闪存,”英飞凌市场和应用、内存解决方案高级总监桑迪普·克里什内戈达(Sandeep Krishnegowda)说。但是客户不能直接在上面开发。他们与英飞凌合作定义自定义命令。

存储网络工业协会(SNIA)目前正在为csd定义内部工作和相互通信。同时担任NGD Systems业务发展副总裁的Tiomkin说:“计算存储(工作组)已经制定了定义计算存储三种变体的路径。“这些包括CSD(计算存储驱动器),这是一个单一的SSD形式,具有一个单片ASIC,如NGD Systems所示,一个FPGA实现,如ScaleFlux所示,[甚至]三星的FPGA + SSD ASIC。正如Eideticom所示,在存储平面上也有计算存储处理器(csp),但不直接绑定到存储媒体。最后,我们有计算存储阵列(csa),这是一个系统级解决方案,我们今天还没有一个纯粹的例子。”

FPGA和定制asic占主导地位。Baker说:“现在我们看到很多计算存储都是由FPGA或定制asic处理的。使用FPGA可以帮助设计人员试验新的应用程序和服务。“随着时间的推移,将会有服务被加固成ASIC。”这些都是板级产品,因此处理器、fpga和内存都可以建立在最佳工艺之上。


图6:四种CSD体系结构备选方案。来源:SNIA

不同的用例还表明,这种软件比典型的应用程序更难编程。内存管理的操作方式不同,主机程序需要调度CSD上的任务——这些细节的操作级别比大多数开发人员想要处理的要低。Arm的Werdmuller说:“应用程序开发人员比深度嵌入式程序员还多。“人们想用比c更高级别的语言来写东西。”

“如果你有一个程序,其中一些代码在CPU中执行,一些在内存中执行,你必须考虑清楚,”Rambus的Woo说。“也许随着时间的推移,会有库和抽象层。”

Staimer补充道:“一些供应商已经开放了他们的存储系统用于虚拟机和容器,但这并没有卖得很好,因为编写分布式代码太难了。”

如果使用fpga,还需要硬件设计。在大多数情况下,这些技能不是存储社区的传统技能。

这些技能问题导致了CSD提供的许多方法。有些提供了一个开放的环境,客户可以使用它来构建应用程序。但考虑到可能的客户,Staimer说你必须有一个定义良好的应用程序或应用程序套件,并在这个级别上销售。你不是在卖CSD,而是在卖一套微服务。ScaleFlux使用这种方法:他们的客户不能改变内部程序;他们购买特定的服务。

更强大的功能来自Linux。“如果你在驱动器上运行Linux,你基本上就有了一个纳米服务器,”Werdmuller说。它可以使用标准主机进行管理,每个人都可以为它编写应用程序。

这也让系统对数据更加智能。

“今天的存储不知道数据是什么,”Woo说。“如果你在内存设备上计算,你需要语义感知。”

使用Linux,您可以定义一个文件系统,并且系统可以更加智能地判断文件是图像、声音文件还是其他类型的数据。目前的一些系统将无法实现这种能力。“许多这样的驱动器使用类似cortex - r的处理器——它们不能运行Linux,”Werdmuller指出。

CSD的集成
csd的整合路线图不那么清晰。如果你想要大量的存储空间,你可能会停留在电路板级别,因为这为更多的数据提供了空间。使用通用闪存(UFS)标准的较小的电路板也可以插入为该格式设计的系统。“电路板级更容易散热,”Woo说,并指出处理器会产生大量热量,而内存不喜欢变热。

下一个级别的集成将把多个芯片放在一个高级封装中。同样,我们可以使用在优化进程上开发的内存、逻辑和处理器。这样做的代价是,你不能在一个包中放入尽可能多的内存,就像在一个更大的板上一样。“如果你想要大量的存储和少量的计算,那么堆叠(内存芯片)是没有意义的。但如果它更平衡,那么堆叠可能是有意义的,”Woo指出。

最高级别的集成将来自于将各个部分放在一个芯片上,以实现整体解决方案。这立即提出了一个挑战,即您不能再对系统的每个部分使用优化的流程。妥协是必要的。与闪存相比,新型NVM技术有望与CMOS工艺兼容,因此如果密度和成本允许,它们的出现将使这种集成更容易。

协同包装和单片集成可能看起来具有挑战性,但这并没有阻止这一趋势。“我们看到两者都在发生,”Mentor的Brunet说。不集成有助于证明一项技术的力量,而且在早期,集成是不可能的。从长远来看,出于空间和成本的考虑,我们有理由期待整合的推动。

CSD的设计和验证比简单的SSD更困难。ssd通常使用在线仿真(ICE)进行验证,这涉及到在模拟器上实现设计,然后通过与数据源的物理连接提供数据。这意味着需要有人建立物理连接,数据速度可能需要适应较慢的验证系统。

对于csd,您还必须验证计算。ICE在这里不再有效。所有内容都是虚拟化的,包括数据源。

Brunet说:“这加速了SSD/ICE无法完成的前硅测量能力。”由于可能的应用程序范围很广,模拟器将需要能够引导Linux(对于支持Linux的CSD)并运行CSD打算支持的各种服务应用程序。

CSD的应用程序
CSD应用程序各不相同,但它们的性质相似。其中一些程序处理数据并返回答案。另一些则在发送数据之前对数据进行预处理,这样返回的数据质量更高,消除了“垃圾”。

应用示例包括:

  • 数据库查询
  • 数据分析
  • 模型训练
  • 毫升推理
  • JSON查询
  • 加密/解密
  • 压缩
  • 视频编码
  • 通用计算

但是,应用程序是关键。“这将是应用驱动的,”Stamier说。“不会是‘这里有一个更好的捕鼠器,来买吧。事实上,这是一个CSD可能很奇怪,但真正的价值在于提供的服务。”他认为提供给其他人编程的csd不太可能成功。

结论
我们所看到的所有近记忆的例子——除了中医——都处于早期阶段。这意味着进一步的进化是可能的。

Synopsys的洛曼说:“市场变化非常快。“这是一个非常令人兴奋的市场。这些技术仍在不断相互超越。”



2的评论

我要说出来 说:

3 dsoc。

在此之前,AMD Zen 4/5的I/O芯片上有1gb或更多的L4缓存。

凯文·卡梅隆 说:

DRAM的能源成本是片上内存的200倍,而且延迟很可怕,它将会消失——像Optane这样的NVM技术将在上面提到的3d - soc中取代它,以及像异步逻辑这样的东西来降低功耗。

留下回复


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

Baidu