VTK-m  2.1
Classes | Static Public Member Functions | Static Protected Member Functions | Private Types | Static Private Member Functions | List of all members
vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos > Struct Reference

#include <DeviceAdapterAlgorithmKokkos.h>

Inheritance diagram for vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >:

Classes

class  KokkosReduceFunctor
 
class  ReduceOperator
 
class  ScanExclusiveOperator
 
class  ScanInclusiveOperator
 
struct  UseKokkosReduce
 
struct  UseKokkosReduceP1
 
struct  UseKokkosReduceP1< true, BinaryOperator, ResultType >
 

Static Public Member Functions

template<typename IndicesStorage >
static vtkm::Id BitFieldToUnorderedSet (const vtkm::cont::BitField &bits, vtkm::cont::ArrayHandle< Id, IndicesStorage > &indices)
 
static vtkm::Id CountSetBits (const vtkm::cont::BitField &bits)
 
template<typename T >
static void Copy (const vtkm::cont::ArrayHandle< T > &input, vtkm::cont::ArrayHandle< T > &output)
 
template<typename T , typename U , class CIn , class BinaryOperator >
static U Reduce (const vtkm::cont::ArrayHandle< T, CIn > &input, U initialValue, BinaryOperator binaryOperator)
 
template<typename T , typename U , class CIn >
static U Reduce (const vtkm::cont::ArrayHandle< T, CIn > &input, U initialValue)
 
template<typename T , class CIn , class COut , class BinaryOperator >
static T ScanExclusive (const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output, BinaryOperator binaryOperator, const T &initialValue)
 
template<typename T , class CIn , class COut >
static T ScanExclusive (const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output)
 
template<typename T , class CIn , class COut , class BinaryOperator >
static T ScanInclusive (const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output, BinaryOperator binaryOperator)
 
template<typename T , class CIn , class COut >
static T ScanInclusive (const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output)
 
template<typename WType , typename IType , typename Hints >
static void ScheduleTask (vtkm::exec::kokkos::internal::TaskBasic1D< WType, IType, Hints > &functor, vtkm::Id numInstances)
 
template<typename WType , typename IType , typename Hints >
static void ScheduleTask (vtkm::exec::kokkos::internal::TaskBasic3D< WType, IType, Hints > &functor, vtkm::Id3 rangeMax)
 
template<typename Hints , typename Functor >
static void Schedule (Hints, Functor functor, vtkm::Id numInstances)
 
template<typename FunctorType >
static void Schedule (FunctorType &&functor, vtkm::Id numInstances)
 
template<typename Hints , typename Functor >
static void Schedule (Hints, Functor functor, const vtkm::Id3 &rangeMax)
 
template<typename FunctorType >
static void Schedule (FunctorType &&functor, vtkm::Id3 rangeMax)
 
template<typename T >
static void Sort (vtkm::cont::ArrayHandle< T > &values, vtkm::SortLess comp)
 
template<typename T , typename U , class StorageT , class StorageU >
static void SortByKey (vtkm::cont::ArrayHandle< T, StorageT > &keys, vtkm::cont::ArrayHandle< U, StorageU > &values)
 
template<typename T , typename U , class StorageT , class StorageU , class BinaryCompare >
static void SortByKey (vtkm::cont::ArrayHandle< T, StorageT > &keys, vtkm::cont::ArrayHandle< U, StorageU > &values, BinaryCompare binary_compare)
 
static void Synchronize ()
 

Static Protected Member Functions

template<typename T , typename U , class StorageT , class StorageU , class BinaryCompare , typename ValidKeys , typename ValidValues >
static void SortByKeyImpl (vtkm::cont::ArrayHandle< T, StorageT > &keys, vtkm::cont::ArrayHandle< U, StorageU > &values, BinaryCompare binary_compare, ValidKeys, ValidValues)
 

Private Types

using Superclass = vtkm::cont::internal::DeviceAdapterAlgorithmGeneral< DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >, vtkm::cont::DeviceAdapterTagKokkos >
 
template<typename BinaryOperator , typename ArrayPortal , typename ResultType >
using ReduceFunctor = KokkosReduceFunctor< BinaryOperator, ReduceOperator< ArrayPortal, BinaryOperator, ResultType >, ResultType >
 
template<typename BinaryOperator , typename ResultType >
using UseKokkosScan = UseKokkosReduce< BinaryOperator, ResultType >
 
template<typename BinaryOperator , typename T , typename StorageIn , typename StorageOut >
using ScanExclusiveFunctor = KokkosReduceFunctor< BinaryOperator, ScanExclusiveOperator< T, StorageIn, StorageOut, BinaryOperator >, T >
 
template<typename BinaryOperator , typename T , typename StorageIn , typename StorageOut >
using ScanInclusiveFunctor = KokkosReduceFunctor< BinaryOperator, ScanInclusiveOperator< T, StorageIn, StorageOut, BinaryOperator >, T >
 

Static Private Member Functions

static vtkm::exec::internal::ErrorMessageBuffer GetErrorMessageBufferInstance ()
 
static void CheckForErrors ()
 
