alpaka
Abstraction Library for Parallel Kernel Acceleration
|
#include "alpaka/acc/Traits.hpp"
#include "alpaka/core/Assert.hpp"
#include "alpaka/core/Common.hpp"
#include "alpaka/core/Utility.hpp"
#include "alpaka/dev/Traits.hpp"
#include "alpaka/extent/Traits.hpp"
#include "alpaka/vec/Vec.hpp"
#include "alpaka/workdiv/WorkDivMembers.hpp"
#include <algorithm>
#include <array>
#include <cmath>
#include <functional>
#include <set>
#include <type_traits>
Go to the source code of this file.
Namespaces | |
alpaka | |
The alpaka accelerator library. | |
alpaka::detail | |
Enumerations | |
enum class | alpaka::GridBlockExtentSubDivRestrictions { alpaka::EqualExtent , alpaka::CloseToEqualExtent , alpaka::Unrestricted } |
The grid block extent subdivision restrictions. More... | |
Functions | |
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>> | |
ALPAKA_FN_HOST auto | alpaka::detail::allDivisorsLessOrEqual (T const &val, T const &maxDivisor) -> std::set< T > |
template<typename TAcc , typename TDev , typename TGridElemExtent = Vec<Dim<TAcc>, Idx<TAcc>>, typename TThreadElemExtent = Vec<Dim<TAcc>, Idx<TAcc>>> | |
ALPAKA_FN_HOST auto | alpaka::getValidWorkDiv ([[maybe_unused]] TDev const &dev, [[maybe_unused]] TGridElemExtent const &gridElemExtent=Vec< Dim< TAcc >, Idx< TAcc >>::ones(), [[maybe_unused]] TThreadElemExtent const &threadElemExtents=Vec< Dim< TAcc >, Idx< TAcc >>::ones(), [[maybe_unused]] bool blockThreadMustDivideGridThreadExtent=true, [[maybe_unused]] GridBlockExtentSubDivRestrictions gridBlockExtentSubDivRestrictions=GridBlockExtentSubDivRestrictions::Unrestricted) -> WorkDivMembers< Dim< TGridElemExtent >, Idx< TGridElemExtent >> |
template<typename TDim , typename TIdx > | |
ALPAKA_FN_HOST auto | alpaka::isValidAccDevProps (AccDevProps< TDim, TIdx > const &accDevProps) -> bool |
template<typename TDim , typename TIdx , typename TWorkDiv > | |
ALPAKA_FN_HOST auto | alpaka::isValidWorkDiv (AccDevProps< TDim, TIdx > const &accDevProps, TWorkDiv const &workDiv) -> bool |
template<typename TAcc , typename TDev , typename TWorkDiv > | |
ALPAKA_FN_HOST auto | alpaka::isValidWorkDiv (TDev const &dev, TWorkDiv const &workDiv) -> bool |
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>> | |
ALPAKA_FN_HOST auto | alpaka::detail::nextDivisorLowerOrEqual (T const ÷nd, T const &maxDivisor) -> T |
Finds the largest divisor where divident % divisor == 0. More... | |
template<typename TDim , typename TIdx > | |
ALPAKA_FN_HOST auto | alpaka::subDivideGridElems (Vec< TDim, TIdx > const &gridElemExtent, Vec< TDim, TIdx > const &threadElemExtent, AccDevProps< TDim, TIdx > const &accDevProps, bool blockThreadMustDivideGridThreadExtent=true, GridBlockExtentSubDivRestrictions gridBlockExtentSubDivRestrictions=GridBlockExtentSubDivRestrictions::Unrestricted) -> WorkDivMembers< TDim, TIdx > |
Subdivides the given grid thread extent into blocks restricted by the maxima allowed. More... | |