VTK-m  2.0
Classes | Static Public 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_CONT vtkm::Id BitFieldToUnorderedSet (const vtkm::cont::BitField &bits, vtkm::cont::ArrayHandle< Id, IndicesStorage > &indices)
 
static VTKM_CONT vtkm::Id CountSetBits (const vtkm::cont::BitField &bits)
 
template<typename T >
static VTKM_CONT void Copy (const vtkm::cont::ArrayHandle< T > &input, vtkm::cont::ArrayHandle< T > &output)
 
template<typename T , typename U , class CIn , class BinaryOperator >
static VTKM_CONT U Reduce (const vtkm::cont::ArrayHandle< T, CIn > &input, U initialValue, BinaryOperator binaryOperator)
 
template<typename T , typename U , class CIn >
static VTKM_CONT U Reduce (const vtkm::cont::ArrayHandle< T, CIn > &input, U initialValue)
 
template<typename T , class CIn , class COut , class BinaryOperator >
static VTKM_CONTScanExclusive (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 VTKM_CONTScanExclusive (const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output)
 
template<typename T , class CIn , class COut , class BinaryOperator >
static VTKM_CONTScanInclusive (const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output, BinaryOperator binaryOperator)
 
template<typename T , class CIn , class COut >
static VTKM_CONTScanInclusive (const vtkm::cont::ArrayHandle< T, CIn > &input, vtkm::cont::ArrayHandle< T, COut > &output)
 
template<typename WType , typename IType >
static VTKM_CONT void ScheduleTask (vtkm::exec::kokkos::internal::TaskBasic1D< WType, IType > &functor, vtkm::Id numInstances)
 
template<typename WType , typename IType >
static VTKM_CONT void ScheduleTask (vtkm::exec::kokkos::internal::TaskBasic3D< WType, IType > &functor, vtkm::Id3 rangeMax)
 
template<class Functor >
static VTKM_CONT void Schedule (Functor functor, vtkm::Id numInstances)
 
template<class Functor >
static VTKM_CONT void Schedule (Functor functor, const vtkm::Id3 &rangeMax)
 
template<typename T >
static VTKM_CONT void Sort (vtkm::cont::ArrayHandle< T > &values, vtkm::SortLess comp)
 
static VTKM_CONT void Synchronize ()
 

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_CONT_EXPORT vtkm::exec::internal::ErrorMessageBuffer GetErrorMessageBufferInstance ()
 
static VTKM_CONT_EXPORT void CheckForErrors ()
 
template<typename ArrayHandle , typename BinaryOperator , typename ResultType >
static VTKM_CONT ResultType ReduceImpl (const ArrayHandle &input, BinaryOperator binaryOperator, ResultType initialValue, std::false_type)
 
template<typename ArrayHandle , typename BinaryOperator , typename ResultType >
static VTKM_CONT ResultType ReduceImpl (const ArrayHandle &input, BinaryOperator binaryOperator, ResultType initialValue, std::true_type)
 
template<typename T , typename StorageIn , typename StorageOut , typename BinaryOperator >
static VTKM_CONTScanExclusiveImpl (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 VTKM_CONTScanExclusiveImpl (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 VTKM_CONTScanInclusiveImpl (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 VTKM_CONTScanInclusiveImpl (const vtkm::cont::ArrayHandle< T, StorageIn > &input, vtkm::cont::ArrayHandle< T, StorageOut > &output, BinaryOperator binaryOperator, std::true_type)
 
template<typename T >
static VTKM_CONT void SortImpl (vtkm::cont::ArrayHandle< T > &values, vtkm::SortLess, std::true_type)
 
template<typename T >
static VTKM_CONT 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

using vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::Superclass = vtkm::cont::internal::DeviceAdapterAlgorithmGeneral< DeviceAdapterAlgorithm<vtkm::cont::DeviceAdapterTagKokkos>, vtkm::cont::DeviceAdapterTagKokkos>
private

◆ 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_CONT vtkm::Id vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::BitFieldToUnorderedSet ( const vtkm::cont::BitField bits,
vtkm::cont::ArrayHandle< Id, IndicesStorage > &  indices 
)
inlinestatic

◆ CheckForErrors()

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

◆ Copy()

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

◆ CountSetBits()

static VTKM_CONT vtkm::Id vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::CountSetBits ( const vtkm::cont::BitField bits)
inlinestatic

◆ GetErrorMessageBufferInstance()

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

◆ Reduce() [1/2]

template<typename T , typename U , class CIn >
static VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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 VTKM_CONT 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/2]

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

◆ Schedule() [2/2]

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

◆ ScheduleTask() [1/2]

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

◆ ScheduleTask() [2/2]

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

◆ Sort()

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

◆ SortImpl() [1/2]

template<typename T >
static VTKM_CONT 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 VTKM_CONT void vtkm::cont::DeviceAdapterAlgorithm< vtkm::cont::DeviceAdapterTagKokkos >::SortImpl ( vtkm::cont::ArrayHandle< T > &  values,
vtkm::SortLess  ,
std::true_type   
)
inlinestaticprivate

◆ Synchronize()

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

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