總結
二十多年來,BittWare 持續開發採用 Intel FPGA 的 FPGA 技術加速板解決方案。BittWare 最近移轉至最新的 Intel Agilex® 7 FPGA,而且有意在其 FPGA 解決方案提供 oneAPI 的支援。為此,BittWare 改為採用 Open FPGA Stack (OFS) 及其隨附的開放原始碼 oneAPI Accelerator Support Package (ASP),在其 Intel Agilex FPGA 技術平台,支援編譯高階設計(HLD)應用程式核心。
背景與挑戰
Intel 在 2019 年推出 Intel Agilex 7 產品家族。此後,Intel Agilex 產品家族便持續擴增,加入多款高低功率 FPGA 和邏輯閘密度,範圍涵蓋各式各樣的應用。Intel Agilex 7 FPGA 系列是原始的高效能 Intel Agilex FPGA 家族。FPGA 系列採用業界效能最高的 FPGA,相較於競爭對手最新一代 FPGA,網狀架構每瓦效能高出 2 倍左右1。全新的 Intel Agilex FPGA 更強大、用電量更省,而且隨附各種 I/O 功能,例如 PCIe* 4.0 與 5.0,鎖定對象包括各式各樣頻寬密集型、運算密集型和記憶體密集型應用。
這類效能改善之後,可為 BittWare 客戶創造更高的價值,如邊緣裝置的效能功耗比更優異,或資料中心的運算密度更高。如為高效能運算(HPC)應用程式,相較於通用型加速器,FPGA 提供的應用程式調整方式,能讓工作負載更充分利用晶片。Intel 與 BittWare 協同合作,利用 oneAPI 將 HPC 工作負載從 Barcelona Supercomputing Center 移植至 IA-840f 卡,速度加快 233 倍。BittWare 的利用新一代 Intel Agilex FPGA 進行高效能運算隨需網路研討會,專題介紹了這項計劃。
BittWare 還提供高階程式設計工具的資源,例如隨附可下載範例程式碼的白皮書。這些資源可說明善用 Intel Agilex 7 FPGAs 高效能優勢時,高階工具如何加速開發過程。
OneAPI 這類工具提供的平行程式設計語言,支援 FPGA 開發抽象化,可改善加速與除錯時間。OneAPI 媲美 NVIDIA 的 CUDA* 或 AMD ROCm*,提供的平行程式設計語言 Data Parallel C++ (DPC++) 實作了 SYCL。然而,Intel 在 oneAPI 發行版提出的解決方案,不僅適用於 GPU,也適合 CPU、FPGA 與 Gaudi/Gaudi2 AI 處理器這類視覺處理器的整合性程式設計環境、工具集和程式庫。
利用 oneAPI 後,不熟悉 FPGA 程式設計的發展者,不僅能享受 FPGA 獨有的彈性可重新程式化架構優勢,還可使用熟悉的設計語言,例如 C/C++,以及 Visual Studio 或 Eclipse 這類開發環境。另外,透過 oneAPI 使用高階設計流程,各種架構的工作負載(亦即 CPU、GPU、FPGA 與板件廠商)可攜性隨之提高。
BittWare 的母公司為 Molex,長年以來都是 Intel 的合作夥伴,而且該公司設計製造的企業級 FPGA 硬體加速產品,可讓客戶加速部署解決方案,並且降低風險。20 年來,BittWare 一直都是 FPGA 加速產業市場的領導廠商,已經從最早的 Intel Stratix® 和 Intel Arria® FPGA,移轉至最新的 Intel Agilex 產品家族。處理最新發行的「IA」系列 Intel Agilex FPGA 板件時,他們設法利用 OFS 基礎架構,在其平台支援 oneAPI 開發流程。
解決方案
BittWare 利用最新的開放原始碼 FPGA 開發資源與基礎架構 OFS,確保自家的板件支援 oneAPI 開發流程。OFS 是第一個完整的軟硬體基礎架構,完全使用開放原始碼,包含可組合的硬體程式碼,以及已納入 kernel.org 的上層核心程式碼,實現了讓 FPGA 開發者協同合作的社群。
OFS 基礎架構包含通常稱為「殼層」的 FPGA Interface Manager (FIM),以及 Accelerator Functional Unit (AFU) 區,也就是指定的工作負載開發區。若使用 OFS,板件開發者便可根據目標應用或產業,利用開放原始碼基礎架構,迅速為板件開發量身打造的 FIM。同樣地,OFS 包含開源軟體架構,開發者可以利用上游和開源的核心驅動程式加速整合至通用架構。OFS 基礎架構提供強大的方法,可快速開發 FPGA 加速系統,滿足 FPGA 加速板與工作負載的需求。隨附的 OFS 軟硬體基礎架構可原封不動使用,也可因應瞬息萬變的新市場需求快速客製化。
Intel 提供的 oneAPI Base Toolkit,包含編譯器與執行階段環境。編譯器會將 SYCL 核心,或是 FPGA 應用程式程式碼,轉換為硬體電路。這個硬體電路需要額外的邏輯閘,才能與執行階段和 FPGA 板件週邊裝置聯繫。OFS 在 oneAPI ASP 提供這個額外的邏輯閘。oneAPI ASP 隨附於開放原始碼的 OFS GitHub 儲存庫,是在 OFS 支援平台編譯及執行 HLD 應用程式核心的必要元件。此外還提供相應的技術說明文件,並且包含快速入門指南,協助在 OFS 平台設定 Intel oneAPI Base Toolkit。
BittWare 利用隨附的開放原始碼 OFS 儲存庫與說明文件,幾乎不需要額外修改,便可在 Intel Agilex 裝置實作 oneAPI 設計流程(非 RTL)。
結果
BittWare 率先在市場推出 Intel Agilex FPGAs F 系列。下表說明了使用 OFS 基礎架構與 oneAPI ASP 開發的兩款板件。
|
|
致勝之道在於為客戶提供開發流程簡單的強大晶片,尤其是這個最新一代的 Intel Agilex FPGA 家族效能經過了大幅提升。我們與 oneAPI 的合作成果證明了它的價值,不僅能幫助各式各樣的使用者加速上市,還可維持高效能。
如何使用 OFS 馬上開始加速 FPGA
FPGA 開發者可以選擇 BittWare IA-420f 或 IA-840f 這兩款 OFS 支援的板件,然後使用開放原始碼說明文件及原始程式碼,開始自行量身打造工作負載。
下表概述開發者可以如何使用 BittWare 加速板,開始開發 FPGA 技術的工作負載。
利用 FPGA 加速來處理您的工作負載 |
|
---|---|
步驟 1:選取板件 |
BittWare 支援 OFS 的板件 IA-420f 與 IA-840f。 |
步驟 2:評估 OFS 開源資源 |
BittWare 會提供相應版本的 OFS 技術說明文件。 |
步驟 3:存取開源軟硬體程式碼 |
BittWare 會提供相應的 OFS 軟硬體程式碼。這是 BittWare 的特定 OFS 基礎程式碼(由 Intel 提供)發行版。 |
步驟 4:使用 RTL 或 C/C++(使用 oneAPI)開發工作負載 |
遵循 OFS RTL 流程 或是 OFS 支援編譯 oneAPI 核心。利用 oneAPI 開發流程,以 C/C++ 建置 FPGA 工作負載。 |