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++ 标准并行性性能的解决方案。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目