SAP 利用英特尔® FPGA 进行高性能压缩算法原型设计

  • 为解决企业级数据库服务器 SAP HANA 现有压缩算法效率低、成本高的困境,SAP 在英特尔® 开放式 FPGA 堆栈的帮助下,完成利用自有云中的 Docker 容器对 Re-Pair 压缩工作负载进行部署的原型设计。通过在 Docker 容器内利用部分重配置功能进行概念验证,SAP 完成了工作负载快速移植和平台加速,并为未来管理和编排框架提供支持。

author-image

作者

概览

SAP 开发人员希望通过仔细研究 FPGA 的应用情况,加速运行计算密集型 Re-Pair 压缩算法,并利用 Docker 容器促进云端部署。

在英特尔® 开放式 FPGA 堆栈(英特尔® OFS)和英特尔® FPGA 可编程加速卡(英特尔® FPGA PAC)D5005 的支持下,SAP 利用其 HANA 云的 Docker 容器顺利实现了 Re-Pair 压缩工作负载。HANA 云采用的是 SAP 自有的 Garden Linux 操作系统 (OS)。

现在,借助英特尔® 开放式 FPGA 堆栈框架和英特尔® FPGA 可编程加速卡 D5005,我们几分钟之内就能将压缩算法部署到运行在我们 Garden Linux 操作系统上的 Docker 容器中。在英特尔® 平台加速技术的支持下,SAP 如今可使开发人员享受到在 HANA 云中对 FPGA 进行重新编程的诸多益处。”

— Norman May 博士,SAP SE HANA 中心(数据库)架构师

执行概要

SAP 开发人员希望就基于云的压缩即服务 (CaaS) 创建概念验证 (PoC)。他们需要利用 FPGA 来加速运行计算密集型 Re-Pair 压缩算法,并希望在基于 SAP 自有 Garden Linux 操作系统 (OS) 的 SAP HANA 云中使用 Docker 容器。

英特尔® 开放式 FPGA 堆栈(英特尔® OFS)能够利用由英特尔® FPGA 提供支持的英特尔或第三方平台,简化自定义板卡和工作负载的开发和部署。SAP 开发人员利用英特尔® 开放式 FPGA 堆栈将字符串压缩工作负载更快地部署到了英特尔® FPGA 可编程加速卡 D5005 上。此外,他们还可以根据英特尔® 开放式 FPGA 堆栈的部署流程对 Docker 容器加以利用。这是因为从 Garden Linux 5.15 版开始,所有版本的产品内核都包含英特尔® 开放式 FPGA 堆栈设备功能列表 (DFL) 的 FPGA 驱动程序。 

借助英特尔® 开放式 FPGA 堆栈,SAP 可以有效利用基于英特尔® FPGA 的设备所提供的工作负载可移植性、由支持英特尔® 开放式 FPGA 堆栈的合作伙伴板卡和工作负载组成的不断发展壮大的生态系统、裸机/虚拟化/容器化部署的灵活性,以及上游和开源内核驱动程序及用户空间代码。

背景与挑战

SAP SE 是一家位于巴登-符腾堡州沃尔多夫镇的德国跨国软件公司,专业开发管理企业运营和客户关系的企业用软件。

SAP HANA 是 SAP SE 开发和上市的关系数据库管理系统。这款企业级数据库服务器, 能够根据上层应用的请求利用其列式内存存储技术实现数据存储和检索,以支持混合事务/ 分析处理。

SAP HANA 的列数据使用字典进行编码,将域值映射为固定大小的值。尤其需要注意的是,字符串字典可能包含大量文本数据,这些数据需通过压缩来降低内存需求。目前可用的压缩算法有很多种,包括 LZ77、LZR、LZSS、LZMA、ZStandard 等,但这些算法常用于将大量信息压缩到单个块中。如果以这种方式压缩字典,就必须解压缩整个文件才能访问单个条目,这在时间、计算和功耗方面都效率极低。或者,也可以利用上述算法逐个压缩字典条目,但由于这些算法没有针对少量数据的压缩进行优化, 因此同样很低效。

Re-Pair 这种压缩算法非常适合像字符串字典这类需要随机访问压缩数据的应用。美中不足的是,Re-Pair 属于计算密集型算法且成本高昂。由于其在中央处理器 (CPU) 上实施压缩和解压缩的时间过长,因此并未在数据管理社区中得到广泛应用。不过,现场可编程门阵列 (FPGA) 的可编程逻辑结构经过配置后,可以大规模并行执行算法处理。这意味着像 Re-Pair 这样的算法藉此能够以相对较低的功耗得到快速执行。

Garden Linux 是 Debian GNU/Linux 衍生版本,旨在提供小型、可审计的 Linux 映像,供云服务提供商 (CSP) 和裸机部署使用。SAP 有自己的 Garden Linux 发行版本。 

在计算上下文中,容器是一个功能齐全且可移植的云或非云计算环境。它包括应用、任何库及其他依赖项。使用容器有利于将应用从一台服务器迁移到另一台服务器,这是因为运行该应用所需的一切都已在容器内。当前,Docker 是很多云服务提供商常用的容器类型。

面临的挑战是,如何利用 SAP HANA 云中的 Docker 容器针对 Re-Pair 压缩工作负载部署进行原型设计。这其中,SAP HANA 云采用的是 Garden Linux 操作系统 (OS) 以及基于高性能 PCI Express (PCIe) 的 FPGA 加速卡。

解决方案

英特尔可编程解决方案事业部提供多种先进的 FPGA 和 SoC FPGA,以及各种基于 PCIe 的高性能 FPGA 加速卡,其中包括基于英特尔® Stratix® 10 FPGA 的英特尔® FPGA PAC D5005。

英特尔® 开放式 FPGA 堆栈则是上述 FPGA 加速卡的补充。作为一种可扩展、可访问源代码的软硬件基础设施,它能够解决与设计基于 FPGA 的加速平台解决方案相关的挑战。这些解决方案都部署在基于英特尔® 至强® 处理器的服务器上。

英特尔® 开放式 FPGA 堆栈的推出,使软件、硬件和应用开发人员能够使用标准接口和应用编程接口 (API) 来加速工作负载开发并实现代码复用。此外,该堆栈还支持对应用进行裸机、虚拟化或容器化部署。

英特尔® 开放式 FPGA 堆栈提供的软硬件基础设施可让用户专注于自己别具特色的应用。在本案例研究中,SAP 开发人员利用提供的基础设施将 Re-Pair 压缩工作负载快速移植到了选定的基于英特尔® FPGA 的加速器上。按照英特尔® 开放式 FPGA 堆栈的部署流程,他们还可利用高级设计 (HLD) shim 组件,即一系列能够实现基于高级设计的工作负载支持的软硬件组件。 

OpenCL™ 和 oneAPI 属于高级设计框架,用于跨 CPU、图形处理器 (GPU)、数字信号处理器 (DSP)、FPGA 和人工智能 (AI) 加速器等不同计算加速器架构的异构计算。SAP 基于云的压缩即服务 (CaaS) 的初步概念验证 (PoC) 目前利用 OpenCL™ 来运行,SAP 计划在未来的迭代中采用 oneAPI。 

英特尔® 开放式 FPGA 堆栈还能赋予不同的操作系统发行版本更大的灵活性,便于通过扩展为管理和编排框架提供支持。在这种情况下,SAP 开发人员能够利用 Docker 容器来部署工作负载。此外,英特尔® 开放式 FPGA 堆栈还提供两种配置选择,即扁平化设计和支持部分重配置 (PR) 的设计,使开发人员能够充分利用 FPGA 的可重新编程性。部分重配置功能具有高度灵活性,它支持在设备运行时重新配置部分 FPGA——使整个基础设施保持完整性及运行状态,藉此在不中断整个系统的情况下更改配置。借助英特尔® 开放式 FPGA 堆栈,SAP 开发人员能够在 Docker 容器内利用部分重配置功能进行概念验证。

通过利用英特尔® 开放式 FPGA 堆栈和英特尔® FPGA 可编程加速卡 D5005 对 Re-Pair 压缩工作负载进行原型设计,SAP 能够将首选配置用于采用了支持 Docker 容器运行的 Garden Linux 操作系统的云基础设施。这是因为从 Garden Linux 5.15 版开始,所有版本的产品内核都包含英特尔® 开放式 FPGA 堆栈设备功能列表 (DFL) 的 FPGA 驱动程序。

本案例研究提供了一个极好的范例,展现了英特尔® 开放式 FPGA 堆栈提供的基础设施和灵活性如何使 SAP 能够运用所需的配置并在短时间内移植工作负载。

结果

本案例研究展示了 SAP 如何受益于 Docker 容器内基于 FPGA 的可重新编程性以及在自己的云中轻松完成部署。

这类部署因为使用了英特尔® 开放式 FPGA 堆栈参考基础设施、源代码、文档和英特尔® FPGA 可编程加速卡 D5005 硬件参考平台而得以加速。由于 SAP 可在自己的云基础设施中部署概念验证,因此能够尽早制定计划在生产中部署 FPGA。另外,英特尔® 开放式 FPGA 堆栈的灵活性还有助于 SAP 利用 OpenCL™ 或 oneAPI 迁移到基于英特尔® Stratix® 10 FPGA 和英特尔® Agilex™ FPGA 的其他英特尔或第三方平台。 

了解相关英特尔® 产品和解决方案

英特尔® 开放式 FPGA 堆栈
英特尔® FPGA 可编程加速卡 D5005
英特尔® Agilex™ FPGA 和 SoC FPGA
英特尔® oneAPI 工具套件