CMS 3D CMS Logo

Classes | Namespaces | Functions | Variables
workdivision.h File Reference
#include <algorithm>
#include <cstddef>
#include <type_traits>
#include <alpaka/alpaka.hpp>
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"

Go to the source code of this file.

Classes

struct  cms::alpakatools::detail::UniformElementsND< TAcc, typename >::at_end_t
 
class  cms::alpakatools::detail::IndependentGroupElementsAlong< TAcc, Dim, typename >::const_iterator
 
class  cms::alpakatools::detail::IndependentGroupsAlong< TAcc, Dim, typename >::const_iterator
 
class  cms::alpakatools::detail::UniformGroupElementsAlong< TAcc, Dim, typename >::const_iterator
 
class  cms::alpakatools::detail::UniformGroupsAlong< TAcc, Dim, typename >::const_iterator
 
class  cms::alpakatools::detail::UniformElementsND< TAcc, typename >::const_iterator
 
class  cms::alpakatools::detail::UniformElementsAlong< TAcc, Dim, typename >::const_iterator
 
struct  cms::alpakatools::ElementIndex
 
class  cms::alpakatools::detail::IndependentGroupElementsAlong< TAcc, Dim, typename >
 
class  cms::alpakatools::detail::IndependentGroupsAlong< TAcc, Dim, typename >
 
struct  cms::alpakatools::requires_single_thread_per_block< TAcc, typename >
 
class  cms::alpakatools::detail::UniformElementsAlong< TAcc, Dim, typename >
 
class  cms::alpakatools::detail::UniformElementsND< TAcc, typename >
 
class  cms::alpakatools::detail::UniformGroupElementsAlong< TAcc, Dim, typename >
 
class  cms::alpakatools::detail::UniformGroupsAlong< TAcc, Dim, typename >
 

Namespaces

 cms::alpakatools
 
 cms::alpakatools::detail
 

Functions

constexpr Idx cms::alpakatools::divide_up_by (Idx value, Idx divisor)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value == 1>>
ALPAKA_FN_ACC auto cms::alpakatools::independent_group_elements (TAcc const &acc, TArgs... args)
 
template<typename TAcc , std::size_t Dim, typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value >= Dim>
ALPAKA_FN_ACC auto cms::alpakatools::independent_group_elements_along (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 0>
ALPAKA_FN_ACC auto cms::alpakatools::independent_group_elements_x (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 1>
ALPAKA_FN_ACC auto cms::alpakatools::independent_group_elements_y (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 2>
ALPAKA_FN_ACC auto cms::alpakatools::independent_group_elements_z (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value == 1>>
ALPAKA_FN_ACC auto cms::alpakatools::independent_groups (TAcc const &acc, TArgs... args)
 
template<typename TAcc , std::size_t Dim, typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value >= Dim>
ALPAKA_FN_ACC auto cms::alpakatools::independent_groups_along (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 0>
ALPAKA_FN_ACC auto cms::alpakatools::independent_groups_x (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 1>
ALPAKA_FN_ACC auto cms::alpakatools::independent_groups_y (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 2>
ALPAKA_FN_ACC auto cms::alpakatools::independent_groups_z (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value == 1>>
WorkDiv< Dim1Dcms::alpakatools::make_workdiv (Idx blocks, Idx elements)
 
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
WorkDiv< alpaka::Dim< TAcc > > cms::alpakatools::make_workdiv (const Vec< alpaka::Dim< TAcc >> &blocks, const Vec< alpaka::Dim< TAcc >> &elements)
 
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
ALPAKA_FN_ACC constexpr bool cms::alpakatools::once_per_block (TAcc const &acc)
 
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
ALPAKA_FN_ACC constexpr bool cms::alpakatools::once_per_grid (TAcc const &acc)
 
constexpr Idx cms::alpakatools::round_up_by (Idx value, Idx divisor)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value == 1>>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_elements (TAcc const &acc, TArgs... args)
 
template<typename TAcc , std::size_t Dim, typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value >= Dim>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_elements_along (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 0>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_elements_nd (TAcc const &acc)
 
template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 0>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_elements_nd (TAcc const &acc, alpaka::Vec< alpaka::Dim< TAcc >, Idx > extent)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 0>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_elements_x (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 1>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_elements_y (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 2>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_elements_z (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value == 1>>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_group_elements (TAcc const &acc, TArgs... args)
 
template<typename TAcc , std::size_t Dim, typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value >= Dim>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_group_elements_along (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 0>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_group_elements_x (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 1>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_group_elements_y (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 2>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_group_elements_z (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value == 1>>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_groups (TAcc const &acc, TArgs... args)
 
template<typename TAcc , std::size_t Dim, typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and alpaka::Dim<TAcc>::value >= Dim>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_groups_along (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 0>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_groups_x (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 1>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_groups_y (TAcc const &acc, TArgs... args)
 
template<typename TAcc , typename... TArgs, typename = std::enable_if_t<alpaka::isAccelerator<TAcc> and (alpaka::Dim<TAcc>::value > 2>
ALPAKA_FN_ACC auto cms::alpakatools::uniform_groups_z (TAcc const &acc, TArgs... args)
 

Variables

template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
constexpr bool cms::alpakatools::requires_single_thread_per_block_v = requires_single_thread_per_block<TAcc>::value