MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ VisionBackend

enum class MayaFlux::Kinesis::Vision::VisionBackend : uint8_t
strong

Selects where a VisionSequence executes.

GPU uses MayaFlux::Yantra::VisionGpuExecutor, the Vulkan implementation in Yantra. It accepts a GPU image, runs the vision steps through GPU dispatches, and can keep image results on the device. This is the default because it suits GPU image pipelines and avoids transferring intermediate images to the host. Host input may still require an upload, and requesting host data from a GPU result may require a readback and synchronization. GPU resource setup and dispatch also have costs, particularly for small workloads.

CPU uses MayaFlux::Kinesis::Vision::VisionExecutor, the host implementation in Kinesis. It accepts normalized floating-point pixels in host memory and produces host-side results. Choose it when the input and desired output are already on the host, when a GPU is unavailable, or when a sequence needs an operation implemented only by the CPU executor. Supplying a GPU image to a CPU pipeline requires a transfer to host memory.

The selected backend applies to the whole sequence. VisionProcessor and ImageCVProcessor do not switch backend for individual steps or fall back to the other executor when an operation is unsupported. The default expresses the preferred path for GPU image processing, not a guarantee that it will be faster for every input size or transfer pattern.

Enumerator
GPU 

Execute the sequence with the Yantra Vulkan executor.

CPU 

Execute the sequence with the Kinesis host executor.

Definition at line 94 of file VisionOp.hpp.

94 : uint8_t {
95 GPU, ///< Execute the sequence with the Yantra Vulkan executor.
96 CPU, ///< Execute the sequence with the Kinesis host executor.
97};
@ CPU
Execute the sequence with the Kinesis host executor.
@ GPU
Execute the sequence with the Yantra Vulkan executor.