DotCompute.Generators.Attributes
0.6.2
dotnet add package DotCompute.Generators.Attributes --version 0.6.2
NuGet\Install-Package DotCompute.Generators.Attributes -Version 0.6.2
<PackageReference Include="DotCompute.Generators.Attributes" Version="0.6.2" />
<PackageVersion Include="DotCompute.Generators.Attributes" Version="0.6.2" />
<PackageReference Include="DotCompute.Generators.Attributes" />
paket add DotCompute.Generators.Attributes --version 0.6.2
#r "nuget: DotCompute.Generators.Attributes, 0.6.2"
#:package DotCompute.Generators.Attributes@0.6.2
#addin nuget:?package=DotCompute.Generators.Attributes&version=0.6.2
#tool nuget:?package=DotCompute.Generators.Attributes&version=0.6.2
DotCompute.Generators.Attributes
Consumer-facing attribute types for the DotCompute source generator framework.
Overview
This package provides the attributes and supporting types that consumers use to mark their methods as compute kernels. These types are automatically included when you reference DotCompute.Generators.
Attributes
KernelAttribute
Marks a static method as a compute kernel for GPU/CPU acceleration:
using DotCompute.Generators;
[Kernel(Backends = KernelBackends.Cuda | KernelBackends.Cpu)]
public static void VectorAdd(ReadOnlySpan<float> a, ReadOnlySpan<float> b, Span<float> result)
{
int idx = Kernel.ThreadId.X;
if (idx < result.Length)
result[idx] = a[idx] + b[idx];
}
RingKernelAttribute
Marks a method as a persistent ring kernel for continuous GPU-resident computation:
using DotCompute.Generators;
[RingKernel(
KernelId = "data-processor",
Domain = RingKernelDomain.ActorModel,
Mode = RingKernelMode.Persistent)]
public static void ProcessMessages(
IMessageQueue<DataMessage> incoming,
IMessageQueue<ResultMessage> outgoing)
{
while (incoming.TryDequeue(out var msg))
{
// Process message...
outgoing.Enqueue(new ResultMessage { ... });
}
}
RingKernelMessageAttribute
Marks a type as a message for ring kernel communication:
[RingKernelMessage(Direction = MessageDirection.Input)]
public struct DataMessage
{
public int Id;
public float Value;
}
Enums
| Enum | Description |
|---|---|
KernelBackends |
Target backends (Cpu, Cuda, OpenCL, Metal, All) |
BarrierScope |
Synchronization scope (ThreadBlock, Grid, Warp, Named, Tile) |
MemoryAccessPattern |
Memory access hints (Sequential, Strided, Random, Coalesced, Tiled) |
MemoryConsistencyModel |
Memory ordering (Relaxed, ReleaseAcquire, Sequential) |
OptimizationHints |
Optimization flags (AggressiveInlining, LoopUnrolling, Vectorize, etc.) |
RingKernelMode |
Execution mode (Persistent, EventDriven) |
RingKernelDomain |
Application domain (General, GraphAnalytics, SpatialSimulation, ActorModel) |
MessageDirection |
Message flow direction (Input, Output, Bidirectional) |
MessagePassingStrategy |
Communication strategy (SharedMemory, AtomicQueue, P2P, NCCL) |
RingProcessingMode |
Processing mode (Sequential, Parallel, Hybrid) |
Installation
This package is automatically included when you add the DotCompute.Generators package:
dotnet add package DotCompute.Generators --version 0.6.0
Or reference directly for attribute-only usage:
dotnet add package DotCompute.Generators.Attributes --version 0.6.0
Requirements
- .NET Standard 2.0+ (for maximum compatibility)
- Works with .NET Framework 4.6.1+, .NET Core 2.0+, .NET 5+
Documentation
License
MIT License - Copyright (c) 2025 Michael Ivertowski
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.2 | 38 | 2/9/2026 |