前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​让数据和计算更紧密地结合在一起

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

作者头像
AsicWonder
发布2024-04-03 17:11:32
1080
发布2024-04-03 17:11:32
举报

"让数据和计算更紧密地结合在一起"并不像听起来那么简单,但功耗/性能和延迟方面的好处可能是巨大的。

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

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

许多计算密集型应用(如机器学习 (ML))的处理任务相对较简单,但对于数据的需求很频繁。

此时,数据移动成为应用的瓶颈。计算更小、更简单,因此将数据靠近计算是有意义的。解决此问题的几种方法涉及 SRAM、DRAM 和存储( storage),它们彼此之间有很大不同。

“内存memory”和“存储storage”之间的区别可能会令人困惑,对于从业相关技术的工程师而言,“内存”是仅指易于访问的工作内存 — DRAM 和 SRAM。

我们需要区分另外两个相似的术语:“near-memory computing” 和 “in-memory computing”。后者通常是指使用模拟方法在 memory中实现乘法累加 (MAC) 功能的手段。这不是本次讨论的主题,本次讨论的主题是将是使计算能力和数据更紧密地结合在一起。

有两种方法可以使这些资源更接近 - 将数据移近处理器将处理移近数据。这些架构在high level上是相似的。因此,如果是数据靠近处理器,则拥有具有本地内存的处理器。如果是处理器在移动,那么就是可以存储大量数据,并且附近具有适度处理能力的内存。

针对不同存储器的不同方法

存储器技术的三个主要类别是 SRAM、DRAM 和非易失性存储器 (NVM)。这三者正在做非常不同的事情。

一些人指出,cache形式的SRAM是使数据更接近处理器的最古老的方法。“近内存计算并不是一个新想法 。所有的cache减少了访问常用数据的延迟,但其使用限制了在cache以外的任何内容。如果有一种简单的方法来使用AI cache,可能就不会有这篇文章了。

在这种情况下,更令人感兴趣的是紧耦合内存(tightly coupled memories,TCM)的使用增加。这些是处理器可以直接访问的SRAM,而不必共享和竞争内存总线。TCM的使用方式对开发人员和特定应用程序的需求是完全开放的。

紧耦合的存储器直接连接到处理器,而不是通过标准总线。

还有一个办法是UPMEM提出的在 DRAM 芯片上增加了一个小型处理器,以便在同一芯片上拥有 DRAM 和处理能力。

但是DRAM工艺和处理器制造工艺是不同的,DRAM 工艺未针对高速计算进行优化,所以无法在这颗芯片上制造最复杂的处理器内核。因此,UPMEM在DRAM芯片上安装的处理器必然是不够强大的,其指令集比标准处理器更有限。但它声称,整体上仍然可以获得性能提升,因为:

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

UPMEM 的方法将处理器与 DRAM 放在同一芯片上。

这种方法尚未证明成功,最主要的挑战是,程序必须以不同的方式编写程序才能利用这一点。第二个问题是,在这颗芯片上需要为处理器留出空间,所以这些格外空间导致的内存密度损失真的值得获得的额外计算能力么?

所以,近存计算中将处理能力靠近内存似乎不是很有价值。

计算存储(storage)

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

“它具有巨大的意义,超出了人们所认为的存储storage,这是一个非常有活力的市场。计算存储仍将被归类为新兴市场。仅有几家供应商提供解决方案,并被客户使用。”

至少在今天,正在使用的内存技术是闪存 flash。其他有抱负的 NVM 技术也存在,其中 3D Xpoint(相变)和 MRAM(磁性)存储器在商业上走得最远,但两者都很难在成本上竞争。其他存储器,如RRAM和NRAM,成本仍然是问题。

目前的市场更愿意为容量买单,而不是速度。

从概念上讲,计算存储设备(CSD)可以具有不同级别的功能灵活性。它们中最简单的将具有固定功能,专用于单个应用程序。这些可以是各种卸载功能,例如重复数据消除、加密、解密、压缩或其他类似的明确定义的任务。

鉴于这些任务定义比较明确,处理可以在硬件逻辑中实现,而不是在软件中实现,所以这些是内置处理服务的SSD。

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

CSD 最灵活的方法是允许下载任意代码,无论是对象格式还是源代码格式。如果下载了源代码,则处理器需要支持实时编译。

计算存储有两个级别——系统和驱动器。我们一直在讨论的内容是驱动器,它是一块看起来像恰好具有计算能力的单板。对于大多数人来说,当你使用计算存储时,这意味着你把CPU放在驱动器上。

这不是唯一的方案。一个系统可能由多个驱动器组成,每个驱动器可以有计算,也可以是标准驱动器。大多数计算存储将在系统级别,而不是驱动器级别。即使有驱动器,也会由系统供应商进行集成。

这些软件比典型应用程序更难编程,因为内存管理以不同的方式运行,并且host程序需要在 CSD 上安排任务 - 这些事务的运行级别低于大多数开发人员想要处理的级别,而程序员都希望用比C语言更高层次的语言编程。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字芯片实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • "让数据和计算更紧密地结合在一起"并不像听起来那么简单,但功耗/性能和延迟方面的好处可能是巨大的。
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档