![]() |
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/kernel/KernelFunctionAttributes.hpp"#include "alpaka/kernel/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.
Classes | |
| struct | alpaka::KernelCfg< TAcc, TGridElemExtent, TThreadElemExtent > |
| Kernel start configuration to determine a valid work division. More... | |
Namespaces | |
| namespace | alpaka |
| The alpaka accelerator library. | |
| namespace | 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 , typename TThreadElemExtent , typename TKernelFnObj , typename... TArgs> | |
| ALPAKA_FN_HOST auto | alpaka::getValidWorkDiv (KernelCfg< TAcc, TGridElemExtent, TThreadElemExtent > const &kernelCfg, TDev const &dev, TKernelFnObj const &kernelFnObj, TArgs &&... args) -> WorkDivMembers< Dim< TAcc >, Idx< TAcc > > |
| template<typename TDim , typename TIdx > | |
| ALPAKA_FN_HOST auto | alpaka::isValidAccDevProps (AccDevProps< TDim, TIdx > const &accDevProps) -> bool |
| template<typename TWorkDiv , typename TDim , typename TIdx > | |
| ALPAKA_FN_HOST auto | alpaka::isValidWorkDiv (TWorkDiv const &workDiv, AccDevProps< TDim, TIdx > const &accDevProps) -> bool |
| Checks if the work division is supported. | |
| template<typename TAcc , typename TWorkDiv , typename TDim , typename TIdx > | |
| ALPAKA_FN_HOST auto | alpaka::isValidWorkDiv (TWorkDiv const &workDiv, AccDevProps< TDim, TIdx > const &accDevProps, KernelFunctionAttributes const &kernelFunctionAttributes) -> bool |
| Checks if the work division is supported. | |
| template<typename TAcc , typename TWorkDiv , typename TDev > | |
| ALPAKA_FN_HOST auto | alpaka::isValidWorkDiv (TWorkDiv const &workDiv, TDev const &dev) -> bool |
| Checks if the work division is supported by the device. | |
| template<typename TAcc , typename TWorkDiv , typename TDev , typename TKernelFnObj , typename... TArgs> | |
| ALPAKA_FN_HOST auto | alpaka::isValidWorkDiv (TWorkDiv const &workDiv, TDev const &dev, TKernelFnObj const &kernelFnObj, TArgs &&... args) -> bool |
| Checks if the work division is supported for the kernel on the device. | |
| 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. | |
| 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, TIdx kernelBlockThreadCountMax=static_cast< TIdx >(0u), bool blockThreadMustDivideGridThreadExtent=true, GridBlockExtentSubDivRestrictions gridBlockExtentSubDivRestrictions=GridBlockExtentSubDivRestrictions::Unrestricted) -> WorkDivMembers< TDim, TIdx > |
| Subdivides the given grid thread extent into blocks restricted by the maxima allowed. | |