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!
What it solves
AdaptiveCpp provides a unified platform for C++-based heterogeneous programming, allowing developers to write code that can run on CPUs and GPUs from any major vendor (Intel, NVIDIA, AMD, and Apple) without needing to rewrite the application for each specific hardware target. It eliminates the need for vendor-specific lock-in by enabling a single binary to target multiple hardware types simultaneously.
How it works
AdaptiveCpp implements several programming models, including a flexible SYCL implementation, experimental support for C++ standard parallelism (offloading parallel STL algorithms), and PCUDA (portable CUDA), which allows CUDA/HIP code to be compiled for various backends. It utilizes a powerful LLVM JIT compiler as its default flow, which is the only SYCL compiler that parses source code only once for both host and device compilation.
Who it’s for
It is designed for developers and researchers working on high-performance computing (HPC) and heterogeneous systems who need to run their applications across diverse hardware environments, including supercomputers.
Highlights
- Multi-vendor support: Targets CPUs and GPUs from Intel, NVIDIA, AMD, and Apple.
- Single-pass compilation: Features a unique SYCL compiler that parses source code once for both host and device.
- Cross-platform binary: Ability to generate a single binary that can offload to all supported devices.
- Vendor tool compatibility: Works with existing vendor-provided profilers and debuggers.
- C++ Standard Parallelism: Only solution capable of demonstrating performance across NVIDIA, AMD, and Intel GPUs for C++ standard parallelism.
Related
- Project
- Project
- Project
- Project
- Project