Class KernelExecutionServiceSimplified
- Namespace
- DotCompute.Runtime.Services
- Assembly
- DotCompute.Runtime.dll
Simplified kernel execution service that demonstrates the integration pattern. This bridges generated kernel code with the runtime infrastructure.
[SuppressMessage("Performance", "CA1848:Use the LoggerMessage delegates", Justification = "Service layer logging")]
public class KernelExecutionServiceSimplified : IComputeOrchestrator, IDisposable
- Inheritance
-
KernelExecutionServiceSimplified
- Implements
- Inherited Members
- Extension Methods
Constructors
KernelExecutionServiceSimplified(AcceleratorRuntime, ILogger<KernelExecutionServiceSimplified>)
Simplified kernel execution service that demonstrates the integration pattern. This bridges generated kernel code with the runtime infrastructure.
public KernelExecutionServiceSimplified(AcceleratorRuntime runtime, ILogger<KernelExecutionServiceSimplified> logger)
Parameters
runtimeAcceleratorRuntimeloggerILogger<KernelExecutionServiceSimplified>
Methods
Dispose()
Performs dispose.
public void Dispose()
ExecuteAsync<T>(string, IAccelerator, params object[])
Executes a kernel on a specific accelerator instance.
public Task<T> ExecuteAsync<T>(string kernelName, IAccelerator accelerator, params object[] args)
Parameters
kernelNamestringThe fully qualified kernel name
acceleratorIAcceleratorThe specific accelerator to use
argsobject[]The kernel arguments
Returns
- Task<T>
The execution result
Type Parameters
TThe return type
ExecuteAsync<T>(string, params object[])
Executes a kernel by name with automatic backend selection and parameter marshaling.
public Task<T> ExecuteAsync<T>(string kernelName, params object[] args)
Parameters
Returns
- Task<T>
The execution result
Type Parameters
TThe return type
ExecuteAsync<T>(string, string, params object[])
Executes a kernel with explicit backend preference.
public Task<T> ExecuteAsync<T>(string kernelName, string preferredBackend, params object[] args)
Parameters
kernelNamestringThe fully qualified kernel name
preferredBackendstringThe preferred backend for execution
argsobject[]The kernel arguments
Returns
- Task<T>
The execution result
Type Parameters
TThe return type
ExecuteKernelAsync(string, IKernelExecutionParameters)
Executes a kernel with advanced execution parameters.
public Task<object?> ExecuteKernelAsync(string kernelName, IKernelExecutionParameters executionParameters)
Parameters
kernelNamestringThe kernel name
executionParametersIKernelExecutionParametersAdvanced execution parameters
Returns
ExecuteKernelAsync(string, object[], CancellationToken)
Executes a kernel with cancellation token support.
public Task<object?> ExecuteKernelAsync(string kernelName, object[] args, CancellationToken cancellationToken = default)
Parameters
kernelNamestringThe kernel name
argsobject[]The kernel arguments
cancellationTokenCancellationTokenCancellation token
Returns
ExecuteWithBuffersAsync<T>(string, IEnumerable<IUnifiedMemoryBuffer>, params object[])
Executes a kernel with unified buffer parameters for zero-copy optimization.
public Task<T> ExecuteWithBuffersAsync<T>(string kernelName, IEnumerable<IUnifiedMemoryBuffer> buffers, params object[] scalarArgs)
Parameters
kernelNamestringThe fully qualified kernel name
buffersIEnumerable<IUnifiedMemoryBuffer>Unified buffers for zero-copy execution
scalarArgsobject[]Scalar arguments
Returns
- Task<T>
The execution result
Type Parameters
TThe return type
GetOptimalAcceleratorAsync(string)
Gets the optimal accelerator for a specific kernel.
public Task<IAccelerator?> GetOptimalAcceleratorAsync(string kernelName)
Parameters
kernelNamestringThe kernel name
Returns
- Task<IAccelerator>
The optimal accelerator or null if none suitable
GetSupportedAcceleratorsAsync(string)
Gets available accelerators that support a specific kernel.
public Task<IReadOnlyList<IAccelerator>> GetSupportedAcceleratorsAsync(string kernelName)
Parameters
kernelNamestringThe kernel name
Returns
- Task<IReadOnlyList<IAccelerator>>
Available accelerators supporting the kernel
PrecompileKernelAsync(string, IAccelerator?)
Pre-compiles a kernel for improved runtime performance.
public Task PrecompileKernelAsync(string kernelName, IAccelerator? accelerator = null)
Parameters
kernelNamestringThe kernel name to pre-compile
acceleratorIAcceleratorOptional specific accelerator, or null for all suitable accelerators
Returns
- Task
A task representing the pre-compilation operation
RegisterKernels(IEnumerable<KernelRegistrationInfo>)
Registers kernels from the generated kernel registry.
public void RegisterKernels(IEnumerable<KernelRegistrationInfo> kernelRegistrations)
Parameters
kernelRegistrationsIEnumerable<KernelRegistrationInfo>
ValidateKernelArgsAsync(string, params object[])
Validates kernel arguments before execution.
public Task<bool> ValidateKernelArgsAsync(string kernelName, params object[] args)