Executors#
Ginkgo’s executors abstract the hardware that a LinOp runs on. Every
data object (matrix, vector, factorisation, solver) carries a shared
pointer to an Executor; every kernel dispatches through it; copies
between executors are explicit. The six classes here cover the five
supported backends plus the abstract base.
For background on the executor model (when each backend is appropriate, how cross-executor copies work, allocator choices), see the Executor model concept page.
Abstract base#
Executor: abstract base; the interface every concrete executor implements.
Concrete backends#
ReferenceExecutor: single-threaded host execution. The correctness baseline used by Ginkgo’s own tests.OmpExecutor: multi-threaded CPU via OpenMP.CudaExecutor: NVIDIA GPUs via CUDA.HipExecutor: AMD GPUs via ROCm/HIP.DpcppExecutor: Intel GPUs (and CPUs) via SYCL / DPC++.