template<typename ArrayHandle , typename BinaryOperator , typename ResultType >
static ResultType ReduceImpl (const ArrayHandle &input, BinaryOperator binaryOperator, ResultType initialValue, std::false_type)
 
template<typename ArrayHandle , typename BinaryOperator , typename ResultType >
static ResultType ReduceImpl (const ArrayHandle &input, BinaryOperator binaryOperator, ResultType initialValue, std::true_type)
 
template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T ScanExclusiveImpl (const vtkm::cont::ArrayHandle< T, StorageIn > &input, vtkm::cont::ArrayHandle< T, StorageOut > &output, BinaryOperator binaryOperator, const T &initialValue, std::false_type)
 
template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T ScanExclusiveImpl (const vtkm::cont::ArrayHandle< T, StorageIn > &input, vtkm::cont::ArrayHandle< T, StorageOut > &output, BinaryOperator binaryOperator, const T &initialValue, std::true_type)
 
template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T ScanInclusiveImpl (const vtkm::cont::ArrayHandle< T, StorageIn > &input, vtkm::cont::ArrayHandle< T, StorageOut > &output, BinaryOperator binaryOperator, std::false_type)
 
template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T ScanInclusiveImpl (const vtkm::cont::ArrayHandle< T, StorageIn > &input, vtkm::cont::ArrayHandle< T, StorageOut > &output, BinaryOperator binaryOperator, std::true_type)
 
template<typename T >
static void SortImpl (vtkm::cont::ArrayHandle< T > &values, vtkm::SortLess, std::true_type)
 
template<typename T >
static void SortImpl (vtkm::cont::ArrayHandle< T > &values, vtkm::SortLess comp, std::false_type)
 

Member Typedef Documentation

◆ ReduceFunctor

template<typename BinaryOperator , typename ArrayPortal , typename ResultType >
using vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ReduceFunctor = KokkosReduceFunctor<BinaryOperator, ReduceOperator<ArrayPortal, BinaryOperator, ResultType>, ResultType>
private

◆ ScanExclusiveFunctor

template<typename BinaryOperator , typename T , typename StorageIn , typename StorageOut >
using vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanExclusiveFunctor = KokkosReduceFunctor<BinaryOperator, ScanExclusiveOperator<T, StorageIn, StorageOut, BinaryOperator>, T>
private

◆ ScanInclusiveFunctor

template<typename BinaryOperator , typename T , typename StorageIn , typename StorageOut >
using vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanInclusiveFunctor = KokkosReduceFunctor<BinaryOperator, ScanInclusiveOperator<T, StorageIn, StorageOut, BinaryOperator>, T>
private

◆ Superclass

◆ UseKokkosScan

template<typename BinaryOperator , typename ResultType >
using vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::UseKokkosScan = UseKokkosReduce<BinaryOperator, ResultType>
private

Member Function Documentation

◆ BitFieldToUnorderedSet()

template<typename IndicesStorage >
static vtkm::Id vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::BitFieldToUnorderedSet ( const vtkm::cont::BitField bits,
vtkm::cont::ArrayHandle< Id, IndicesStorage > &  indices 
)
inlinestatic

◆ CheckForErrors()

static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::CheckForErrors ( )
staticprivate

◆ Copy()

template<typename T >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Copy ( const vtkm::cont::ArrayHandle< T > &  input,
vtkm::cont::ArrayHandle< T > &  output 
)
inlinestatic

◆ CountSetBits()

◆ GetErrorMessageBufferInstance()

static vtkm::exec::internal::ErrorMessageBuffer vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::GetErrorMessageBufferInstance ( )
staticprivate

◆ Reduce() [1/2]

template<typename T , typename U , class CIn >
static U vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Reduce ( const vtkm::cont::ArrayHandle< T, CIn > &  input,
U  initialValue 
)
inlinestatic

◆ Reduce() [2/2]

template<typename T , typename U , class CIn , class BinaryOperator >
static U vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Reduce ( const vtkm::cont::ArrayHandle< T, CIn > &  input,
U  initialValue,
BinaryOperator  binaryOperator 
)
inlinestatic

◆ ReduceImpl() [1/2]

template<typename ArrayHandle , typename BinaryOperator , typename ResultType >
static ResultType vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ReduceImpl ( const ArrayHandle input,
BinaryOperator  binaryOperator,
ResultType  initialValue,
std::false_type   
)
inlinestaticprivate

◆ ReduceImpl() [2/2]

template<typename ArrayHandle , typename BinaryOperator , typename ResultType >
static ResultType vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ReduceImpl ( const ArrayHandle input,
BinaryOperator  binaryOperator,
ResultType  initialValue,
std::true_type   
)
inlinestaticprivate

◆ ScanExclusive() [1/2]

template<typename T , class CIn , class COut >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanExclusive ( const vtkm::cont::ArrayHandle< T, CIn > &  input,
vtkm::cont::ArrayHandle< T, COut > &  output 
)
inlinestatic

◆ ScanExclusive() [2/2]

template<typename T , class CIn , class COut , class BinaryOperator >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanExclusive ( const vtkm::cont::ArrayHandle< T, CIn > &  input,
vtkm::cont::ArrayHandle< T, COut > &  output,
BinaryOperator  binaryOperator,
const T &  initialValue 
)
inlinestatic

