Intel® oneAPI

跨多個體系結構的統一程式設計模型

概述

支援高級軟體工具流對於希望利用異構架構的不斷增長的客戶群至關重要。英特爾的全新 oneAPI 圍繞代碼重用而設計,同時提供與其他高級工具類似的性能。瞭解 英特爾的 oneAPI 程式設計模型, 以及它如何通過簡化跨多個架構的加速開發來解決程式設計挑戰。

目前在部分BittWare產品上受支援

程式設計挑戰

適用於多種架構

在當今的 HPC 環境中,有幾種硬體架構可用於運行工作負載 - CPU、GPU、FPGA 和專用加速器。沒有一種體系結構最適合每個工作負荷,因此混合使用體系結構可以在大多數方案中獲得最佳性能。但是,這種架構多樣性帶來了一些挑戰:

每個體繫結構都需要單獨的程式設計模型和工具鏈:

  • 所需的培訓和許可 – 編譯器、IDE、調試器、分析/監控工具、部署工具 – 每個體系結構
  • 調試、監控和維護跨架構原始程式碼具有挑戰性
  • 跨專有IP和架構難以集成,無需代碼重用

軟體開發的複雜性限制了架構選擇的自由度。

  • 需要對技術專長進行孤立的投資,以克服進入壁壘

一個API如何提供説明

OneAPI 提供了一個 統一的程式設計模型 ,可簡化跨不同架構的開發。借助 oneAPI 程式設計模型,開發人員可以針對具有相同語言和庫的不同硬體平臺,並可以使用同一組調試和性能分析工具在不同平臺上開發和優化代碼 - 例如,通過 Vtune 分析器獲取其主機和加速器的運行時數據。

跨平臺和硬體架構使用相同的語言使原始程式碼更易於重用;即使將代碼移動到不同的硬體體系結構時仍需要特定於平臺的優化,也不再需要代碼轉換。使用通用語言和工具集可以更快地培訓新開發人員,加快調試速度並提高工作效率。

intel_onapi_benefits.png
  • 通過模擬報告進行性能調優和時序收斂
  • 通過 VTune™ 探查器進行運行時分析
  • 通過內置語言功能實現的複雜硬體模式: 雜註標頭
  • 跨體系結構和供應商的代碼重用
  • 與現有的高性能語言相容
  • 利用熟悉的順序程式設計語言:縮短 啟動調試 時間
  • IDE 集成: EclipseVSVS Code

使用 oneAPI 的 2D FFT 演示

在這個面向軟體的工具流中開發更快 + 重用代碼

通過我們的 2D FFT 演示探索使用 oneAPI,而不是採用 HBM2 的 520N-MX 卡。請務必在頁面底部請求代碼下載!

數據並行C++

基於標準的跨架構語言

oneAPI 語言是數據並行C++,這是一種高級語言,專為並行程式設計效率而設計,基於 C++ 語言以實現廣泛的相容性。DPC++不是一種專有語言;它的發展是由開放的跨行業倡議推動的。

跨 CPU 和加速器提供不折不扣的並行程式設計效率和性能的語言:

  • 允許跨硬體目標重用代碼,同時允許針對特定加速器進行自定義調整
  • 單一架構專有語言的開放、跨行業替代方案

基於C++:

  • 使用常見且熟悉的 C 和 C++ 結構提供 C++ 生產力優勢
  • 整合 Khronos 集團的 SYCL*,以支援數據並行性和異構程式設計

推動語言增強的社區專案:

  • 簡化數據並行程式設計的擴展
  • 開放合作發展,持續發展 

適用於 oneAPI 的 FPGA 開發流程

編譯 FPGA 代碼 時 一個 主要 問題 是 編譯 時間 – 將 DPC++ 代碼轉換為 實現 該 代碼 指定 的 硬體 架構 的 時序 封閉 FPGA 設計 所需 的 後端 編譯 過程 可能需要 數 小時 才能 完成。因此,FPGA 開發流程經過定製,可最大限度地減少完整的編譯運行。

  1. 第一步是 功能驗證,使用測試台檢查代碼的正確性。這是使用開發平臺上的模擬實現的 - 其中針對 FPGA 的代碼在 CPU 上編譯和執行。當發現錯誤並需要修復時,這允許更快的周轉時間。標準 CPU 除錯器(如英特爾 ® GDB 發行版)可用於此目的。
  2. 功能驗證完成後,將通過編譯器生成的報告執行 靜態性能分析 。報告包括識別設計中的記憶體、性能、數據流瓶頸所需的所有資訊,以及解決瓶頸的優化技術建議。它們還提供目標FPGA設計的面積和時序估計。
  3. 靜態分析的結果令人滿意后,將進行 完整的編譯 。編譯器可以根據請求將分析邏輯插入到生成的硬體中;分析邏輯為記憶體和管道訪問生成動態分析數據,Vtune 性能分析器稍後可以使用這些數據來識別無法以任何其他方式發現的數據模式相關瓶頸。
 

免費點播網路研討會

使用英特爾 ® oneAPI™ 透過 FPGA 實現高性能計算加速

註冊后立即觀看!

了解有關 oneAPI 的更多資訊

什麼是 oneAPI?

oneAPI 是一種跨行業、開放、基於標準的統一程式設計模型,可在加速器架構中提供通用的開發人員體驗,從而實現更快的應用程式性能、更高的生產力和更大的創新。oneAPI 行業倡議鼓勵在整個生態系統中就 oneAPI 規範和相容的 oneAPI 實現進行協作。

圖書館

oneAPI 為計算和數據密集型域提供庫。它們包括深度學習、科學計算、視頻分析和媒體處理。

硬體抽象層

低級硬體介面定義了一組功能和服務,允許語言運行時利用硬體加速器。

規範

oneAPI 規範擴展了現有的開發人員程式設計模型,通過語言、一組庫 API 和低級硬體介面支援跨架構程式設計,從而實現多樣化的硬體集。為了提高相容性並支持開發人員的生產力和創新,oneAPI 規範建立在行業標準之上,並提供開放的跨平臺開發人員堆棧。

您可以立即在 520N-MX 上使用 oneAPI 開始使用

在 FPGA 上使用 oneAPI 入門

您需要三個元件才能開始使用 oneAPI 進行開發。oneAPI Base Toolkit 和 FPGA ADd-On 均可從英特爾獲得。BittWare FPGA卡的BSP可在BittWare的開發人員網站上找到。 

英特爾的 oneAPI 基本工具包

面向 oneAPI 基礎工具包的英特爾 ® FPGA 附加元件

來自BittWare的FPGA卡BSP

視頻

Craig Petrie 談論 BittWare 對 oneAPI 的支援

 

對定價或更多資訊感興趣?

我們的技術銷售團隊隨時準備提供可用性和配置資訊,或回答您的技術問題。