![]() |
Ginkgo
Generated from tags/v1.0.0^0 branch based on master. Ginkgo version 1.0.0
A numerical linear algebra library targeting many-core architectures
|
A module dedicated to the implementation and usage of the executors in Ginkgo. More...
Modules | |
CUDA Executor | |
A module dedicated to the implementation and usage of the CUDA executor in Ginkgo. | |
OpenMP Executor | |
A module dedicated to the implementation and usage of the OpenMP executor in Ginkgo. | |
Reference Executor | |
A module dedicated to the implementation and usage of the Reference executor in Ginkgo. | |
Classes | |
class | gko::Operation |
Operations can be used to define functionalities whose implementations differ among devices. More... | |
class | gko::Executor |
The first step in using the Ginkgo library consists of creating an executor. More... | |
class | gko::executor_deleter< T > |
This is a deleter that uses an executor's free method to deallocate the data. More... | |
class | gko::OmpExecutor |
This is the Executor subclass which represents the OpenMP device (typically CPU). More... | |
class | gko::ReferenceExecutor |
This is a specialization of the OmpExecutor, which runs the reference implementations of the kernels used for debugging purposes. More... | |
class | gko::CudaExecutor |
This is the Executor subclass which represents the CUDA device. More... | |
Macros | |
#define | GKO_REGISTER_OPERATION(_name, _kernel) |
Binds a set of device-specific kernels to an Operation. More... | |
A module dedicated to the implementation and usage of the executors in Ginkgo.
Below, we provide a brief introduction to executors in Ginkgo, how they have been implemented, how to best make use of them and how to add new executors.
The first step in using the Ginkgo library consists of creating an executor. Executors are used to specify the location for the data of linear algebra objects, and to determine where the operations will be executed. Ginkgo currently supports three different executor types:
#define GKO_REGISTER_OPERATION | ( | _name, | |
_kernel | |||
) |
Binds a set of device-specific kernels to an Operation.
It also defines a helper function which creates the associated operation. Any input arguments passed to the helper function are forwarded to the kernel when the operation is executed.
The kernels used to bind the operation are searched in kernels::DEV_TYPE
namespace, where DEV_TYPE
is replaced by omp
, cuda
and reference
.
_name | operation name |
_kernel | kernel which will be bound to the operation |