英特爾發布了一個開源工具,通過一個名為 SYCLomatic 的項目將代碼遷移到 SYCL1,該項目幫助開發人員將 CUDA 代碼移植到 SYCL 和 C++,以加速異構架構的跨架構編程。
開源項目使社區協作能夠推動 SYCL 標準的采用,這是將開發人員從單一供應商專有生態系統中解放出來的一步。
“使用 SYCL 遷移到 C++ 為代碼提供了更強的 ISO C++ 一致性、多供應商支持以減輕供應商鎖定,并支持多架構以提供利用新硬件創新的全部力量的靈活性。SYCLomatic 提供了一個有價值的工具來自動化大部分工作,使開發人員可以更多地關注自定義調優而不是移植。” ——James Reinders,英特爾 oneAPI 傳播者
SYCL 是一種基于 C++ 的 Khronos Group 標準,它擴展了 C++ 功能以支持多架構和不相交的內存配置。為啟動該項目,英特爾開源了其 DPC++ 兼容性工具背后的技術,以進一步提升遷移能力,以生成更多基于 SYCL 的應用程序。跨架構重用代碼簡化了開發,減少了持續代碼維護的時間和成本。
利用 Apache 2.0 許可證(LLVM 例外),托管在 GitHub 上的SYCLomatic項目為開發人員提供了一個社區來貢獻和提供反饋,以進一步開放跨 CPU、GPU 和 FPGA 的異構開發。
SYCLomatic 協助開發人員將 CUDA 代碼移植到 SYCL,通常會將 90-95% 的 CUDA 代碼自動遷移到 SYCL 代碼2。為了完成這個過程,開發人員手動完成其余的編碼,然后自定義調整到架構所需的性能水平。
研究機構和英特爾客戶已成功使用英特爾 DPC++ 兼容性工具(其技術與 SYCLomatic 相同)將 CUDA 代碼遷移到多個供應商架構上的 SYCL(或 Data Parallel C++,oneAPI 的 SYCL 實現)。示例包括使用GROMACS 2022 3 的斯德哥爾摩大學、 使用 easyWave、 Samsung Medison和 Bittware的柏林 Zuse Institute (ZIB) (查看 oneAPI DevSummit 內容 以獲取更多示例)。多個客戶還在當前和即將推出的基于英特爾 Xe 架構的 GPU 上測試代碼,包括 阿貢國家實驗室 Aurora 超級計算機、 萊布尼茨超級計算中心 (LRZ)、 GE 醫療保健等。
SYCLomatic 是一個 GitHub 項目。GitHub 門戶包含一個“contributing.md”指南,描述了為項目做出技術貢獻的步驟,以確保最大程度地簡化。鼓勵開發人員使用該工具并提供反饋和貢獻以推動該工具的發展。
“CRK-HACC 是一個正在積極開發的 N 體宇宙學模擬代碼。為了為 Aurora 做準備,英特爾 DPC++ 兼容性工具使我們能夠將 20 多個內核快速遷移到 SYCL。由于當前版本的代碼遷移工具不支持遷移到函子,我們編寫了一個簡單的 clang 工具來重構生成的 SYCL 源代碼以滿足我們的需求。通過開源 SYCLomatic 項目,我們計劃整合我們以前的工作以獲得更強大的解決方案,并有助于使函子成為可用遷移選項的一部分,”HACC(硬件/混合加速宇宙學代碼)的 Steve (Esteban) Rangel 說,Cosmological物理與高級計算 (anl.gov)。
審核編輯:郭婷
-
英特爾
+關注
關注
61文章
9979瀏覽量
171925 -
C++
+關注
關注
22文章
2110瀏覽量
73697
發布評論請先 登錄
相關推薦
評論