Table of Contents

Class AcceleratorUtilities

Namespace
DotCompute.Abstractions
Assembly
DotCompute.Abstractions.dll

Utility methods for common accelerator patterns to reduce code duplication.

public static class AcceleratorUtilities
Inheritance
AcceleratorUtilities
Inherited Members

Methods

CompileKernelWithLoggingAsync(KernelDefinition, CompilationOptions?, ILogger, string, Func<KernelDefinition, CompilationOptions, CancellationToken, ValueTask<ICompiledKernel>>, CancellationToken)

Common pattern for compiling kernels with error handling and logging.

public static ValueTask<ICompiledKernel> CompileKernelWithLoggingAsync(KernelDefinition definition, CompilationOptions? options, ILogger logger, string acceleratorType, Func<KernelDefinition, CompilationOptions, CancellationToken, ValueTask<ICompiledKernel>> compileFunc, CancellationToken cancellationToken = default)

Parameters

definition KernelDefinition

The kernel definition to compile

options CompilationOptions

Compilation options

logger ILogger

Logger instance

acceleratorType string

Type of accelerator for logging

compileFunc Func<KernelDefinition, CompilationOptions, CancellationToken, ValueTask<ICompiledKernel>>

The actual compilation function

cancellationToken CancellationToken

Cancellation token

Returns

ValueTask<ICompiledKernel>

The compiled kernel

DisposeWithSynchronization(ILogger, string, Action?, params object?[])

Common pattern for accelerator disposal with synchronization (synchronous version).

public static void DisposeWithSynchronization(ILogger logger, string acceleratorType, Action? syncAction, params object?[] disposables)

Parameters

logger ILogger

Logger instance

acceleratorType string

Type of accelerator for logging

syncAction Action

Optional synchronization action to call before disposal

disposables object[]

Objects to dispose

DisposeWithSynchronizationAsync(ILogger, string, Func<ValueTask>?, params object?[])

Common pattern for accelerator disposal with synchronization.

public static ValueTask DisposeWithSynchronizationAsync(ILogger logger, string acceleratorType, Func<ValueTask>? syncFunc, params object?[] disposables)

Parameters

logger ILogger

Logger instance

acceleratorType string

Type of accelerator for logging

syncFunc Func<ValueTask>

Optional synchronization function to call before disposal

disposables object[]

Objects to dispose

Returns

ValueTask

InitializeWithLogging<T>(ILogger, string, Func<T>, string?)

Common pattern for accelerator initialization with error handling and logging.

public static T InitializeWithLogging<T>(ILogger logger, string acceleratorType, Func<T> initFunc, string? deviceInfo = null)

Parameters

logger ILogger

Logger instance

acceleratorType string

Type of accelerator for logging

initFunc Func<T>

The initialization function

deviceInfo string

Device information for logging

Returns

T

The result of the initialization function

Type Parameters

T

SynchronizeWithLoggingAsync(ILogger, string, Func<CancellationToken, ValueTask>, CancellationToken)

Common pattern for synchronizing accelerators with error handling and logging.

public static ValueTask SynchronizeWithLoggingAsync(ILogger logger, string acceleratorType, Func<CancellationToken, ValueTask> syncFunc, CancellationToken cancellationToken = default)

Parameters

logger ILogger

Logger instance

acceleratorType string

Type of accelerator for logging

syncFunc Func<CancellationToken, ValueTask>

The actual synchronization function

cancellationToken CancellationToken

Cancellation token

Returns

ValueTask

ThrowIfDisposed(bool, object)

Helper method to validate accelerator is not disposed.

public static void ThrowIfDisposed(bool disposed, object instance)

Parameters

disposed bool

Disposed flag

instance object

Instance to check

ThrowIfDisposed(int, object)

Helper method to validate accelerator is not disposed using Interlocked pattern.

public static void ThrowIfDisposed(int disposed, object instance)

Parameters

disposed int

Disposed flag as int

instance object

Instance to check