SAP SE 開發人員當前正在就基于云的壓縮即服務 (CaaS) 創建概念驗證 (PoC)。他們選擇利用 FPGA 來加速這一計算密集型工作負載,并計劃使用 Garden Linux 操作系統 (OS) 發行版在其高性能分析設備 (High Performance Analytics Appliance, HANA) 云上的 Docker 容器中運行相關工作負載。有了開放式 FPGA 堆棧 (OFS),開發人員就可以利用可擴展、可訪問源代碼的軟硬件基礎設施,來簡化自定義板卡和工作負載的開發。OFS 提供的靈活性使他們能夠按照自己的首選配置開發概念驗證,其模塊化架構則加快了他們的開發速度。
面向英特爾?Agilex FPGA 的 OFS 版本包含一個 Docker 映像文件,與容器配合使用可快速啟動開發。Docker 映像文件及用戶指南可從開源 OFS 存儲庫獲取。
背景
SAP SE 是一家總部位于巴登符騰堡州沃爾多夫鎮的德國跨國軟件公司,專注于開發企業運營和客戶關系管理的企業級軟件。
SAP HANA 是 SAP SE 開發和上市的關系數據庫管理系統。SAP HANA 的列數據采用字典編碼。字符串字典可能包含大量文本數據,這些數據需通過壓縮來降低內存需求。目前可用的壓縮算法有很多種,包括 LZ77、LZR、LZSS、LZMA、ZStandard 等,但這些算法常用于將大量信息壓縮到一個模塊中。如果以這種方式壓縮字典,就必須解壓縮整個文件才能訪問單個條目,這無論是從耗時、計算效率還是功耗來看都是非常不理想的。另一種方案是利用上述算法逐個壓縮字典條目,但由于這些算法沒有針對少量數據的壓縮進行優化,因此同樣很低效。
對于像字符串字典這類需要隨機訪問壓縮數據的應用而言,Re-Pair 是一種非常合適的壓縮算法。美中不足的是,Re-Pair 屬于計算密集型算法且成本高昂。由于其在中央處理器 (CPU) 上實施壓縮和解壓縮的時間過長,因此并未在數據管理社區中得到廣泛應用。不過,現場可編程門陣列 (FPGA) 的可編程邏輯結構經過配置后,可以大規模并行執行算法處理。這意味著像 Re-Pair 這樣的算法藉此能夠以相對較低的功耗在 FPGA 上快速執行。
SAP 使用的操作系統 Garden Linux 是 Debian GNU/Linux 衍生版本,旨在提供小型、可審計的 Linux 映像,供云服務提供商 (CSP) 和裸機部署使用。Garden Linux 運行當前的 LTS Linux 內核,并可為前沿企業服務器硬件提供額外的驅動程序支持。該操作系統使用經過測試的安全構建模塊來構建映像,功能靈活多樣,并且可根據不同的工作負載要求進行定制。
這一過程中面臨的挑戰是如何利用 SAP HANA 云中的 Docker 容器針對 Re-Pair 壓縮工作負載部署進行原型設計。這其中,SAP HANA 云采用的是 Garden Linux OS 以及基于高性能 PCI Express (PCIe) 的 FPGA 加速卡。由于容器包含運行應用所需的一切,因此使用容器有助于初始部署,也可簡化應用在服務器之間的遷移。
SAP 部署
首先,SAP 使用共享虛擬內存 (SVM) 板級支持包 (BSP) 獲取獨立的英特爾?加速堆棧 2.0 (DCP2.0) OpenCL 壓縮工作負載,并將其移植到 OFS。該步驟易于操作,只需將新的通用共享內存 (USM) BSP 與 OFS 堆棧一起使用即可重新編譯 FPGA 編程文件。主機代碼無需修改,只需用 OFS 庫重新編譯。
接下來,以 CentOS 7 為基礎映像編寫 Dockerfile,并在 Dockerfile 中實施以下步驟:
1 確保已安裝或已配置依賴項。 2 定義一組環境變量。 3 克隆 OFS Git 存儲庫。 4 建立 OPAE。 5 安裝面向 OpenCL 的英特爾?FPGA SDK v20.4。 6 設置額外的環境變量。 7 添加壓縮主機代碼和 FPGA 編程文件 *.aocx。 8 建立可執行主機。 9 編寫運行腳本。
接著,用英特爾?FPGA 可編程加速卡(英特爾?FPGA PAC) D5005 設置服務器,設置過程需要使用 OFS 固件和 Garden Linux,其中 Garden Linux 已包含 OFS 設備功能列表 (DFL) 驅動程序。自 Garden Linux 5.15 版起,OFS DFL 驅動程序均包含在其內核中,因此 SAP 無需單獨安裝 DFL 驅動程序。最后,將 Docker 容器部署到服務器上并啟動。
SAP 為什么使用英特爾?OFS?
基于英特爾?FPGA 的參考平臺既為 OFS 提供支持,也是其驗證平臺??蛻艉秃献骰锇榭衫眠@些平臺進行應用的評估和開發,然后再將應用移植到基于 OFS 的自定義或第三方量產板卡。?
在本案例中,SAP 開發人員希望以英特爾?FPGA PAC D5005 為部署平臺。英特爾?FPGA PAC D5005 是一款基于 PCI Express (PCIe) 的高性能 FPGA 加速卡,適用于數據中心。由于英特爾?Stratix?10 FPGA 的 OFS 參考平臺是英特爾?FPGA PAC D5005,因此 SAP 能夠在幾乎無需修改 FPGA 接口管理器 (FIM) 硬件或軟件的前提下,完成其容器化工作負載的部署。?
OFS 硬件由一個 FPGA 接口管理器 (FIM) 和一個加速功能單元 (AFU) 區域組成。有了 OFS,板卡 (FIM) 開發人員就可以利用提供的基礎設施(基礎 FIM),根據目標工作負載的接口和協議要求,為板卡快速創建個性化定制的 FIM。此外,AFU(工作負載)開發人員可以利用提供的 FIM 和 AFU 區域以及標準化的 Arm AMBA 4 AXI 接口(高級可擴展接口),專注于創建自定義工作負載/AFU,且不必擔心 FPGA 通信設計的其余工作。??
同樣,借助 OFS 提供的軟件框架,開發人員可以利用上游和開源內核驅動程序來加速與通用應用框架的集成。?
SAP 開發人員利用提供的基礎設施和文檔可將相關的 Re-Pair 壓縮工作負載快速移植到英特爾?FPGA PAC D5005 上。能夠快速、輕松地生成概念驗證將有助于 SAP 規劃其在生產環境中部署基于 FPGA 的解決方案。
SAP 所用的 OFS 功能和特性
OFS 的推出使軟件、硬件和應用開發人員能夠使用標準接口和應用編程接口 (API) 來加速工作負載開發并實現代碼復用。?
OFS 還為不同的操作系統發行版本和部署模型(包括裸機、虛擬化和容器化模型)提供靈活性。在這種情況下,SAP 開發人員能夠利用 Docker 容器來部署工作負載。這是因為從 Garden Linux 5.15 版開始,其內核都包含 OFS DFL FPGA 驅動程序。?
SAP 開發人員即使不具備精深的 FPGA 專業知識,也能利用 OFS 提供的 FIM 對 FPGA 進行重新編程。得益于模塊化、易定制的架構,SAP 開發人員也可以快速輕松地對 FIM 進行修改。?
此外,OFS 還提供兩種配置選擇,即扁平化設計和支持部分重配置 (PR) 的設計,使開發人員能夠充分利用 FPGA 的可重新編程性。部分重配置功能具有高度靈活性,它支持在設備運行時重新配置部分 FPGA——使整個基礎設施保持完整性及運行狀態,藉此在不中斷整個系統的情況下更改配置。借助 OFS,SAP 開發人員能夠在 Docker 容器內利用部分重配置功能進行概念驗證。?
按照 OFS 部署流程,SAP 開發人員還可利用高級設計 (HLD) shim 組件,這種集成到 AFU 區域的組件,使 OpenCL 和 oneAPI 內核能夠通過構建正確的數據包協議與運行時軟件進行通信。SAP 的壓縮即服務的初步概念驗證目前利用 OpenCL 來運行,SAP 計劃在未來的迭代中采用 oneAPI。同樣,雖然基于英特爾?Stratix?10 FPGA 的 PAC D5005 是初步概念驗證的開發平臺,但 SAP 已計劃在未來將其遷移到基于英特爾?Agilex FPGA 的加速卡。
總結
OFS 解決了在設計基于 FPGA 的加速平臺解決方案時可能面臨的多種挑戰,使這些解決方案可用于基于英特爾?至強?處理器的服務器。OFS 使硬件、軟件和應用的開發人員可以更輕松地創建自定義加速平臺和解決方案。?
OFS 提供標準接口和 API,可更好地支持代碼復用、加速開發和部署。例如,借助 OFS,開發人員可以輕松部署 Docker 容器等容器化工作負載。?
最終,通過利用 OFS 提供的基礎設施、源代碼和文檔以及基于 FPGA 的參考平臺,可以將開發時間縮短數月。
編輯:黃飛
?
評論
查看更多