Ginkgo
Generated from pipelines/1554403166 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
|
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. More... | |
std::shared_ptr< const Executor > | get_master () const noexcept override |
Returns the master OmpExecutor of this Executor. More... | |
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. More... | |
sycl::queue * | get_queue () const |
const std::vector< int > & | get_subgroup_sizes () const noexcept |
Get the available subgroup sizes for this device. More... | |
int | get_num_computing_units () const noexcept |
Get the number of Computing Units of this executor. More... | |
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. More... | |
int | get_max_workgroup_size () const noexcept |
Get the maximum workgroup size. More... | |
int | get_max_subgroup_size () const noexcept |
Get the maximum subgroup size. More... | |
std::string | get_device_type () const noexcept |
Get a string representing the device type. More... | |
virtual void | run (const Operation &op) const=0 |
Runs the specified Operation using this Executor. More... | |
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. More... | |
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. More... | |
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. More... | |
static int | get_num_devices (std::string device_type) |
Get the number of devices present on the system. More... | |
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.
|
inlinenoexcept |
Get the DPCPP device id of the device associated to this executor.
|
inlinenoexcept |
Get a string representing the device type.
|
overridevirtualnoexcept |
Returns the master OmpExecutor of this Executor.
Implements gko::Executor.
|
overridevirtualnoexcept |
Returns the master OmpExecutor of this Executor.
Implements gko::Executor.
|
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 |
|
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 void gko::Executor::run |
|
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 |