Table of Contents

Class KernelArgumentsExtensions

Namespace
DotCompute.Core.Extensions
Assembly
DotCompute.Core.dll

Extension methods for KernelArguments to support metadata storage. Uses a WeakKeyDictionary approach to avoid memory leaks.

public static class KernelArgumentsExtensions
Inheritance
KernelArgumentsExtensions
Inherited Members

Methods

GetBlockDimensions(KernelArguments)

Gets block dimensions from the kernel arguments.

public static (int x, int y, int z) GetBlockDimensions(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

(int x, int y, int z)

Block dimensions or default value

GetExecutionOptions(KernelArguments)

Gets execution options from the kernel arguments.

public static KernelExecutionOptions? GetExecutionOptions(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

KernelExecutionOptions

Execution options or null

GetExecutionStream(KernelArguments)

Gets execution stream from the kernel arguments.

public static object? GetExecutionStream(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

object

Execution stream or null

GetGlobalWorkSize(KernelArguments)

Gets global work size from the kernel arguments.

public static int[]? GetGlobalWorkSize(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

int[]

Global work size array or null

GetGridDimensions(KernelArguments)

Gets grid dimensions from the kernel arguments.

public static (int x, int y, int z) GetGridDimensions(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

(int x, int y, int z)

Grid dimensions or default value

GetLaunchConfiguration(KernelArguments)

Gets launch configuration from the kernel arguments.

public static object? GetLaunchConfiguration(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

object

Launch configuration or null

GetLocalWorkSize(KernelArguments)

Gets local work size from the kernel arguments.

public static int[]? GetLocalWorkSize(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

int[]

Local work size array or null

GetMetadata<T>(KernelArguments, string, T)

Gets metadata from the kernel arguments.

public static T GetMetadata<T>(this KernelArguments arguments, string key, T defaultValue = default)

Parameters

arguments KernelArguments

The kernel arguments

key string

The metadata key

defaultValue T

The default value to return if key is not found

Returns

T

The metadata value or default value

Type Parameters

T

The type of the metadata value

GetSharedMemorySize(KernelArguments)

Gets shared memory size from the kernel arguments.

public static int GetSharedMemorySize(this KernelArguments arguments)

Parameters

arguments KernelArguments

The kernel arguments

Returns

int

Shared memory size in bytes or 0

SetBlockDimensions(KernelArguments, (int x, int y, int z))

Sets block dimensions in the kernel arguments.

public static void SetBlockDimensions(this KernelArguments arguments, (int x, int y, int z) blockDim)

Parameters

arguments KernelArguments

The kernel arguments

blockDim (int x, int y, int z)

Block dimensions

SetExecutionOptions(KernelArguments, KernelExecutionOptions)

Sets execution options in the kernel arguments.

public static void SetExecutionOptions(this KernelArguments arguments, KernelExecutionOptions options)

Parameters

arguments KernelArguments

The kernel arguments

options KernelExecutionOptions

Execution options

SetExecutionStream(KernelArguments, object)

Sets execution stream in the kernel arguments.

public static void SetExecutionStream(this KernelArguments arguments, object stream)

Parameters

arguments KernelArguments

The kernel arguments

stream object

Execution stream

SetGlobalWorkSize(KernelArguments, int[])

Sets global work size for OpenCL-style kernels.

public static void SetGlobalWorkSize(this KernelArguments arguments, int[] globalWorkSize)

Parameters

arguments KernelArguments

The kernel arguments

globalWorkSize int[]

Global work size array

SetGridDimensions(KernelArguments, (int x, int y, int z))

Sets grid dimensions in the kernel arguments.

public static void SetGridDimensions(this KernelArguments arguments, (int x, int y, int z) gridDim)

Parameters

arguments KernelArguments

The kernel arguments

gridDim (int x, int y, int z)

Grid dimensions

SetLaunchConfiguration(KernelArguments, object)

Sets launch configuration in the kernel arguments.

public static void SetLaunchConfiguration(this KernelArguments arguments, object launchConfig)

Parameters

arguments KernelArguments

The kernel arguments

launchConfig object

Launch configuration

SetLocalWorkSize(KernelArguments, int[])

Sets local work size for OpenCL-style kernels.

public static void SetLocalWorkSize(this KernelArguments arguments, int[] localWorkSize)

Parameters

arguments KernelArguments

The kernel arguments

localWorkSize int[]

Local work size array

SetMetadata(KernelArguments, string, object?)

Sets metadata for the kernel arguments.

public static void SetMetadata(this KernelArguments arguments, string key, object? value)

Parameters

arguments KernelArguments

The kernel arguments

key string

The metadata key

value object

The metadata value

SetSharedMemorySize(KernelArguments, int)

Sets shared memory size in the kernel arguments.

public static void SetSharedMemorySize(this KernelArguments arguments, int sharedMemorySize)

Parameters

arguments KernelArguments

The kernel arguments

sharedMemorySize int

Shared memory size in bytes