16template <ComputeData InputType = std::vector<Kakshya::DataVariant>,
17 ComputeData OutputType = InputType>
30 assert(executor &&
"GpuSorter: executor must not be null");
31 m_executor = executor;
32 this->set_gpu_backend(std::move(executor));
38 [[nodiscard]] std::shared_ptr<GpuExecutionContext<InputType, OutputType>>
48 return SortingType::CUSTOM;
54 error<std::runtime_error>(
55 Journal::Component::Yantra,
56 Journal::Context::BufferProcessing,
57 std::source_location::current(),
58 "GpuSorter: GPU unavailable and no CPU fallback provided");
62 std::shared_ptr<GpuExecutionContext<InputType, OutputType>>
m_executor;
Modern, digital-first universal sorting framework for Maya Flux.
Type-parameterised shell over GpuDispatchCore.
std::shared_ptr< GpuExecutionContext< InputType, OutputType > > m_executor
output_type sort_implementation(const input_type &) override
Pure virtual sorting implementation - derived classes implement this.
GpuSorter(std::shared_ptr< GpuExecutionContext< InputType, OutputType > > executor)
Construct with a configured GpuExecutionContext.
SortingType get_sorting_type() const override
Gets the sorting type category for this sorter.
std::shared_ptr< GpuExecutionContext< InputType, OutputType > > get_executor() const
Returns the attached GpuExecutionContext for further configuration.
std::string get_sorter_name() const override
Get sorter-specific name (derived classes override this)
Concrete UniversalSorter that dispatches entirely via a GpuExecutionContext.
Template-flexible sorter base with instance-defined I/O types.
SortingType
Categories of sorting operations for discovery and organization.
Input/Output container for computation pipeline data flow with structure preservation.