Table of Contents

Interface IKernelManager

Namespace
DotCompute.Abstractions.Interfaces.Kernels
Assembly
DotCompute.Abstractions.dll

Interface for managing kernel generation, compilation, caching, and execution.

public interface IKernelManager : IDisposable
Inherited Members
Extension Methods

Methods

ClearCache()

Clears the kernel cache.

void ClearCache()

ExecuteKernelAsync(ManagedCompiledKernel, KernelArgument[], IAccelerator, KernelExecutionConfig?, CancellationToken)

Executes a compiled kernel with the specified arguments.

ValueTask<KernelExecutionResult> ExecuteKernelAsync(ManagedCompiledKernel kernel, KernelArgument[] arguments, IAccelerator accelerator, KernelExecutionConfig? config = null, CancellationToken cancellationToken = default)

Parameters

kernel ManagedCompiledKernel
arguments KernelArgument[]
accelerator IAccelerator
config KernelExecutionConfig
cancellationToken CancellationToken

Returns

ValueTask<KernelExecutionResult>

GetCacheStatistics()

Gets cache statistics.

KernelCacheStatistics GetCacheStatistics()

Returns

KernelCacheStatistics

GetOrCompileKernelAsync(Expression, IAccelerator, KernelGenerationContext?, CompilationOptions?, CancellationToken)

Gets or compiles a kernel from an expression.

ValueTask<ManagedCompiledKernel> GetOrCompileKernelAsync(Expression expression, IAccelerator accelerator, KernelGenerationContext? context = null, CompilationOptions? options = null, CancellationToken cancellationToken = default)

Parameters

expression Expression
accelerator IAccelerator
context KernelGenerationContext
options CompilationOptions
cancellationToken CancellationToken

Returns

ValueTask<ManagedCompiledKernel>

GetOrCompileOperationKernelAsync(string, Type[], Type, IAccelerator, KernelGenerationContext?, CompilationOptions?, CancellationToken)

Gets or compiles a kernel for a specific operation.

ValueTask<ManagedCompiledKernel> GetOrCompileOperationKernelAsync(string operation, Type[] inputTypes, Type outputType, IAccelerator accelerator, KernelGenerationContext? context = null, CompilationOptions? options = null, CancellationToken cancellationToken = default)

Parameters

operation string
inputTypes Type[]
outputType Type
accelerator IAccelerator
context KernelGenerationContext
options CompilationOptions
cancellationToken CancellationToken

Returns

ValueTask<ManagedCompiledKernel>

ProfileKernelAsync(ManagedCompiledKernel, KernelArgument[], IAccelerator, KernelExecutionConfig?, int, CancellationToken)

Profiles a kernel execution.

ValueTask<KernelProfilingResult> ProfileKernelAsync(ManagedCompiledKernel kernel, KernelArgument[] arguments, IAccelerator accelerator, KernelExecutionConfig? config = null, int iterations = 100, CancellationToken cancellationToken = default)

Parameters

kernel ManagedCompiledKernel
arguments KernelArgument[]
accelerator IAccelerator
config KernelExecutionConfig
iterations int
cancellationToken CancellationToken

Returns

ValueTask<KernelProfilingResult>

RegisterCompiler(AcceleratorType, IUnifiedKernelCompiler)

Registers a kernel compiler for a specific accelerator type.

void RegisterCompiler(AcceleratorType acceleratorType, IUnifiedKernelCompiler compiler)

Parameters

acceleratorType AcceleratorType
compiler IUnifiedKernelCompiler

RegisterExecutor(AcceleratorType, IKernelExecutor)

Registers a kernel executor for a specific accelerator type.

void RegisterExecutor(AcceleratorType acceleratorType, IKernelExecutor executor)

Parameters

acceleratorType AcceleratorType
executor IKernelExecutor

RegisterGenerator(AcceleratorType, IKernelGenerator)

Registers a kernel generator for a specific accelerator type.

void RegisterGenerator(AcceleratorType acceleratorType, IKernelGenerator generator)

Parameters

acceleratorType AcceleratorType
generator IKernelGenerator