Abstraction Library for Parallel Kernel Acceleration :llama:
This release features small additions, changes, and fixes, including:
Warp function support for Shuff-Up, Down, and Xor.
Named access to vector components via .x(), .y(), ...
.
CMake's native HIP support is used to improve the compatibility with future HIP updates.
CMake presets for alpaka backends simplify the integration into your favorite IDE.
alpaka-ls
helps you to see all available backends in your system.
View the full changelog here.
This release features countless small additions, changes and fixes, including:
std::mdspan
.View the full changelog here.
This release features multiple new major additions:
View the full changelog here.
This release features the new portable Philox-based random number generator. In addition there are many more smaller features and compatibility changes, the most notable being:
experimental
namespace in which we will try out unstable features. The first experimental feature is an abstraction for memory access called accessor
.alpaka::alpaka
target no longer annoys users with alpaka-internal warnings.View the full changelog here.
This release features the new alpaka intrinsic warp::shfl
(and an accordingly updated cheat sheet). Apart from that we mostly focused on maintenance and convenience changes:
-ffast-math
by default.See the full changelog here.
This release fixes various bugs and changes the interface for configuring the OpenMP scheduler. A critical bug in the shared memory implementation for CPU backends is fixed, therefore version 0.6.0 should no longer be used. An overview of all changes can be found in the Changelog.
This release adds two new backends: OpenMP 5 target offload and OpenACC.
We improved useability of alpaka API by flattening the namespace hierarchies and making some renamings. A full list of API changes is avaiable in the changelog. New features include support for warp voting functions, setting schedule for OpenMP2Blocks backend and simplified interfaces for atomic functions.
For cmake-based builds, we no longer automatically enable all available backends. Now a user has to explicitly enable the backends to be used.
The readthedocs documentation was extended with a cheatsheet and support for Doxygen.
This release is adding compatibility to the latest CUDA releases up to 11.2. The HIP backend is now more stable and supports HIP 3.5+. We recommend using the latest HIP version to benefit from its fast improvements.
We fixed many bugs and improved support for Intel C++ compiler.
Compatibility Changes:
Bug Fixes:
New Features:
Thanks to Sergei Bastrakov, Simeon Ehrig, Axel Huebl, Jeffrey Kelling, Jakob Krude, Mutsuo Saito, Jan Stephan, Matthias Werner, René Widera, Benjamin Worpitz for contributions to this release!
Compatibility Changes:
Bug Fixes:
ALPAKA_ACC_GPU_CUDA_ONLY_MODE
anymoreNew Features:
ALPAKA_CXX_STANDARD
CMake option which allows to select the C++ standard to be usedALPAKA_CUDA_NVCC_SEPARABLE_COMPILATION
option to enable separable compilation for nvccALPAKA_CUDA_NVCC_EXPT_EXTENDED_LAMBDA
and ALPAKA_CUDA_NVCC_EXPT_RELAXED_CONSTEXPR
CMake options to enable/disable those nvcc options (they were always ON before)alpaka/standalone/GpuCudaRt.h
, ...) which set the backend definessincos
math function implementationsassert
with ALPAKA_ASSERT
BOOST_VERIFY
by ALPAKA_CHECK
and returned success from all test kernelsalpaka::ignore_unused
as replacement for boost::ignore_unused
Breaking changes:
Queue*Async
to Queue*NonBlocking
and Queue*Sync
to Queue*Blocking
alpaka::size::Size
to alpaka::idx::Idx
, alpaka::size::SizeType
to alpaka::idx::IdxType
(and TSize
to TIdx
internally)ALPAKA_FN_ACC_NO_CUDA
by ALPAKA_FN_HOST
ALPAKA_FN_ACC_CUDA_ONLY
by direct usage of __device__
ALPAKA_STATIC_DEV_MEM_CONSTANT
to ALPAKA_STATIC_ACC_MEM_CONSTANT
and ALPAKA_STATIC_DEV_MEM_GLOBAL
to ALPAKA_STATIC_ACC_MEM_GLOBAL
alpaka::kernel::createTaskExec
to alpaka::kernel::createTaskKernel
QueueCpuOmp2CollectiveImpl
*Stl
suffix to *StdLib
BOOST_ARCH_CUDA_DEVICE
to BOOST_ARCH_PTX
alpaka/exec/
have been moved to alpaka/kernel/
and the files and classes have been renamed from Exec*
to TaskKernel*
. This should not affect users of alpaka but will affect extensions.