通过将数据管理堆栈与英特尔 FPGA 和开放式 FPGA 堆栈 (OFS) 相结合,SigmaX 显著提高了生成数据的效率。
概 览
. SigmaX 开发了从数据获取到消费者分析的快速端到端数据流,支持近乎实时地做出决策。
. SigmaX 使用英特尔® 至强® 处理器、英特尔® Agilex™ FPGA 和开放式 FPGA 堆栈 (OFS) 扩展并加速 Apache 开源软件。
. 与仅基于 CPU 的方法相比,SigmaX 通过基于 FPGA 的加速降低了延迟,加速了数据获取。
要点综述
SigmaX 克服了大规模解决企业数据管理问题的最新挑战。由于使用了开源 Apache 软件和 FPGA 开发资源(如开放式 FPGA 堆栈 (OFS)),客户可以从他们的数据管理解决方案中获益,同时不受厂商限制。基于 FPGA 加速的 SigmaX 解决方案支持极快的数据流动速度,使用户能够近乎实时地做出决策。
. SigmaX 数据流解决方案基于 Apache Pulsar 和 Apache Arrow,可将延迟降低 100 倍1。
. 相比使用 Kafka 的竞争产品,仅使用 Apache Pulsar,SigmaX 基准测试的传输速度提高了 250%1。
. Apache Pulsar 与 Apache Arrow 的集成使吞吐量提高了 20 倍,可扩展到数千个节点1。
背景和挑战
数据代理是作为订阅服务的一系列事件传输数据,这些数据可以是公共数据、私有数据,也可以是两者兼而有之。数据代理将处理、清洗和组织已发布的数据,并将数据提供给企业中的其他业务部门或消费者。数据生产者是指数据源头,如用户界面、服务,边缘和物联网 (IoT) 设备。数百万的数据生产者可以同时向数据代理发送信息。一旦数据经过处理、清洗和组织,消费者就可以从数据代理中检索最近的数据。这些数据代理可以扩展到数千个,并行处理大量数据。5G、自动驾驶汽车、预测性维护以及其他边缘计算和传输平台等行业正在处理这些越来越大的数据集,这些数据集可以扩展到数千个数据代理和生产商。
在这些行业中,以实际速度做出决策并几乎同时做出反应往往至关重要。据估计,仅自动驾驶汽车行业每小时就产生 4 TB 至 40 TB 的数据。除了巨大的数据处理需求之外,新型的数据结构和数据表示形式也出现了,CPU、GPU 和并行处理的性能也在不断提高。
Apache Arrow 是一个与语言无关的标准软件框架,通常用于通过创建标准的列式内存格式来提高数据分析的速度,可节省 80% 的时间。它经常用于边缘传感器、物联网和大规模应用生成的大型数据集的环境中。Apache Arrow 将柱状数据结构的优势与可用于 CPU、GPU 和 FPGA 的内存计算相结合,从而实现无缝、高效的跨平台数据共享,而无需复制或移动数据。
通过利用异构处理,以及 Apache 软件和 OFS 等开源工具,SigmaX 提供了一种解决方案,与单独使用英特尔® 至强® 处理器进行扩展相比,该解决方案将 “JSON - Apache Arrow” 这一数据格式转换延迟降低了 100 倍,数据获取率提高了 20 倍。
解决方案
通过将数据管理堆栈与英特尔® FPGA 和 OFS 相结合,显著提高了中央代理生成数据的效率。以下是 SigmaX 解决方案的细分:
步骤 1:Bolson 将传感器数据转换为 Apache Arrow 格式
JSON 传感器数据首先由运行在英特尔® Agilex™ FPGA 上的 Bolson 接收,该步骤采用了开源 OFS 基础设施。然后,Bolson 将 JSON 传感器数据转换为通用数据格式 Apache Arrow。通过将数据放入 ApacheArrow 中,代理变得更快,响应速度提高了几个数量级。因此,除了仅基于 CPU 的方法的优势之外,该路径还具有延迟和吞吐量优势。
步骤 2:Apache Pulsar 处理和清理数据
数据代理 Apache Pulsar 随后将接收 Apache Arrow 格式的消息。Apache Pulsar 接收到的数据现在可以按原样进行计算。Apache Pulsar 随后将处理、清理和重组数据。
Apache Pulsar 是一个可与 Apache Kafka 相媲美的分布式消息和传输平台。然而,与 Apache Kafka 相比,它具有显著的优势,例如通过内置的数据可靠性功能(如地理复制)优化了安全性、速度、延迟和性能。它通常用于涉及高复杂性模式或实时数据需求的延迟敏感型应用。
步骤 3:数据代理将信息传输给消费者
从代理进行委派之后,数据将被传输到订阅的消费者应用。
SigmaX 已经使用基于英特尔技术的硬件验证了这种数据管理工作负载。他们的开源堆栈使用在客户端应用中运行的英特尔® 至强® 处理器和基于英特尔® Agilex™ FPGA 的 Hitek Systems HiPrAcc* NC100 板来运行 Bolson。
HiPrAcc NC100 板同时启用了 OFS 和 oneAPI。OFS 是一个关键的基础工具,支持 FPGA 开发人员构建基于 FPGA 的定制工作负载和应用。它提供了启动基于 FPGA 的开发所需的所有硬件和软件源代码、文档、参考示例和工具。OFS 的软件和硬件代码目前在 GitHub 上是开源的。
结 果
SigmaX 的数据管理工作负载使用两种关键的英特尔技术(英特尔® Agilex™ FPGA 和 OFS)加速了将数据转换到 Apache Arrow 的速度。使用 FPGA 加速和 OFS,SigmaX 的数据转换工作负载快了 100 倍,数据量增加了 20 倍1。这种数据管理工作负载可以应用于广泛的应用,包括医疗、保险、5G、预测性维护等。
SigmaX 首席执行官 Robert Morrow
OFS 为我们提供了所需的所有硬件和软件源代码、文档、参考示例和工具,能够帮助我们轻松创建 FPGA 加速工作负载,无需深入的 FPGA 修改。
如何使用开放式 FPGA堆栈开始 FPGA 加速
FPGA 开发人员可以从一系列定制主板、英特尔提供的主板或支持 OFS 的第三方主板中进行选择,并使用开源文档和源代码开始构建他们的定制工作负载。
下表概述了开发人员如何使用英特尔提供的主板或第三方主板开始基于 FPGA 的工作负载开发。
备注:
1 发表在“使用 FPGA 加速器实现每秒数十 GB 的 JSON 到 Arrow 转换”中的数据。IEEE Xplore。2021 年 12 月。ieeexplore.ieee.org/documents/9609833
测试配置:
用于 JSON 解析的 FPGA 加速器设计,该加速器以 Apache Arrow 列式内存格式将反序列化数据写入主机内存。包含 5 个阶段:接收 JSON 文档,解析 JSON 文档并将数据反序列化为 Arrow RecordBatch,调整 Arrow RecordBatch 的大小,将 Arrow RecordsBatch 序列化为 ArrowIPC 消息,通过 Pulsar 代理将 IPC 消息发布到 Pulsar 主题。所有实现最多使用 8 个字节,这使每个解析器在 200 MHz 下运行时的峰值理论输入吞吐量为 1.6 GBps。
文章来源:英特尔FPGA