随着我们对机器学习神经网络的使用不断增多,处理海量数据的需求也在增大。从 IT 运营的角度来看,过去的发展趋势一直是将数据移动到能够处理它们的算法所在处。然而,高达1PB 的大型数据正迅速成为常态。考虑到处理它的算法可能只有几十兆字节,将数据处理靠近存储设备的概念迅速盛行。本文主要讨论计算存储背后的概念和体系结构,以及计算存储处理器 (CSP) 如何为各种计算密集型任务提供硬件加速和性能优势,而无需增大在主控处理器上的负荷。
数据集永远在变大,不会变小
过去几年,神经网络算法的使用急剧增加,尤其是在汽车、工业、安全和消费类等应用中更为明显。一些算法,例如那些在基于边缘的物联网传感器中使用的算法,其占用的代码空间很小,处理的数据也很少。随着低功耗嵌入式微控制器功能和神经网络“引擎”功能的改进,在网络边缘中使用机器学习算法呈指数增长。工业和汽车应用更主要关注使用一种称为卷积神经网络(convolutional neural network)的特定神经网络进行物体检测的视觉处理。例如,简单的工业视觉处理可能会检测标签是否正确贴在高速装瓶线上的瓶子上,其它更复杂的任务可能涉及根据水果的大小、状况和品种对水果(例如苹果)进行分类。汽车实时视觉处理应用则通过引入对多个物体识别和分类,进一步扩展了神经网络算法。神经网络也广泛用于科学研究,例如,可以对遥感卫星和全球地震传感器阵列收集的数据处理并加以分析。
对于大多数机器学习应用,越来越需要以更高的概率和准确度预测分类和观察。这一要求注定需要更大的训练数据集,这反过来又要求定期移动、处理和存储高达 1 PB 的庞大数据集。
计算存储
在过去十年中,基于 NAND 闪存的存储设备变得非常流行。最初,NAND 闪存仅限于高端存储应用,现在使用 NAND 存储器的固态磁盘驱动器已经无处不在,取代了在大多数笔记本电脑和台式计算机中使用的传统磁盘驱动器。这种存储方法与NVMe 协议的出现以及 PCIe 快速连接数据速率的发展相辅相成,预示着以不同方式构建存储和计算资源的巨大机遇。 NVMe 存储技术的特性是具有更高带宽、更低延迟和更高的存储密度。
图 1:具有计算和存储平面的传统计算架构。(来源:BittWare)
如图 1所示,在传统的计算架构中,数据在计算平面和存储平面之间发送。计算资源用于移动数据和处理数据、执行压缩和解压缩以及无数其他与系统相关的任务。因此,传统方法对可用计算资源施加了很大载荷。
图 2:一种计算存储架构途径。(来源: BittWare)
通过实施计算存储架构可提供一种计算效率更高的方法,参见图 2。这种方式将计算任务转移到通常为基于 FPGA 的硬件加速器。该加速器连接到协同定位的 NVMe 闪存,数据处在靠近计算位置,避免了传输数据的需要和 CPU 上的更高载荷。 FPGA 构成了一个计算存储处理器 (CSP),参见图 3,压缩、加密或神经网络推理等所有计算密集型任务都可以从 CPU 转载。
图 3:计算存储处理器 (CSP)。(来源:BittWare)
BittWare IA-220-U2 基于 FPGA 的计算存储处理器
计算存储处理器的一个例子是来自 BittWare 的 IA-220-U2。 IA-220-U2 包含一个 Intel Agilex FPGA,具有多达 140 万个逻辑单元、高达 16GB 的DDR4 内存和四个 PCIe Gen4 接口。 DDR4 SDRAM 的传输速率高达 2,400 MT/s。 IA-220-U2 封装为符合 SFF-8639 标准的 2.5 英寸 U.2 外形规格,具有对流式冷却散热器,其设计目标是要整合到 U.2 NVMe 存储阵列,参见图 4。
图 4:BittWare IA220-U2 专为符合标准 U.2 存储阵列机箱而设计。(来源:BittWare)
IA-220-U2支持热插拔,通常从主机 U.2 电源消耗最高为20瓦的功率。BittWare IA-220-U2 的企业 IT 和数据中心部署支持板载 NVMe-MI 兼容 SMBus 控制器、SMBus FPGA 闪存控制功能以及对板载电压和温度监控传感器的 SMBus 访问。
图 5 说明了 BittWare IA-220-U2 的功能框图,展示了所有主要功能。
图 5:BittWare IA-220-U2 的功能框图。(来源 :BittWare)
IA-220-U2 设计用于各种大容量应用和加速任务,包括算法推理、压缩、加密和哈希(hashing)、图像搜索和数据库分类以及重复数据删除等。
使用 BittWare IA-220-U2 实现计算存储处理
BittWare IA -220-U2 可由客户针对其特定应用需求进行自定义编程,或使用 Eideticom 的 NoLoad IP 作为预配置解决方案提供。
BittWare 可提供一个软件开发套件(SDK),其中包括 PCIe 驱动程序、电路板监控装置和电路板程序库,以帮助客户定制开发。此外,还可以使用英特尔的 Quartus Prime Pro 和高级综合工具链和设计流程进行 FPGA 应用开发。
图 6:Eideticom NoLoad IP 硬件特性。(来源:BittWare)
Eideticom 的 NoLoad IP 包括一个完整的即插即用集成软件堆栈,它基于 BittWare U.2 模块,并作为预配置解决方案。NoLoad IP还承载一组硬件加速计算存储服务 (CSS),参见图 6,图中以橙色突出显示。
图 7:Eideticom 的 NoLoad IP 软件堆栈。(来源: BittWare)
如图 7所示,NoLoad IP 的软件组成包括内核空间堆栈文件系统和使用 NoLoad CSS 的 NVMe 驱动器,以及面向应用程序用户空间 Libnoload。
借助 Eideticom NoLoad CPU 通用型解决方案(agnostic solution),CPU 转载功能可以将 QoS 提高多达 40 倍,同时能够降低总体拥有成本和功耗。
通过转载计算密集型任务来提高吞吐量
使用 NVMe 实施计算存储架构可为大量数据处理提供显著的性能和能效优势。这种方法通过减少将数据从存储传输到 CPU的需求,再返过来将计算密集型任务转载到基于 FPGA 的计算存储处理器。这样,数据可保存在靠近处理位置的 NVMe NAND 闪存存储阵列,从而能够减少带宽需求,降低延迟,并节省能源。