Table of Contents

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

compilationOptions CompilationOptions

Default 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

kernelDefinition KernelDefinition

Kernel definition

compilationOptions CompilationOptions

Compilation options (null = default)

preferGpu bool

Prefer GPU accelerator over CPU (default: true)

inputConverter Func<TIn, KernelArgument[]>

Custom input converter (null = use default)

outputConverter Func<IUnifiedMemoryBuffer, TOut>

Custom output converter (null = use default)

Returns

DotComputeKernel<TIn, TOut>

Configured DotComputeKernel instance

Type Parameters

TIn

Input type

TOut

Output 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

kernelName string

Unique kernel name

kernelSource string

Kernel source code

language KernelLanguage

Kernel language (defaults to CSharp)

entryPoint string

Entry point function name (defaults to "main")

compilationOptions CompilationOptions

Compilation options (null = default)

preferGpu bool

Prefer GPU accelerator over CPU (default: true)

inputConverter Func<TIn, KernelArgument[]>

Custom input converter (null = use default)

outputConverter Func<IUnifiedMemoryBuffer, TOut>

Custom output converter (null = use default)

Returns

DotComputeKernel<TIn, TOut>

Configured DotComputeKernel instance

Type Parameters

TIn

Input type

TOut

Output 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

name string

Accelerator 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

cancellationToken CancellationToken

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

accelerator IAccelerator

Accelerator to register

name string

Optional name (defaults to accelerator.Info.Name)

SynchronizeAllAsync(CancellationToken)

Synchronizes all accelerators (waits for GPU completion).

public Task SynchronizeAllAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Task