Table of Contents

Namespace DotCompute.Backends.OpenCL.Execution

Classes

EventProfilingInfo

Profiling information for an OpenCL event. Contains timing data for queue, submission, start, and completion timestamps.

EventProperties

Properties for event creation and behavior.

EventStatistics

Statistics for event usage and pool performance. Used for monitoring, optimization, and capacity planning.

ExecutionConfig

Represents execution configuration for a kernel.

ExecutionResult

Represents the result of kernel execution.

Graph

Represents a complete command graph with nodes and dependencies.

GraphBuilder

Provides a fluent API for building command graphs.

GraphExecutionResult

Represents the result of a graph execution.

GraphParameters

Represents parameters for graph execution.

KernelArgument

Represents a single kernel argument.

KernelArguments

Container for kernel arguments with type-safe handling.

KernelFusionOpportunity

Describes an opportunity for kernel fusion optimization.

NDRange

Represents an N-dimensional range for kernel execution.

NodeExecutionResult

Represents the result of executing a single node.

OpenCLCommandGraph

Provides advanced command graph support for OpenCL operations with automatic parallelization, optimization, and reusable execution patterns.

OpenCLCommandGraph.Node

Represents a node in the command graph.

OpenCLEventManager

Manages OpenCL events with pooling and recycling for optimal performance. Provides profiling support, event chaining, and wait list management. Follows proven patterns from CUDA's event management for production-grade synchronization.

OpenCLEventPool

Pool of OpenCL events for efficient reuse. Delegates to OpenCLEventManager for actual pooling and management. Provides a simplified interface for event acquisition with automatic cleanup.

OpenCLKernelExecutionEngine

Production-grade OpenCL kernel execution engine with automatic work size optimization and comprehensive error handling.

OpenCLKernelPipeline

Production-grade multi-kernel execution pipeline with dependency resolution, automatic optimization, and comprehensive profiling.

OpenCLKernelPipeline.ArgumentSpec

Specification for a kernel argument.

OpenCLKernelPipeline.ExecutionConfig

Configuration for stage execution.

OpenCLKernelPipeline.FusionOpportunity

Describes an opportunity for kernel fusion optimization.

OpenCLKernelPipeline.Pipeline

Represents a configured pipeline ready for execution.

OpenCLKernelPipeline.PipelineBuilder

Builder for constructing pipelines with fluent API.

OpenCLKernelPipeline.PipelineResult

Result of pipeline execution.

OpenCLKernelPipeline.PipelineStatistics

Statistics about pipeline execution.

OpenCLKernelPipeline.Stage

Represents a single stage in a pipeline.

OpenCLKernelPipeline.StageResult

Result of a single stage execution.

OpenCLPipeline

Represents a configured OpenCL kernel execution pipeline ready for execution.

OpenCLPipelineException

Exception thrown when pipeline operations fail.

OpenCLPipelineResult

Result of pipeline execution.

OpenCLPipelineStatistics

Statistics about pipeline execution.

OpenCLStreamManager

Manages OpenCL command queues with pooling and recycling for optimal performance. Provides in-order and out-of-order queue management with priority scheduling. Follows proven patterns from CUDA's stream management for production-grade queue orchestration.

OpenCLStreamPool

Pool of command queues for efficient reuse. Provides a simplified interface delegating to OpenCLStreamManager for actual pooling. This class exists for backward compatibility and convenience.

PipelineArgumentSpec

Specification for a kernel argument in a pipeline.

PipelineExecutionConfig

Configuration for pipeline stage execution.

PipelineStage

Represents a single stage in an OpenCL kernel pipeline.

PipelineStageResult

Result of a single stage execution.

QueueProperties

Properties for command queue creation and behavior.

QueueStatistics

Statistics for command queue usage and pool performance. Used for monitoring, optimization, and capacity planning.

Structs

EventHandle

RAII handle for managed events with automatic cleanup. Ensures events are properly returned to the pool or destroyed when no longer needed.

OpenCLKernel

Wrapper for OpenCL kernel handle.

QueueHandle

RAII handle for managed command queues with automatic cleanup. Ensures queues are properly returned to the pool when no longer needed.

Enums

OpenCLCommandGraph.NodeType

Defines the types of operations that can be represented as graph nodes.

QueuePriority

Priority levels for command queue scheduling.