AdaptiveCpp/AdaptiveCpp

Compiler for multiple programming models (SYCL, C++ standard parallelism, HIP/CUDA) for CPUs and GPUs from all vendors: The independent, community-driven compiler for C++-based heterogeneous programming models. Lets applications adapt themselves to all the hardware in the system - even at runtime!

解決的問題

AdaptiveCpp 提供一個基於 C++ 的異構程式設計統一平台,讓開發者能撰寫可在任何主要廠商(Intel、NVIDIA、AMD 和 Apple)的 CPU 與 GPU 上執行的程式碼,無需為每個特定硬體目標重新撰寫應用程式。它透過允許單一二進位檔同時針對多種硬體類型,消除對廠商特定技術的鎖定。

工作原理

AdaptiveCpp 實現多種程式設計模型,包括彈性的 SYCL 實作、對 C++ 標準並行性(支援並行 STL 算法的卸載)的實驗性支援,以及 PCUDA(可移植 CUDA),可將 CUDA/HIP 程式碼編譯至各種後端。它預設使用強大的 LLVM JIT 編譯器作為處理流程,這是唯一一個在主機與裝置編譯時僅解析一次原始碼的 SYCL 編譯器。

適用對象

專為從事高效能運算(HPC)與異構系統的開發者與研究人員設計,適用於需要在包括超級電腦在內的多種硬體環境中執行其應用程式的場景。

主要亮點

  • 多廠商支援:支援 Intel、NVIDIA、AMD 與 Apple 的 CPU 與 GPU。
  • 單次編譯:具備獨特的 SYCL 編譯器,可對原始碼進行一次解析,同時用於主機與裝置編譯。
  • 跨平台二進位檔:能產生一個可卸載至所有支援裝置的單一二進位檔。
  • 廠商工具相容性:與現有廠商提供的分析器與除錯工具相容。
  • C++ 標準並行性:唯一能展現 NVIDIA、AMD 與 Intel GPU 上 C++ 標準並行性效能的解決方案。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案