Class DotComputeAcceleratorProvider
- Namespace
- Orleans.GpuBridge.Backends.DotCompute
- Assembly
- Orleans.GpuBridge.Backends.DotCompute.dll
DotCompute accelerator provider for Orleans.GpuBridge. Manages IAccelerator instances and kernel lifecycle.
public sealed class DotComputeAcceleratorProvider : IDisposable
- Inheritance
-
DotComputeAcceleratorProvider
- Implements
- Inherited Members
Constructors
DotComputeAcceleratorProvider(CompilationOptions?)
Creates a new DotComputeAcceleratorProvider.
public DotComputeAcceleratorProvider(CompilationOptions? compilationOptions = null)
Parameters
compilationOptionsCompilationOptionsDefault compilation options (null = default)
Properties
Accelerators
Gets all available accelerators.
public IReadOnlyCollection<IAccelerator> Accelerators { get; }
Property Value
- IReadOnlyCollection<IAccelerator>
CpuAccelerator
Gets the CPU accelerator (fallback).
public IAccelerator? CpuAccelerator { get; }
Property Value
- IAccelerator
PrimaryGpuAccelerator
Gets the primary GPU accelerator (if available).
public IAccelerator? PrimaryGpuAccelerator { get; }
Property Value
- IAccelerator
Methods
CreateKernel<TIn, TOut>(KernelDefinition, CompilationOptions?, bool, Func<TIn, KernelArgument[]>?, Func<IUnifiedMemoryBuffer, TOut>?)
Creates a DotCompute kernel from an existing KernelDefinition.
public DotComputeKernel<TIn, TOut> CreateKernel<TIn, TOut>(KernelDefinition kernelDefinition, CompilationOptions? compilationOptions = null, bool preferGpu = true, Func<TIn, KernelArgument[]>? inputConverter = null, Func<IUnifiedMemoryBuffer, TOut>? outputConverter = null)
Parameters
kernelDefinitionKernelDefinitionKernel definition
compilationOptionsCompilationOptionsCompilation options (null = default)
preferGpuboolPrefer GPU accelerator over CPU (default: true)
inputConverterFunc<TIn, KernelArgument[]>Custom input converter (null = use default)
outputConverterFunc<IUnifiedMemoryBuffer, TOut>Custom output converter (null = use default)
Returns
- DotComputeKernel<TIn, TOut>
Configured DotComputeKernel instance
Type Parameters
TInInput type
TOutOutput type
CreateKernel<TIn, TOut>(string, string, KernelLanguage, string, CompilationOptions?, bool, Func<TIn, KernelArgument[]>?, Func<IUnifiedMemoryBuffer, TOut>?)
Creates a DotCompute kernel for Orleans.GpuBridge.
public DotComputeKernel<TIn, TOut> CreateKernel<TIn, TOut>(string kernelName, string kernelSource, KernelLanguage language = KernelLanguage.CSharp, string entryPoint = "main", CompilationOptions? compilationOptions = null, bool preferGpu = true, Func<TIn, KernelArgument[]>? inputConverter = null, Func<IUnifiedMemoryBuffer, TOut>? outputConverter = null)
Parameters
kernelNamestringUnique kernel name
kernelSourcestringKernel source code
languageKernelLanguageKernel language (defaults to CSharp)
entryPointstringEntry point function name (defaults to "main")
compilationOptionsCompilationOptionsCompilation options (null = default)
preferGpuboolPrefer GPU accelerator over CPU (default: true)
inputConverterFunc<TIn, KernelArgument[]>Custom input converter (null = use default)
outputConverterFunc<IUnifiedMemoryBuffer, TOut>Custom output converter (null = use default)
Returns
- DotComputeKernel<TIn, TOut>
Configured DotComputeKernel instance
Type Parameters
TInInput type
TOutOutput type
Dispose()
Disposes all accelerators and cleans up resources.
public void Dispose()
GetAccelerator(string)
Gets an accelerator by name.
public IAccelerator? GetAccelerator(string name)
Parameters
namestringAccelerator name
Returns
- IAccelerator
Accelerator instance
GetBridgeInfo()
Gets GpuBridge information.
public GpuBridgeInfo GetBridgeInfo()
Returns
- GpuBridgeInfo
GpuBridge info
GetDevicesAsync(CancellationToken)
Gets GPU device information for all registered accelerators.
public Task<IReadOnlyList<GpuDevice>> GetDevicesAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Task<IReadOnlyList<GpuDevice>>
Collection of GPU devices
RegisterAccelerator(IAccelerator, string?)
Registers an accelerator with the provider.
public void RegisterAccelerator(IAccelerator accelerator, string? name = null)
Parameters
acceleratorIAcceleratorAccelerator to register
namestringOptional name (defaults to accelerator.Info.Name)
SynchronizeAllAsync(CancellationToken)
Synchronizes all accelerators (waits for GPU completion).
public Task SynchronizeAllAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken