cupla

cupla is a simple user interface for the platform-independent parallel kernel acceleration library alpaka. It follows a similar concept as the NVIDIA® CUDA® API by providing a software layer to manage accelerator devices. alpaka is used as a backend for cupla.

1
mention
2
contributors

Cite this software

DOI:

What cupla can do for you

cupla is a C-like C++ interface built on top of the alpaka library, which provides platform-independent parallel kernel acceleration. The primary goal of cupla is to allow developers to write parallel code in a way that is abstracted from specific hardware architectures, ensuring portability across a range of devices such as GPUs and CPUs. It achieves this by offering an API similar to NVIDIA's CUDA, which simplifies the management of accelerator devices, but instead uses alpaka as the backend for broader compatibility.

In terms of memory abstraction, cupla leverages alpaka's capabilities to handle memory transfers and allocations across different devices. Abstracting these low-level memory operations, allows developers to focus on optimizing their code for performance on various architectures without needing to modify the underlying memory management processes. This approach enables efficient utilization of diverse computing environments, ensuring single-source code portability across different accelerators, from NVIDIA or AMS GPUs to CPUs.

Related projects

alpaka

PIConGPU achieves hardware parallelization through the alpaka library, a C++17 tool for accelerator development. It offers performance portability across accelerators, supports CPUs and CUDA GPUs, and provides backend options for concurrent execution, streamlining parallelization without requiring CUDA or threading code. Its approach mirrors CUDA's grid-blocks-threads model for optimal hardware adaptation.

Logo of cupla
Keywords
Programming languages
  • C++ 88%
  • CMake 6%
  • Shell 3%
  • Python 2%
  • Other 1%
License
</>Source code

Participating organisations

Helmholtz-Zentrum Dresden-Rossendorf

Reference papers

Mentions

Contributors

RW
René Widera
Helmholtz-Zentrum Dresden-Rossendorf
SE
Simeon Ehrig
Helmholtz-Zentrum Dresden-Rossendorf

Related software

alpaka

AL

The alpaka library is a header-only C++17 abstraction framework designed for computing accelerator development. It enables developers to implement algorithms once and execute them across a range of platforms, including x86, ARM, and RISC-V CPUs, as well as accelerators from NVIDIA, AMD, and Intel.

Updated 1 week ago
74 34

PIConGPU

PI

PIConGPU is a relativistic Particle-in-Cell code running on graphic processing units as well as regular multi-core processors. It is Open Source und is freely available for download. It can be used to study plasmas with relativistic dynamics, solving the Maxwell-Vlasov system of equations.

Updated 2 weeks ago
3 11