ReferenceExecutor Class Reference

ReferenceExecutor Class Reference#

Reference API: gko::ReferenceExecutor Class Reference
Reference API

#include <ginkgo/core/base/executor.hpp>

Inheritance diagram for gko::ReferenceExecutor:
[legend]

Public Member Functions

scoped_device_id_guard get_scoped_device_id_guard () const override
 
std::string get_description () const override
 
void run (const Operation &op) const override
 
virtual void run (const Operation &op) const=0
 
template<typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void run (const ClosureOmp &op_omp, const ClosureCuda &op_cuda, const ClosureHip &op_hip, const ClosureDpcpp &op_dpcpp) const
 
template<typename ClosureReference , typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void run (std::string name, const ClosureReference &op_ref, const ClosureOmp &op_omp, const ClosureCuda &op_cuda, const ClosureHip &op_hip, const ClosureDpcpp &op_dpcpp) const
 
- Public Member Functions inherited from gko::OmpExecutor
std::shared_ptr< Executorget_master () noexcept override
 
std::shared_ptr< const Executorget_master () const noexcept override
 
void synchronize () const override
 
int get_num_cores () const
 
int get_num_threads_per_core () const
 
template<typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void run (const ClosureOmp &op_omp, const ClosureCuda &op_cuda, const ClosureHip &op_hip, const ClosureDpcpp &op_dpcpp) const
 
template<typename ClosureReference , typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void run (std::string name, const ClosureReference &op_ref, const ClosureOmp &op_omp, const ClosureCuda &op_cuda, const ClosureHip &op_hip, const ClosureDpcpp &op_dpcpp) const
 

Static Public Member Functions

static std::shared_ptr< ReferenceExecutorcreate (std::shared_ptr< CpuAllocatorBase > alloc=std::make_shared< CpuAllocator >())
 
- Static Public Member Functions inherited from gko::OmpExecutor
static std::shared_ptr< OmpExecutorcreate (std::shared_ptr< CpuAllocatorBase > alloc=std::make_shared< CpuAllocator >())
 
static int get_num_omp_threads ()
 

Protected Member Functions

 ReferenceExecutor (std::shared_ptr< CpuAllocatorBase > alloc)
 
void populate_exec_info (const machine_topology *) override
 
bool verify_memory_from (const Executor *src_exec) const override
 
virtual bool verify_memory_to (const ReferenceExecutor *other) const override
 
virtual bool verify_memory_to (const OmpExecutor *other) const override
 
virtual bool verify_memory_to (const DpcppExecutor *other) const override
 
virtual bool verify_memory_to (const CudaExecutor *other) const override
 
virtual bool verify_memory_to (const HipExecutor *other) const override
 
- Protected Member Functions inherited from gko::OmpExecutor
 OmpExecutor (std::shared_ptr< CpuAllocatorBase > alloc)
 
void * raw_alloc (size_type size) const override
 
void raw_free (void *ptr) const noexcept override
 
void raw_copy_to (const OmpExecutor *dest_exec, size_type n_bytes, const void *src_ptr, void *dest_ptr) const override
 
void raw_copy_to (const HipExecutor *dest_exec, size_type n_bytes, const void *src_ptr, void *dest_ptr) const override
 
void raw_copy_to (const DpcppExecutor *dest_exec, size_type n_bytes, const void *src_ptr, void *dest_ptr) const override
 
void raw_copy_to (const CudaExecutor *dest_exec, size_type n_bytes, const void *src_ptr, void *dest_ptr) const override
 

Additional Inherited Members

- Protected Attributes inherited from gko::OmpExecutor
std::shared_ptr< CpuAllocatorBasealloc_
 

Detailed Description

This is a specialization of the OmpExecutor, which runs the reference implementations of the kernels used for debugging purposes.

Member Function Documentation

◆ get_description()

std::string gko::ReferenceExecutor::get_description ( ) const
inlineoverridevirtual
Returns
a textual representation of the executor and its device.

Reimplemented from gko::OmpExecutor.

◆ get_scoped_device_id_guard()

scoped_device_id_guard gko::ReferenceExecutor::get_scoped_device_id_guard ( ) const
inlineoverridevirtual

Reimplemented from gko::OmpExecutor.

◆ populate_exec_info()

void gko::ReferenceExecutor::populate_exec_info ( const machine_topology mach_topo)
inlineoverrideprotectedvirtual

Populates the executor specific info from the global machine topology object.

Parameters
mach_topothe machine topology object.

Reimplemented from gko::OmpExecutor.

◆ run() [1/4]

template<typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void gko::Executor::run ( const ClosureOmp &  op_omp,
const ClosureCuda &  op_cuda,
const ClosureHip &  op_hip,
const ClosureDpcpp &  op_dpcpp 
) const
inline

Runs one of the passed in functors, depending on the Executor type.

Template Parameters
ClosureOmptype of op_omp
ClosureCudatype of op_cuda
ClosureHiptype of op_hip
ClosureDpcpptype of op_dpcpp
Parameters
op_ompfunctor to run in case of a OmpExecutor or ReferenceExecutor
op_cudafunctor to run in case of a CudaExecutor
op_hipfunctor to run in case of a HipExecutor
op_dpcppfunctor to run in case of a DpcppExecutor

◆ run() [2/4]

void gko::ReferenceExecutor::run ( const Operation op) const
inlineoverridevirtual

Runs the specified Operation using this Executor.

Parameters
opthe operation to run

Reimplemented from gko::OmpExecutor.

◆ run() [3/4]

virtual void gko::Executor::run ( const Operation op) const
virtual

Runs the specified Operation using this Executor.

Parameters
opthe operation to run

Reimplemented from gko::OmpExecutor.

◆ run() [4/4]

template<typename ClosureReference , typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void gko::Executor::run ( std::string  name,
const ClosureReference &  op_ref,
const ClosureOmp &  op_omp,
const ClosureCuda &  op_cuda,
const ClosureHip &  op_hip,
const ClosureDpcpp &  op_dpcpp 
) const
inline

Runs one of the passed in functors, depending on the Executor type.

Template Parameters
ClosureReferencetype of op_ref
ClosureOmptype of op_omp
ClosureCudatype of op_cuda
ClosureHiptype of op_hip
ClosureDpcpptype of op_dpcpp
Parameters
namethe name of the operation
op_reffunctor to run in case of a ReferenceExecutor
op_ompfunctor to run in case of a OmpExecutor
op_cudafunctor to run in case of a CudaExecutor
op_hipfunctor to run in case of a HipExecutor
op_dpcppfunctor to run in case of a DpcppExecutor

◆ verify_memory_from()

bool gko::ReferenceExecutor::verify_memory_from ( const Executor src_exec) const
inlineoverrideprotectedvirtual

Verify the memory from another Executor.

Parameters
src_execExecutor from which to verify the memory.
Returns
whether this executor and src_exec share the same memory.

Implements gko::Executor.

◆ verify_memory_to() [1/5]

virtual bool gko::ReferenceExecutor::verify_memory_to ( const CudaExecutor other) const
inlineoverrideprotectedvirtual

Reimplemented from gko::OmpExecutor.

◆ verify_memory_to() [2/5]

virtual bool gko::ReferenceExecutor::verify_memory_to ( const DpcppExecutor other) const
inlineoverrideprotectedvirtual

Reimplemented from gko::OmpExecutor.

◆ verify_memory_to() [3/5]

virtual bool gko::ReferenceExecutor::verify_memory_to ( const HipExecutor other) const
inlineoverrideprotectedvirtual

Reimplemented from gko::OmpExecutor.

◆ verify_memory_to() [4/5]

virtual bool gko::ReferenceExecutor::verify_memory_to ( const OmpExecutor other) const
inlineoverrideprotectedvirtual

Reimplemented from gko::OmpExecutor.

◆ verify_memory_to() [5/5]

virtual bool gko::ReferenceExecutor::verify_memory_to ( const ReferenceExecutor other) const
inlineoverrideprotectedvirtual

Reimplemented from gko::OmpExecutor.


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