使用網路示例比較 FPGA RTL 與 HLS C/C++
白皮書 使用網路示例比較 FPGA RTL 與 HLS C/C++ 概述 大多數 FPGA 程式師認為,高級工具總是發出更大的比特流,因為
FPGA 憑藉其能效和對特定工作負載的適應性等優勢,正在進入更高性能的計算應用。在本次網路研討會中,我們將重點介紹最新的英特爾® 敏捷 ™ FPGA,包括下一代 I 系列和 M 系列設備。
本次網路研討會的特邀嘉賓是 César González,他將解釋巴塞羅那超級計算中心在加速專案中使用 FPGA,以及最近發表的論文。他對確定小分子結構的研究利用了OpenCL高級程式設計。César將與英特爾的Maurizio Paolini一起展示將此代碼移植到帶有Intel Agilex FPGA的BittWare IA-840f卡oneAPI的結果, 從而實現233倍的加速。
我們還將研究下一代Agilex FPGA,包括那些支援這些設備的PCIe Gen5,CXL和HBM2e以及BittWare卡。
如果您從事 HPC 工作,或者對最新 FPGA 如何提供更高水準的加速性能感興趣,請務必加入我們的網路研討會!
立即按需觀看,包括與我們的小組成員錄製的問答!
克利斯蒂安·斯坦澤爾 |英特爾歐洲、中東和非洲地區技術銷售專家
克雷格·彼特裡 | 營銷副總裁,BittWare
毛里齊奧·保里尼 | 現場應用工程師 – 雲和企業加速部門,歐洲、中東和非洲, 英特爾
塞薩爾·岡薩雷斯 | 巴塞羅那超級計算中心,加泰羅尼亞高級化學研究所 – CSIC
馬庫斯)
您好,歡迎參加我們的網路研討會“使用下一代英特爾 Agilex FPGA 進行高性能計算”。我們展示了一個來自 Barcelona Supercomputing Center 的範例應用程式。我是 BittWare 的主持人 Marcus Weddle。
讓我們先來認識一下演講者以及他們將涵蓋的內容。
首先是來自英特爾的 Christian Stenzel。他在 Xilinx 擁有 16 年的經驗,擔任過從 FAE 到客戶管理和業務開發的多個職位,並於 2015 年加入 Altera。被英特爾收購後,他擔任雲和企業技術銷售專家,推動 EMEA 雲和企業市場的英特爾 FPGA 加速戰略。Christian 將引導我們了解為什麼 HPC 使用 FPGA?他還將介紹 Intel Agilex 系列器件。
接下來是來自 BittWare 的 Craig Petrie。他在 FPGA 領域擁有數十年的經驗,從工程師開始,然後繼續領導產品管理和戰略,如今他是銷售和營銷副總裁。Craig將帶我們瞭解BittWare的產品,這些產品具有Agilex FPGA,對oneAPI的支援,BittWare的新合作夥伴計劃,最後他將介紹CXL。
我們的 HPC 應用部分將由兩位演講者主講,他們是英特爾的 FAE Maurizio Paulini 和我們的特邀演講嘉賓 Cesar Gonzalez。Cesar 將在巴塞羅那超級計算中心解釋他使用 FPGA 工作的應用方面,Maurizio 將提供有關 oneAPI 的詳細資訊——包括最近將 Cesar 的應用程式移植到帶有 Agilex 的 BittWare 卡上的 oneAPI。
如果您在我們的現場會議中觀看此內容,請務必使用“問題”功能提出問題,我們會在最後將其提交給我們的小組成員。
好的,讓我們從英特爾的 Christian Stenzel 開始吧!
(基督教)
謝謝你,馬庫斯,謝謝你今天邀請我。首先,我需要讓您瞭解英特爾法律免責聲明,您可以在方便時閱讀該免責聲明。
現在,讓我們來談談高性能計算。HPC 是一個廣闊的市場,用於更好地瞭解最大和最小的事情。從探索宇宙、清潔能源研究、天氣和氣候建模到量子物理學、生物資訊學、分子動力學、核研究等等。
研究人員和科學家面臨著更複雜的問題,數據量不斷增加,這需要更多的計算來處理數據和運行類比。換言之,HPC 客戶正在為性能而競爭。
在典型的 HPC 資料中心中,CPU 用作運行計算的預設選項,而 GPU 則用作並行問題的頭號加速器。現在,有了 FPGA,就有了第三種成分來補充 HPC 系統,以解決 CPU 和 GPU 不擅長的問題,並且總有一些工作負載在 FPGA 上運行得最好。
從歷史上看,FPGA 很難程式設計,需要特殊的 RTL 程式設計技能。Maurizio 將在稍後的會議中討論 oneAPI 如何在沒有 RTL 技能的情況下實現 FPGA 程式設計。
讓我們來看看FPGA的獨特功能。
正如我所提到的,性能在 HPC 中至關重要。與具有幾乎固定架構的CPU或 GPU 不同,FPGA 具有幾乎固定的架構,強制要求如何處理數據,或者需要如何根據架構調整給定演算法,而 FPGA 提供了充分的靈活性。可以構建內部 FPGA 硬體架構(我們稱之為“配置”),以最適合感興趣的演算法,從而提供更低的延遲和高性能。例如,通過乙太網線路或直接從記憶體傳入的數據可以實時處理,而無需調用主機 CPU。這就是內聯或「線中碰撞」加速用例。或者,可以將完整的演算法卸載到FPGA,並將結果寫回主機CPU。這就是旁觀加速用例。
通過更改 FPGA 和/或使用現場可程式設計性,可以動態更改工作負載來實現高級可擴充性。FPGA 還可以並行運行多個工作負載,而不會相互干擾。FPGA 本質上提供豐富的 IO,加速卡具有許多不同的介面。FPGA 集群可用於將工作負載分佈到多個 FPGA 上,或通過高速晶片間通信實現處理階段,從而提升性能。
得益於我們的英特爾開放式加速堆疊,可以輕鬆地在現有伺服器中安裝 FPGA 加速卡,並提供一種簡單的方法來配置系統以加速應用,從而提高了生產力。
在 HPC 數據中心中,功耗極為關鍵。與 CPU 和 GPU 相比,FPGA 允許硬體以更少的時鐘週期和更低的時鐘頻率執行功能,從而降低功耗。更低的功耗意味著節省能源,這反過來又意味著可以降低運營支出和總擁有成本的支出。
接下來是價格。用於標準集群的 FPGA 加速卡有許多選項。安裝 FPGA 加速卡以提高集群性能可能比升級或續訂集群以達到性能目標更具成本效益。
轉到幻燈片 4 – Agilex:面向以數據為中心的 FPGA
現在,讓我們來看看我們的FPGA系列Agilex,它建立在10nm工藝技術之上。首先,我們都受到全球供應限制的困擾。Agilex 已在英特爾晶圓廠製造。其次,您可能已經看到英特爾正在投資建設晶圓廠以減少依賴的公告。
回到 Agilex。Agilex 有不同的子系列,具有不同的功能,我今天沒有時間深入研究。請聯繫我們瞭解更多資訊或訪問 intel.com/agilex。
Agilex有幾個特點,與上一代FPGA相比,它的性能提高了40%,功耗降低了40%,而且還可以實現更高的收發器數據速率。Agilex 還提供高達 40 TFLOPS 的 DSP 性能。Agilex 支援下一代 HBM DDR5,以及 PCIe Gen5 和 Compute Express Link (CXL),這對 HPC 客戶來說尤其有趣。
最後,我談到了一個關鍵資訊:HPC 客戶正在為性能而競爭。FPGA 可以通過提供獨特的功能來補充系統,從而提高性能並降低總體擁有成本。
現在,Agilex FPGA本身不能在數據中心使用,當然必須有一個企業級卡來託管FPGA,該卡具有所有必要的介面和板上所需的元件,例如記憶體。在BittWare的説明下,市場上有基於Agilex的加速卡,以提高數據中心的性能。現在,克雷格,交給你了。
(克雷格)
謝謝,克利斯蒂安,歡迎大家觀看今天的網路研討會。
對於那些不知道的人來說,BittWare是Molex的一部分,Molex是世界上最大的設計和製造公司之一,為包括高性能計算在內的一系列市場的主要客戶提供服務。
BittWare是Molex數據中心集團的一部分。
BittWare設計和製造企業級加速產品,具有最新和最偉大的FPGA--在今天的網路研討會上,我們將重點介紹英特爾Agilex FPGA。
這些高性能可程式設計加速器使我們的客戶能夠以低風險輕鬆開發和部署基於英特爾 FPGA 的解決方案。
我們的產品用於快速原型設計和基準測試,但最終用於經濟高效的批量部署。
當我們考慮高性能計算時,我們將該術語分解為三個主要應用領域:計算、網路和存儲。
其中,有許多工作負載非常適合 FPGA。示例包括自然語言識別、推薦引擎、網路監控、推理、安全通信、分析、壓縮、搜索等等。
在BittWare,我們試圖降低在英特爾FPGA上實現這些工作負載的成本、工作量和風險。
我們這樣做的第一種方法是採用 FPGA 設備(在本例中為英特爾 Agilex FPGA)並創建平台產品。
這些主要是PCI Express卡,外形尺寸包括HHHL、FHHL和雙插槽 GPU,但我們也支援一些存儲外形尺寸,包括U.2。
每個卡或模組都遵循官方規範,以確保與現有和新基礎設施的相容性。
卡可以單獨購買,也可以重新集成到針對 FPGA 優化的伺服器中,我們稱之為 TeraBox。通常,我們利用領先供應商的伺服器,例如幻燈片中列出的伺服器。
我們目前正在發貨三款英特爾 Agilex 產品,如下所示。
GPU 大小的 IA-840f 顯卡是我們目前的旗艦產品。它具有 AGF-027、四組 DDR4 記憶體、網路埠和擴展埠。我們在 Stratix 10 MX 卡上支援 oneAPI 已經有幾年了,但 '840f 是我們第一款支援 oneAPI 工具流的基於 Agilex 的卡。
英特爾的 oneAPI 是一項大膽的、受歡迎的舉措,旨在引入統一的軟體程式設計模型。使用 oneAPI,我們的客戶能夠從單個代碼庫進行程式設計,並具有跨架構的原生高級語言性能。
oneAPI 包括一種直接程式設計語言:數據並行 C++ 和一組用於基於 API 的程式設計庫,使跨架構開發更容易。
數據並行 C++ 基於熟悉的 C++,並整合了 Khronos Group 的 SYCL。這大大簡化了跨多個體系結構的代碼重用,並支援對加速器進行自定義調整。
從根本上說,它向通常使用 x86 或 GPU 技術的軟體客戶開放了 FPGA。任何希望在Agilex上使用oneAPI進行開發和基準測試的客戶都應該考慮BittWare '840f卡。
BittWare率先在我們的Intel Stratix 10卡上支援oneAPI。對於這些實現,我們使用 OpenCL 層作為板級支援包。示例設計和白皮書可以在網站的資源部分找到。
對於基於英特爾 Agilex 的產品,我們的 oneAPI 實施使用英特爾開放式 FPGA 堆疊或“OFS”。
對於那些想要完全放棄FPGA程式設計的客戶,你可以通過BittWare合作夥伴計劃從Atomic Rules、Edgecortix和Eideticom等領域專家那裡購買我們的FPGA加速卡,這些卡預先程式設計了應用代碼。
當我們展望 2023 年及以後的新技術時,可以說,對於高性能計算的未來來說,沒有比 CXL 更重要的了。
CXL 代表 Compute Express Link,是新的加速器鏈接協定。它基於現有PCIe協定,並允許主機和加速器之間的連貫通信,並在現有PCIe協定之外添加了其他功能。在本例中,英特爾 Agilex FPGA.這使得 CXL 鏈路在與用於異構計算的旁觀或內聯加速器一起使用時能夠實現高效、低延遲、高頻寬的性能。
BittWare宣佈了三款支援CXL的新FPGA加速卡。'440i 和 '640i 是單寬 HHHL 和 FHHL 卡,支援 Agilex FPGA 的 I 系列。
我們充分利用了令人印象深刻的 F-Tile 對 400 Gb 乙太網的支援,以及對 PCI Express Gen 5 x16 的 R-Tile 支援。
GPU 大小的 '860m 顯卡採用突破性的 M 系列 Agilex FPGA,該 FPGA 支持高達 32GB 的 HBM2 記憶體封裝和外部 DDR5 記憶體。對於高性能計算來說,這是一款令人難以置信的設備,尤其是記憶體受限的應用程式。
BittWare之所以能夠支援CXL,是因為Agilex I系列和M系列FPGA系列都具有硬核IP,允許Gen 5 x16配置支援的全部頻寬,而對FPGA資源的使用最少。
我們有望在 2023 年第一季度推出首款支援 CXL 的 FPGA 卡。
那麼,為什麼 CXL 如此重要?好吧,我們的客戶已經非常明確地表示,他們需要更高的性能、更好的能效和計算能力,並可以訪問其應用程式中的不同記憶體。
人們一致認為,CXL 將為採用 FPGA 的異構計算架構提供新的性能水準。
與競爭解決方案相比,英特爾 Agilex FPGA 提供每個埠 4 倍的 CXL 頻寬和每個埠 2 倍的 PCIe 頻寬。
隨著雲計算變得越來越普遍,客戶需要改進其架構,以提供更快、更高效的數據處理。
這意味著在我前面提到的三個主要應用領域內進行創新。具體來說,用於計算密集型工作負載的加速器技術、網路區域內可以動態處理數據的SmartNIC和可以在存儲平面內處理大量靜態數據的計算存儲之間的緊密耦合。
計算、網路和存儲技術已經通過PCI Express連接,但是,為了實現應用程式性能的階梯式變化,他們需要利用CXL的優勢。
CXL 協定描述了 CXL 連接設備的三種使用配置。
類型 1 設備可用於流式處理和低延遲應用,例如 SmartNIC,其中加速器需要一致訪問處理器的記憶體,而主機無法訪問其自己的記憶體。
Type 2 設備是最複雜的實現,因為它處理所有三個 CXL 子協定:CXL.IO、CXL.Cache 和 CXL.Mem。此類型旨在用於複雜的任務,例如 AI 推理、資料庫分析或智慧存儲。
Type 3 設備允許主機一致地訪問連接到 CXL 設備的任何記憶體。在這種情況下,FPGA 仍然可以通過實現特殊的 FPGA 邏輯(如獨特的壓縮和加密演算法)來提供有價值的優勢。
對於那些不知道的人,英特爾 FPGA CXL IP 是硬 IP 和軟 IP 的組合。
為了使用英特爾的 CXL IP 設計應用程式,客戶需要購買單獨的 IP 許可證。
啟動英特爾 CXL 許可證後,您將能夠在 Quartus Prime 工具中找到英特爾 IP。
啟動 Agilex R 磁貼的 CXL 硬 IP 後,相應的軟 IP 將添加到設計中。
請注意,BittWare的PCIe卡上提供的Agilex I系列FPGA支援CXL 1.1和2.0。
展望未來,英特爾制定了支援 CXL 3.0 的路線圖,該路線圖與 PCIe Gen 6 規範相關聯。
因此,CXL 將很重要。任何觀看此網路研討會的人,如果其工作涉及瞭解和評估新技術,則必須考慮 CXL。
為了幫助客戶做到這一點,BittWare正在建立一個完整的CXL開發和基準測試平臺。
它包括一個 2U 機架式伺服器,配備 Intel Sapphire Rapids Xeon CPU。BittWare的英特爾Agilex I系列FPGA卡也是預先集成的。
將預裝 Linux 作業系統以及開始開發所需的英特爾 Quartus 和 CXL 許可證。
我們希望客戶能夠非常快速地上手,因此此捆綁包將包括一個利用 CXL 的應用示例參考設計。
包括技術支持和涵蓋伺服器和 FPGA 硬體的全面保修以及技術支援服務。
這隻是我們提供的服務的先睹為快。詳情將適時公佈。同時,請聯繫BittWare瞭解更多詳情。
至此,我現在將把網路研討會的下一部分交給Maurizio。謝謝。
(茅利齊奧)
謝謝你,克雷格。
現在讓我們看一下 oneAPI,這是用於此案例研究的程式設計模型。
像 IA-840f 這樣的可程式設計加速卡是異構計算架構的強大構建模組。異構架構在高性能計算中越來越受歡迎,因為並非所有工作負載都是相同的,並且沒有一種計算架構(無論是 CPU、GPU、FPGA 還是專用加速器)適合所有這些工作負載。採用異構架構使程式師能夠在輸送量、延遲和能效方面為每個工作負載選擇最適合的架構。
然而,為異構架構開發代碼並非易事,而且意味著重大挑戰。如今,每個以數據為中心的架構都需要使用不同的語言和庫進行程式設計。這意味著必須維護單獨的代碼庫,而跨平臺移植意味著需要付出巨大的努力。此外,跨平臺工具支援不一致意味著開發人員必須浪費時間學習不同的工具集。
簡而言之,為每個硬體平臺開發軟體需要單獨的投資,幾乎沒有能力重用這些工作來針對不同的架構。
英特爾針對此問題的解決方案是 oneAPI,這是一個跨 CPU 和加速器架構提供統一軟體開發環境的專案。
這不是一個專有專案。相反,它基於一個開放的行業倡議,用於聯合開發規範,旨在開發整個生態系統的相容實現。
然後,英特爾將程式設計模型作為一組工具包實施,這些工具包將在下一張幻燈片中介紹。
oneAPI 程式設計語言是數據並行 C++。這是一種高級語言,專為提高數據並行程式設計效率而設計。它基於 C++ 語言,具有廣泛的相容性,並使用 GPU 軟體開發人員熟悉的程式設計模型簡化了從專有語言的代碼遷移。
語言的起點是在行業聯盟Khronos Group下開發的SYCL。英特爾和社區正在通過擴展來解決語言方面的差距,我們將把這些擴展納入標準。
數據並行 C++ 允許跨不同硬體目標(CPU、GPU 或 FPGA)重用代碼。但是,仍然需要針對每個架構進行調整,以最大限度地提高性能。
正如我之前提到的,英特爾的 oneAPI 參考實現是一組工具包。
這些工具套件包括:
請注意,截至目前,FPGA 的基於 API 的程式設計支援是有限的。
要開始在FPGA上構建和運行數據並行C++代碼,使用者需要下載並安裝由以下部分組成的開發軟體堆疊:
oneAPI 開發堆疊為不熟悉傳統的基於 RTL 的 FPGA 設計方法的軟體程式師提供了對 FPGA 平臺的輕鬆存取。在 RTL 中進行設計意味著對 FPGA 架構細節和時序收斂等高級主題有深入的瞭解。使用 oneAPI,這些細節由編譯器和 BSP 處理,並且對 FPGA 進行程式設計所需的工作量與任何其他平臺相同。
現在請 Cesar 介紹我們今天將要介紹的案例研究。
(塞薩爾)
大家好,我是來自巴塞羅那超級計算中心的 Cesar Gonzalez,我想向大家介紹一下我們的研究,我們在哪裡使用 FPGA 器件。
首先,我想向你們展示我們的超級計算機:“MareNostrum”。如果您訪問巴塞羅那,您可以參觀它(當然,您也可以參觀我們的古跡,如聖家堂)。
我們試圖做的是:我們試圖確定任何其他系統都無法確定的小分子的結構。我們將如何做到這一點:我們將使用這些分子的光譜來做到這一點。如果我們有分子的光譜,我們怎麼能找到結構呢?
所以,我們使用——上個世紀證明的——你可以在三維空間中建立一個分子模型,然後,你可以建立這個理論模型的光譜,你可以將這個光譜與真實的光譜進行比較。
如果光譜相同,則您擁有結構。如果沒有,您可以重新配置模型以計算新光譜,以查看它是否與真實光譜匹配。
好吧,那麼,我們第一次在做什麼?只是為了做一個測試,看看它是否是......如果這是真的。我們的測試是在雙密度球體中使用200萬個電子,您可以在幻燈片上看到。
因此,由於我們知道了這個雙球體光譜的解析解,我們計算了這個球體的理論光譜,然後與光譜的解析解進行比較。
所以這是所有事情的關鍵:要計算這個模型的光譜(我們像測試一樣使用),我們必須計算這個模型中兩個粒子的所有距離。
這就是高性能計算的用武之地,因為當粒子數量非常高時,在所有距離上執行的時間非常非常長。所以,我們這裡有200萬個電子的樣本分佈——這是我們的測試。
我們所做的是,我們計算了這兩個密度球模型的直方圖。好。
我們取兩個粒子,計算它們的距離,然後將第一個粒子的密度乘以第二個粒子的電子密度,然後將這個權重放在直方圖的距離位置內。
舉個例子,兩個粒子,距離 100 埃:所以,你把這對粒子的電子重量放在 100 埃......x [軸]...這裡在直方圖中。好。
所以,如果他們有 200 埃的距離,你就放在另一邊。如果還有另外一個或兩個 200 埃的距離,則添加到直方圖中並獲取直方圖。在這裡,我們使用 FPGA 距離計算。
稍後,當你得到完整的直方圖時,你執行傅里葉變換,你可以看到你計算的內容,即這裡的紅線,是否與解析解(即另一條線)相同,你可以看到這與它匹配。因此,我們證明瞭上個世紀的理論是正確的。
因此,我們進入了另一個步驟,即取一個我們知道結構的真實分子,然後我們建立這個分子的理論模型,然後看看這些模型是否真的與分子的光譜相匹配。
這是山嵛酸銀細胞。該細胞有兩個山嵛酸銀分子。我們之所以構建它,是因為我們知道山嵛酸銀的真實結構,然後,我們創建了模型。這是模型——我們用了什麼?只是把 25 x 25 x 3 重複儲存格。我們用FPGA進行理論光譜,然後我們開始吧。
我們這裡有什麼?
綠線是銀貝嵛酸鹽的真實光譜。藍色的那個是哈特裡-福克(Hartree-Fock)使用量子分佈計算電子。
黑線是電子的隨機分佈,紅線是計算原子性能的設備,而不是電子。
我們還使用什麼...又是一次測試,只是為了看我們是否與真實模型匹配。所以,你可以看到,如果我們使用哈特裡·福克的量子分佈,匹配就像設備一樣是完全的。
我們把綠線往上移,只是為了看看它們是否匹配,因為對我們來說重要的是高峰在哪裡。如果山峰在它們的位置,我們就可以知道結構。
正如你所看到的,當我們使用電子的隨機分佈時,圖末尾的真實光譜之間存在差異,該光譜與使用電子量子分佈密度的 Hartree-Fock 的分佈求解。
所以,我要感謝英特爾和我的加泰羅尼亞高級化學研究所,也感謝ALBA同步加速器,我們一直在做貝嵛酸銀的光譜。
感謝大家觀看本次演講,我想邀請大家觀看我們的科學文章,您可以在此 DOI 參考文獻中看到,以及我們在巴塞羅那超級計算中心的摘要書中的研究情況。謝謝,再見。
(茅利齊奧)
謝謝你,塞薩爾。
現在讓我們看一下本案例研究中實現的演算法。 這稱為粒子對距離演算法或pp距離演算法,可以描述如下。
給定位於三維空間中的一組 N 個粒子,對於每對可能的粒子,計算它們之間的距離。
在我們的案例研究中,每對的功率密度隨後累積在與計算距離相對應的箱中。使用單精度浮點計算距離,然後轉換為整數進行分箱,而累加則使用雙精度浮點執行。
這個問題的複雜度是 N 平方,因為 N 個點集合中的點對數與相同的因數成比例。
該演算法最初是在OpenCL中實現的,並在兩個不同的可程式設計加速卡上進行了測試:英特爾Arria 10 GX卡(基於英特爾Arria10 1150 FPGA)和英特爾 D5005 卡(基於英特爾 Stratix 10 SX 2800 FPGA)。然後,該演算法被移植到DPC++,並在BittWare IA-840f卡(基於英特爾Agilex AGF027 FPGA)上實現。
用於此實現的工具鏈是 oneAPI 版本 2022.2 和 Quartus Prime Pro 21.4。在本演示文稿的後面部分,我們將介紹我們在上述所有配置中取得的結果。
現在,讓我們快速流覽一下此演算法的參考實現。這是一個 OpenCL 內核,它將集合中的點數、用於結果的 bin 數以及指向存儲點數據的陣列(座標和相關功率)的指標作為輸入,並返回累積結果的陣列。內核的核心是兩個嵌套迴圈(在紅色框中)的集合,其中計算點對的距離,並進行功率密度累積。
上一張幻燈片中的參考實現在FPGA上運行之前已經過適當的優化。正如Christian之前提到的,在FPGA中,內部架構的配置適合要實現的演算法。
因此,FPGA 編碼意味著塑造計算數據路徑的架構,這與 CPU 和 GPU 的情況不同,後者的計算架構是固定的。在針對 FPGA 進行優化時,程式師使用 oneAPI 工具鏈提供的資訊(代碼靜態分析和動態分析報告)來識別已實現數據路徑中的性能瓶頸,並使用編碼技術消除或緩解這些瓶頸。如果您有興趣瞭解有關優化 FPGA 代碼的更多資訊,英特爾和 GitHub 網站上提供了文檔、培訓材料、教程和設計範例。
在我們的例子中,對原始代碼進行了一些優化,以提高記憶體訪問和計算效率。其結果是,與原始代碼相比,性能提高了一千多倍。
我在上一張幻燈片中提到過,這段代碼最初是用OpenCL編寫的,然後移植到 DPC++。現在,移植代碼是一項非常簡單的任務,需要的更改非常有限。基本上,內核代碼架構必須適應 DPC++ 編碼風格,這意味著內核本身使用了 lambda 函數,定義了數據移動的訪問器,並將編譯指示和屬性的語法調整為新語言。另一方面,主機代碼大大簡化,因為許多必須在OpenCL中顯式管理的細節都由 DPC++ 中的運行時自動處理。因此,DPC++ 主機代碼的大小是其 OpenCL 對應代碼的一半。
現在讓我們來看看結果。
請注意,FPGA 的代碼是參數化的。這使用戶能夠探索實現的架構空間,並在目標內核時鐘和頻率以及數據並行性之間找到最佳權衡,這就是展開因素。
此表中的結果顯示了針對每種情況找到的最佳權衡。
第一行是指在主機 CPU(即 Xeon Ice Lake 處理器)上運行的演算法作為單線程代碼的順序實現。此實現在 9,600 秒內處理 200 萬個點數據集,即 2 小時 40 分鐘。
在 IA-840f 卡上運行的 DPC++ 實現在 61 秒內處理相同數量的數據,比順序實現快 157 倍,以雙精度浮點執行所有累加。如果使用 40 位整數進行部分累加,則處理時間降至 41 秒,即快 233 倍。
此外,與上一代高端 FPGA 相比,Agilex FPGA 允許更高的時鐘頻率和更高的數據並行度,從而實現兩倍的性能。
本次演講到此結束。感謝您關注我們。現在進入問答環節。
(馬庫斯)
好了,馬庫斯回到這裡進行我們的問答,在此之前,我只想回顧一下。我們已經收到了很多資訊,也已經提出了一些問題。我只想提醒您,如果您有問題要問我們的小組成員,請使用問題功能輸入,我們會將其提交給我們的小組成員。
我特別要感謝Maurizio和 Cesar 的演講和 HPC 工作的細節......他們在巴塞羅那超級計算中心的 HPC 工作。
您知道,這款新的 Agilex 系列 FPGA 帶來了非常適合 HPC 工作負載的性能和功能的完美組合。我們談到了使用 oneAPI 程式設計模型,這是 HPC 中真正任何人都應該考慮的事情,因為它允許代碼可移植性、靈活性以及 Maurizio 談到的東西。
我們看到代碼是從基於 Arria 10 的卡移植到 Stratix 10 的——兩者都使用 OpenCL,然後 Maurizio 移植了 oneAPI......在BittWare的新IA-840f Agilex卡上使用oneAPI,這隻是一個非常快速、順利的工作流程變化--這是優勢之一。
然後是性能,正如我們在最後聽到的那樣。Agilex 設備上此 HPC 工作負載的性能和加速數位非常令人印象深刻。
然後我們也聽說了CXL,所以Craig提到了BittWare即將推出的新CXL開發包。如果您想瞭解更多資訊,請與我們聯繫。
好了,我們的問題就到這裡來了。
我確實想先問一下,塞薩爾。您知道,我們談到了您使用的 FPGA,但您是從哪裡決定將 FPGA 用於您的特定應用的?
(塞薩爾)
事實上,我首先使用帶有 C CUDA 的 GPU 進行程式設計,然後我們做了 FPGA,因為團隊中的所有人都直接瞭解高性能計算元件的編譯指示,這些元件很容易理解它是如何工作的。對我們來說,所有人都能理解內核,OpenCL內核是非常重要的。
此外,您擁有的所有經驗,您使用 FPGA 所做的所有事情,稍後都可以在 GPU 中實現。無論如何,我們看到一些限制,使用限制,使用GPU的一些便利或不便。例如,如果模型大 10 倍,則 GPU 中的時間是兩倍。同時,FPGA 中的時間是相同的。但這並不意味著FPGA比GPU更好。我們有不同的環境。對我們來說,FPGA 更好。那是在我攻讀博士學位之初,我告訴英特爾,數位,數位,對不起,告訴英特爾一個問題:“如果你去火星,你會帶什麼?GPU 或 FPGA。(笑)
(馬庫斯)
是的,這是個好問題。是的,這是一個很好的類比,我很欣賞。
簡單來說,您能回顧一下嗎?我知道你詳細談到了你使用的過程,但最終結果是什麼?我知道你一開始就談到了它,但就......您將使用這些結果的用例是什麼?
(塞薩爾)
好吧,當你能夠確定一個分子的結構時——就在那裡——你就可以為生病的人和所有這些東西建立治療方法或藥丸。因此,我們正在生物醫學的基礎和納米技術的基礎中工作。所以,這對醫生和其他人來說非常重要,因為他們想知道我們如何阻斷這個分子或其他分子。這非常重要,是的。
白皮書 使用網路示例比較 FPGA RTL 與 HLS C/C++ 概述 大多數 FPGA 程式師認為,高級工具總是發出更大的比特流,因為
BittWare 網路研討會 使用英特爾敏捷 FPGA 的阿克維爾 PCIe 第 4 代數據行動器網路研討會 來自原子規則的阿克維爾 IP 最近進行了更新,以支援英特爾®敏捷 ™
採用PCIe Gen 4 FPGA計算存儲處理器(CSP)的新型IA-220-U2 Gen 4 PCIe NVMe Eideticom NoLoad BittWare的IA-220-U2加速NVMe快閃記憶體固態硬碟