42 alpaka::concepts::Vector T_NumFrames,
43 alpaka::concepts::Vector<
typename T_NumFrames::type, T_NumFrames::dim()> T_FrameExtents,
44 alpaka::concepts::Executor T_Executor = alpaka::exec::AnyExecutor>
58 T_NumFrames
const& numFrames,
59 T_FrameExtents
const& frameExtent,
60 T_Executor executor = T_Executor{})
61 : m_numFrames(numFrames)
62 , m_frameExtents(frameExtent)
64 alpaka::unused(executor);
67 [[nodiscard]]
static constexpr T_Executor
getExecutor() noexcept
79 return m_frameExtents;
82 [[nodiscard]]
static consteval uint32_t
dim()
84 return T_FrameExtents::dim();
88 template<alpaka::concepts::VectorOrScalar T_NumFrames, alpaka::concepts::VectorOrScalar T_FrameExtents>
98 FrameSpec(T_NumFrames
const&, T_FrameExtents
const&, T_Executor)
129 template<
typename T,
typename T_IndexType = alpaka::NotRequired, u
int32_t T_dim = alpaka::notRequiredDim>
132 && (std::same_as<T_IndexType, alpaka::NotRequired> || std::same_as<typename T::index_type, T_IndexType>)
145 return s <<
"FrameSpec{ frames=" << d.getNumFrames() <<
", frameExtent=" << d.getFrameExtents() <<
" }";
Concept to check for an executor.
Concept to check if a type is a vector or scalar variable.
Concept to check if a type is a vector.
Concept to check if a type is a FrameSpec.
Concept to check if a type is a ThreadSpec or a FrameSpec.
Functionality which is usable on the host CPU controller thread.
std::ostream & operator<<(std::ostream &s, DeviceProperties const &p)
FrameSpec(T_NumFrames const &, T_FrameExtents const &) -> FrameSpec< alpaka::trait::getVec_t< T_NumFrames >, alpaka::trait::getVec_t< T_FrameExtents >, alpaka::exec::AnyExecutor >
constexpr bool isThreadSpec_v
constexpr bool isFrameSpec_v
typename GetVec< T >::type getVec_t
constexpr uint32_t notRequiredDim
Automatic executor selection.
Device/Api-agnostic description of the logical parallelism exposed to a kernel.
T_FrameExtents FrameExtentsVecType
constexpr FrameExtentsVecType const & getFrameExtents() const noexcept
static consteval uint32_t dim()
static constexpr T_Executor getExecutor() noexcept
constexpr FrameSpec(T_NumFrames const &numFrames, T_FrameExtents const &frameExtent, T_Executor executor=T_Executor{})
T_NumFrames NumFramesVecType
constexpr NumFramesVecType const & getNumFrames() const noexcept
typename T_NumFrames::type index_type