Table of Contents

Class GpuKernelBase<TIn, TOut>

Namespace
Orleans.GpuBridge.Abstractions.Kernels
Assembly
Orleans.GpuBridge.Abstractions.dll

Base implementation of IGpuKernel providing common boilerplate. Derive from this class to implement custom kernels.

public abstract class GpuKernelBase<TIn, TOut> : IGpuKernel<TIn, TOut>, IDisposable

Type Parameters

TIn
TOut
Inheritance
GpuKernelBase<TIn, TOut>
Implements
IGpuKernel<TIn, TOut>
Derived
Inherited Members

Properties

BackendProvider

Backend provider name ("CPU", "DotCompute", "CUDA", etc.)

public abstract string BackendProvider { get; }

Property Value

string

DisplayName

Kernel display name for diagnostics

public virtual string DisplayName { get; }

Property Value

string

IsGpuAccelerated

Whether kernel uses GPU acceleration (false for CPU fallback)

public abstract bool IsGpuAccelerated { get; }

Property Value

bool

IsInitialized

Whether kernel is initialized

public bool IsInitialized { get; }

Property Value

bool

KernelId

Kernel unique identifier

public abstract string KernelId { get; }

Property Value

string

Methods

Dispose()

Dispose kernel resources. Override to cleanup GPU memory, handles, etc.

public virtual void Dispose()

EnsureInitialized()

Ensures kernel is initialized before execution

protected void EnsureInitialized()

EnsureNotDisposed()

Ensures kernel is not disposed

protected void EnsureNotDisposed()

ExecuteAsync(TIn, CancellationToken)

Execute kernel with single input. Must be implemented by derived classes.

public abstract Task<TOut> ExecuteAsync(TIn input, CancellationToken cancellationToken = default)

Parameters

input TIn
cancellationToken CancellationToken

Returns

Task<TOut>

ExecuteBatchAsync(TIn[], CancellationToken)

Execute kernel with batch input. Default implementation calls ExecuteAsync for each item (override for batch optimization).

public virtual Task<TOut[]> ExecuteBatchAsync(TIn[] inputs, CancellationToken cancellationToken = default)

Parameters

inputs TIn[]
cancellationToken CancellationToken

Returns

Task<TOut[]>

GetEstimatedExecutionTimeMicroseconds(int)

Get estimated execution time for input size. Override for more accurate estimates based on kernel complexity.

public virtual long GetEstimatedExecutionTimeMicroseconds(int inputSize)

Parameters

inputSize int

Returns

long

GetMemoryRequirements()

Get memory requirements for kernel execution. Override to provide accurate memory estimates.

public virtual KernelMemoryRequirements GetMemoryRequirements()

Returns

KernelMemoryRequirements

InitializeAsync(CancellationToken)

Initialize kernel resources. Override to perform custom initialization (e.g., compile GPU code).

public virtual Task InitializeAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Task

ValidateInput(TIn)

Validate input data. Override for custom validation logic.

public virtual KernelValidationResult ValidateInput(TIn input)

Parameters

input TIn

Returns

KernelValidationResult

WarmupAsync(CancellationToken)

Warmup kernel for optimal performance. Override to perform custom warmup (e.g., JIT compilation, cache warming).

public virtual Task WarmupAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Task