This is the Executor subclass which represents a DPC++ enhanced device. More...
#include <ginkgo/core/base/executor.hpp>
Public Member Functions | |
std::shared_ptr< Executor > | get_master () noexcept override |
Returns the master OmpExecutor of this Executor. | |
std::shared_ptr< const Executor > | get_master () const noexcept override |
Returns the master OmpExecutor of this Executor. | |
void | synchronize () const override |
Synchronize the operations launched on the executor with its master. | |
scoped_device_id_guard | get_scoped_device_id_guard () const override |
std::string | get_description () const override |
int | get_device_id () const noexcept |
Get the DPCPP device id of the device associated to this executor. | |
sycl::queue * | get_queue () const |
const std::vector< int > & | get_subgroup_sizes () const noexcept |
Get the available subgroup sizes for this device. | |
int | get_num_computing_units () const noexcept |
Get the number of Computing Units of this executor. | |
int | get_num_subgroups () const noexcept |
Get the number of subgroups of this executor. | |
const std::vector< int > & | get_max_workitem_sizes () const noexcept |
Get the maximum work item sizes. | |
int | get_max_workgroup_size () const noexcept |
Get the maximum workgroup size. | |
int | get_max_subgroup_size () const noexcept |
Get the maximum subgroup size. | |
std::string | get_device_type () const noexcept |
Get a string representing the device type. | |
virtual void | run (const Operation &op) const=0 |
Runs the specified Operation using this Executor. | |
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 |
Runs one of the passed in functors, depending on the Executor type. | |
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 |
Runs one of the passed in functors, depending on the Executor type. | |
Static Public Member Functions | |
static std::shared_ptr< DpcppExecutor > | create (int device_id, std::shared_ptr< Executor > master, std::string device_type="all", dpcpp_queue_property property=dpcpp_queue_property::in_order) |
Creates a new DpcppExecutor. | |
static int | get_num_devices (std::string device_type) |
Get the number of devices present on the system. | |
This is the Executor subclass which represents a DPC++ enhanced device.
|
static |
Creates a new DpcppExecutor.
device_id | the DPCPP device id of this device |
master | an executor on the host that is used to invoke the device kernels |
device_type | a string representing the type of device to consider (accelerator, cpu, gpu or all). |
|
overridevirtual |
Implements gko::Executor.
References get_description().
Referenced by get_description().
|
inlinenoexcept |
Get the DPCPP device id of the device associated to this executor.
References get_device_id().
Referenced by get_device_id().
|
inlinenoexcept |
Get a string representing the device type.
|
overridevirtualnoexcept |
Returns the master OmpExecutor of this Executor.
Implements gko::Executor.
References get_master().
|
overridevirtualnoexcept |
Returns the master OmpExecutor of this Executor.
Implements gko::Executor.
Referenced by get_master().
|
inlinenoexcept |
Get the maximum subgroup size.
|
inlinenoexcept |
Get the maximum workgroup size.
|
inlinenoexcept |
Get the maximum work item sizes.
|
inlinenoexcept |
Get the number of Computing Units of this executor.
|
static |
Get the number of devices present on the system.
device_type | a string representing the device type |
|
overridevirtual |
Implements gko::Executor.
|
inlinenoexcept |
Get the available subgroup sizes for this device.
|
inline |
Runs one of the passed in functors, depending on the Executor type.
ClosureOmp | type of op_omp |
ClosureCuda | type of op_cuda |
ClosureHip | type of op_hip |
ClosureDpcpp | type of op_dpcpp |
op_omp | functor to run in case of a OmpExecutor or ReferenceExecutor |
op_cuda | functor to run in case of a CudaExecutor |
op_hip | functor to run in case of a HipExecutor |
op_dpcpp | functor to run in case of a DpcppExecutor |
|
virtual |
Runs the specified Operation using this Executor.
op | the operation to run |
Implements gko::Executor.
|
inline |
Runs one of the passed in functors, depending on the Executor type.
ClosureReference | type of op_ref |
ClosureOmp | type of op_omp |
ClosureCuda | type of op_cuda |
ClosureHip | type of op_hip |
ClosureDpcpp | type of op_dpcpp |
name | the name of the operation |
op_ref | functor to run in case of a ReferenceExecutor |
op_omp | functor to run in case of a OmpExecutor |
op_cuda | functor to run in case of a CudaExecutor |
op_hip | functor to run in case of a HipExecutor |
op_dpcpp | functor to run in case of a DpcppExecutor |
|
overridevirtual |
Synchronize the operations launched on the executor with its master.
Implements gko::Executor.
References synchronize().
Referenced by synchronize().