◆ ScanExclusiveImpl() [1/2]

template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanExclusiveImpl ( const vtkm::cont::ArrayHandle< T, StorageIn > &  input,
vtkm::cont::ArrayHandle< T, StorageOut > &  output,
BinaryOperator  binaryOperator,
const T &  initialValue,
std::false_type   
)
inlinestaticprivate

◆ ScanExclusiveImpl() [2/2]

template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanExclusiveImpl ( const vtkm::cont::ArrayHandle< T, StorageIn > &  input,
vtkm::cont::ArrayHandle< T, StorageOut > &  output,
BinaryOperator  binaryOperator,
const T &  initialValue,
std::true_type   
)
inlinestaticprivate

◆ ScanInclusive() [1/2]

template<typename T , class CIn , class COut >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanInclusive ( const vtkm::cont::ArrayHandle< T, CIn > &  input,
vtkm::cont::ArrayHandle< T, COut > &  output 
)
inlinestatic

◆ ScanInclusive() [2/2]

template<typename T , class CIn , class COut , class BinaryOperator >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanInclusive ( const vtkm::cont::ArrayHandle< T, CIn > &  input,
vtkm::cont::ArrayHandle< T, COut > &  output,
BinaryOperator  binaryOperator 
)
inlinestatic

◆ ScanInclusiveImpl() [1/2]

template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanInclusiveImpl ( const vtkm::cont::ArrayHandle< T, StorageIn > &  input,
vtkm::cont::ArrayHandle< T, StorageOut > &  output,
BinaryOperator  binaryOperator,
std::false_type   
)
inlinestaticprivate

◆ ScanInclusiveImpl() [2/2]

template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static T vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScanInclusiveImpl ( const vtkm::cont::ArrayHandle< T, StorageIn > &  input,
vtkm::cont::ArrayHandle< T, StorageOut > &  output,
BinaryOperator  binaryOperator,
std::true_type   
)
inlinestaticprivate

◆ Schedule() [1/4]

template<typename FunctorType >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Schedule ( FunctorType &&  functor,
vtkm::Id  numInstances 
)
inlinestatic

◆ Schedule() [2/4]

template<typename FunctorType >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Schedule ( FunctorType &&  functor,
vtkm::Id3  rangeMax 
)
inlinestatic

◆ Schedule() [3/4]

template<typename Hints , typename Functor >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Schedule ( Hints  ,
Functor  functor,
const vtkm::Id3 rangeMax 
)
inlinestatic

◆ Schedule() [4/4]

template<typename Hints , typename Functor >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Schedule ( Hints  ,
Functor  functor,
vtkm::Id  numInstances 
)
inlinestatic

◆ ScheduleTask() [1/2]

template<typename WType , typename IType , typename Hints >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScheduleTask ( vtkm::exec::kokkos::internal::TaskBasic1D< WType, IType, Hints > &  functor,
vtkm::Id  numInstances 
)
inlinestatic

◆ ScheduleTask() [2/2]

template<typename WType , typename IType , typename Hints >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::ScheduleTask ( vtkm::exec::kokkos::internal::TaskBasic3D< WType, IType, Hints > &  functor,
vtkm::Id3  rangeMax 
)
inlinestatic

◆ Sort()

template<typename T >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Sort ( vtkm::cont::ArrayHandle< T > &  values,
vtkm::SortLess  comp 
)
inlinestatic

◆ SortByKey() [1/2]

template<typename T , typename U , class StorageT , class StorageU >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::SortByKey ( vtkm::cont::ArrayHandle< T, StorageT > &  keys,
vtkm::cont::ArrayHandle< U, StorageU > &  values 
)
inlinestatic

◆ SortByKey() [2/2]

template<typename T , typename U , class StorageT , class StorageU , class BinaryCompare >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::SortByKey ( vtkm::cont::ArrayHandle< T, StorageT > &  keys,
vtkm::cont::ArrayHandle< U, StorageU > &  values,
BinaryCompare  binary_compare 
)
inlinestatic

◆ SortByKeyImpl()

template<typename T , typename U , class StorageT , class StorageU , class BinaryCompare , typename ValidKeys , typename ValidValues >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::SortByKeyImpl ( vtkm::cont::ArrayHandle< T, StorageT > &  keys,
vtkm::cont::ArrayHandle< U, StorageU > &  values,
BinaryCompare  binary_compare,
ValidKeys  ,
ValidValues   
)
inlinestaticprotected

◆ SortImpl() [1/2]

template<typename T >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::SortImpl ( vtkm::cont::ArrayHandle< T > &  values,
vtkm::SortLess  comp,
std::false_type   
)
inlinestaticprivate

◆ SortImpl() [2/2]

template<typename T >
static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::SortImpl ( vtkm::cont::ArrayHandle< T > &  values,
vtkm::SortLess  ,
std::true_type   
)
inlinestaticprivate

◆ Synchronize()

static void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Synchronize ( )
inlinestatic

The documentation for this struct was generated from the following file: