Popularity
2.0
Stable
Activity
6.5
-
17
10
15

Programming language: C++
Tags: Concurrency    
Latest version: v0.2.0

cupla alternatives and similar libraries

Based on the "Concurrency" category

Do you think we are missing an alternative of cupla or a related project?

Add another 'Concurrency' Library

README

cupla - C++ User interface for the Platform independent Library Alpaka

Build Status dev

[cupla Release](doc/logo/cupla_logo_320x210.png)

cupla [qχɑpˈlɑʔ] 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 backend for cupla.

Please keep in mind that a first, ["find & replace"](doc/PortingGuide.md) port from CUDA to cupla(x86) will result in rather bad performance. In order to reach decent performance on x86 systems you just need to add the alpaka [element level](doc/TuningGuide.md) to your kernels.

(Read as: add some tiling to your CUDA kernels by letting the same thread compute a fixed number of elements (N=4..16) instead of just computing one element per thread. Also, make the number of elements in your tiling a compile-time constant and your CUDA code (N=1) will just stay with the very same performance while adding single-source performance portability for, e.g., x86 targets).

Software License

cupla is licensed under LGPLv3 or later.

For more information see [LICENSE.md](LICENSE.md).

Dependencies

  • cmake 3.11.4
  • alpaka 0.4.0
    • alpaka is loaded as git subtree within cupla, see [INSTALL.md](INSTALL.md)

Usage

  • See our notes in [INSTALL.md](INSTALL.md).
  • Checkout the [guide](doc/PortingGuide.md) how to port your project.
  • Checkout the [tuning guide](doc/TuningGuide.md) for a step further to performance portable code.

[cupla can be used as a header-only library and without the CMake build system](doc/ConfigurationHeader.md)

Authors

Maintainers* and Core Developers

Former Members, Contributions and Thanks

Trademarks Disclaimer

All product names and trademarks are the property of their respective owners. CUDA® is a trademark of the NVIDIA Corporation.


*Note that all licence references and agreements mentioned in the cupla README section above are relevant to that project's source code only.