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
definitionKernelDefinitionThe kernel definition to compile
optionsCompilationOptionsCompilation options
loggerILoggerLogger instance
acceleratorTypestringType of accelerator for logging
compileFuncFunc<KernelDefinition, CompilationOptions, CancellationToken, ValueTask<ICompiledKernel>>The actual compilation function
cancellationTokenCancellationTokenCancellation 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
loggerILoggerLogger instance
acceleratorTypestringType of accelerator for logging
syncActionActionOptional synchronization action to call before disposal
disposablesobject[]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
loggerILoggerLogger instance
acceleratorTypestringType of accelerator for logging
syncFuncFunc<ValueTask>Optional synchronization function to call before disposal
disposablesobject[]Objects to dispose
Returns
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
loggerILoggerLogger instance
acceleratorTypestringType of accelerator for logging
initFuncFunc<T>The initialization function
deviceInfostringDevice 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
loggerILoggerLogger instance
acceleratorTypestringType of accelerator for logging
syncFuncFunc<CancellationToken, ValueTask>The actual synchronization function
cancellationTokenCancellationTokenCancellation token
Returns
ThrowIfDisposed(bool, object)
Helper method to validate accelerator is not disposed.
public static void ThrowIfDisposed(bool disposed, object instance)
Parameters
ThrowIfDisposed(int, object)
Helper method to validate accelerator is not disposed using Interlocked pattern.
public static void ThrowIfDisposed(int disposed, object instance)