Kokkos Core Kernels Package  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends
Classes | Public Types | Public Member Functions | Static Public Member Functions
Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace > Class Template Reference

Execution policy for parallel work over a league of teams of threads with explicit vector support. More...

#include <Kokkos_ExecPolicy.hpp>

List of all members.

Classes

struct  member_type
 Parallel execution of a functor calls the functor once with each member of the execution policy. More...

Public Types

typedef Impl::ExecutionPolicyTag kokkos_tag
 Concept tag.
typedef ExecSpace execution_space
 Execution space.

Public Member Functions

 TeamVectorPolicy (execution_space &, int league_size_request, int team_size_request)
 Construct policy with the given instance of the execution space.
 TeamVectorPolicy (int league_size_request, int team_size_request)
 Construct policy with the default instance of the execution space.
KOKKOS_INLINE_FUNCTION int league_size () const
 The actual league size (number of teams) of the policy.
KOKKOS_INLINE_FUNCTION int team_size () const
 The actual team size (number of threads per team) of the policy.

Static Public Member Functions

template<class FunctorType >
static int team_size_max (const FunctorType &)
 Query maximum team size for a given functor.

Detailed Description

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
class Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >

Execution policy for parallel work over a league of teams of threads with explicit vector support.

The work functor is called for each thread of each team such that the team's member threads are guaranteed to be concurrent.

The team's threads have access to team shared scratch memory and team collective operations.

If the WorkArgTag is non-void then the first calling argument of the work functor's parentheses operator is 'const WorkArgTag &'. This allows a functor to have multiple work member functions.

Definition at line 358 of file Kokkos_ExecPolicy.hpp.


Member Typedef Documentation

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
typedef Impl::ExecutionPolicyTag Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >::kokkos_tag

Concept tag.

Definition at line 368 of file Kokkos_ExecPolicy.hpp.

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
typedef ExecSpace Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >::execution_space

Execution space.

Definition at line 369 of file Kokkos_ExecPolicy.hpp.


Constructor & Destructor Documentation

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >::TeamVectorPolicy ( execution_space ,
int  league_size_request,
int  team_size_request 
)

Construct policy with the given instance of the execution space.

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >::TeamVectorPolicy ( int  league_size_request,
int  team_size_request 
)

Construct policy with the default instance of the execution space.


Member Function Documentation

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
template<class FunctorType >
static int Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >::team_size_max ( const FunctorType &  ) [static]

Query maximum team size for a given functor.

This size takes into account execution space concurrency limitations and scratch memory space limitations for reductions, team reduce/scan, and team shared memory.

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
KOKKOS_INLINE_FUNCTION int Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >::league_size ( ) const

The actual league size (number of teams) of the policy.

This may be smaller than the requested league size due to limitations of the execution space.

template<unsigned VectorLength, class Arg0 = void, class Arg1 = void, class ExecSpace = typename Impl::if_c< Impl::is_execution_space< Arg0 >::value , Arg0 , Kokkos::DefaultExecutionSpace >::type>
KOKKOS_INLINE_FUNCTION int Kokkos::TeamVectorPolicy< VectorLength, Arg0, Arg1, ExecSpace >::team_size ( ) const

The actual team size (number of threads per team) of the policy.

This may be smaller than the requested team size due to limitations of the execution space.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends