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
acceleratorIAcceleratorThe accelerator.
contextCudaContextThe context.
streamManagerCudaStreamManagerThe stream manager.
eventManagerCudaEventManagerThe event manager.
loggerILogger<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
EnqueueExecution(CompiledKernel, KernelArgument[], KernelExecutionConfig)
Enqueues a kernel for asynchronous execution
public KernelExecutionHandle EnqueueExecution(CompiledKernel kernel, KernelArgument[] arguments, KernelExecutionConfig executionConfig)
Parameters
kernelCompiledKernelargumentsKernelArgument[]executionConfigKernelExecutionConfig
Returns
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
kernelCompiledKernelargumentsKernelArgument[]executionConfigKernelExecutionConfigcancellationTokenCancellationToken
Returns
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
kernelCompiledKernelargumentsKernelArgument[]executionConfigKernelExecutionConfigcancellationTokenCancellationToken
Returns
GetOptimalExecutionConfig(CompiledKernel, int[])
Gets optimal execution configuration with RTX 2000 Ada specific optimizations
public KernelExecutionConfig GetOptimalExecutionConfig(CompiledKernel kernel, int[] problemSize)
Parameters
kernelCompiledKernelproblemSizeint[]
Returns
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
kernelCompiledKernelargumentsKernelArgument[]executionConfigKernelExecutionConfigiterationsintcancellationTokenCancellationToken
Returns
WaitForCompletionAsync(KernelExecutionHandle, CancellationToken)
Waits for kernel execution completion
public ValueTask<KernelExecutionResult> WaitForCompletionAsync(KernelExecutionHandle handle, CancellationToken cancellationToken = default)
Parameters
handleKernelExecutionHandlecancellationTokenCancellationToken