Table of Contents

Class CudaKernelExecutor

Namespace
DotCompute.Backends.CUDA.Execution
Assembly
DotCompute.Backends.CUDA.dll

High-performance CUDA kernel executor with advanced features for RTX 2000 Ada GPU

public sealed class CudaKernelExecutor : IKernelExecutor, IDisposable, IAsyncDisposable
Inheritance
CudaKernelExecutor
Implements
Inherited Members
Extension Methods

Constructors

CudaKernelExecutor(IAccelerator, CudaContext, CudaStreamManager, CudaEventManager, ILogger<CudaKernelExecutor>)

Initializes a new instance of the CudaKernelExecutor class.

public CudaKernelExecutor(IAccelerator accelerator, CudaContext context, CudaStreamManager streamManager, CudaEventManager eventManager, ILogger<CudaKernelExecutor> logger)

Parameters

accelerator IAccelerator

The accelerator.

context CudaContext

The context.

streamManager CudaStreamManager

The stream manager.

eventManager CudaEventManager

The event manager.

logger ILogger<CudaKernelExecutor>

The logger.

Properties

Accelerator

Gets or sets the accelerator.

public IAccelerator Accelerator { get; }

Property Value

IAccelerator

The accelerator.

Methods

Dispose()

Performs dispose.

public void Dispose()

DisposeAsync()

Performs async dispose.

public ValueTask DisposeAsync()

Returns

ValueTask

EnqueueExecution(CompiledKernel, KernelArgument[], KernelExecutionConfig)

Enqueues a kernel for asynchronous execution

public KernelExecutionHandle EnqueueExecution(CompiledKernel kernel, KernelArgument[] arguments, KernelExecutionConfig executionConfig)

Parameters

kernel CompiledKernel
arguments KernelArgument[]
executionConfig KernelExecutionConfig

Returns

KernelExecutionHandle

ExecuteAndWaitAsync(CompiledKernel, KernelArgument[], KernelExecutionConfig, CancellationToken)

Executes a kernel and waits for completion with enhanced error handling

public ValueTask<KernelExecutionResult> ExecuteAndWaitAsync(CompiledKernel kernel, KernelArgument[] arguments, KernelExecutionConfig executionConfig, CancellationToken cancellationToken = default)

Parameters

kernel CompiledKernel
arguments KernelArgument[]
executionConfig KernelExecutionConfig
cancellationToken CancellationToken

Returns

ValueTask<KernelExecutionResult>

ExecuteAsync(CompiledKernel, KernelArgument[], KernelExecutionConfig, CancellationToken)

Executes a compiled kernel with automatic optimization

public ValueTask<KernelExecutionResult> ExecuteAsync(CompiledKernel kernel, KernelArgument[] arguments, KernelExecutionConfig executionConfig, CancellationToken cancellationToken = default)

Parameters

kernel CompiledKernel
arguments KernelArgument[]
executionConfig KernelExecutionConfig
cancellationToken CancellationToken

Returns

ValueTask<KernelExecutionResult>

GetOptimalExecutionConfig(CompiledKernel, int[])

Gets optimal execution configuration with RTX 2000 Ada specific optimizations

public KernelExecutionConfig GetOptimalExecutionConfig(CompiledKernel kernel, int[] problemSize)

Parameters

kernel CompiledKernel
problemSize int[]

Returns

KernelExecutionConfig

ProfileAsync(CompiledKernel, KernelArgument[], KernelExecutionConfig, int, CancellationToken)

Profiles kernel execution with comprehensive metrics

public ValueTask<KernelProfilingResult> ProfileAsync(CompiledKernel kernel, KernelArgument[] arguments, KernelExecutionConfig executionConfig, int iterations = 100, CancellationToken cancellationToken = default)

Parameters

kernel CompiledKernel
arguments KernelArgument[]
executionConfig KernelExecutionConfig
iterations int
cancellationToken CancellationToken

Returns

ValueTask<KernelProfilingResult>

WaitForCompletionAsync(KernelExecutionHandle, CancellationToken)

Waits for kernel execution completion

public ValueTask<KernelExecutionResult> WaitForCompletionAsync(KernelExecutionHandle handle, CancellationToken cancellationToken = default)

Parameters

handle KernelExecutionHandle
cancellationToken CancellationToken

Returns

ValueTask<KernelExecutionResult>