Expand description
Procedural macros for RustKernels.
This crate provides the following macros:
#[gpu_kernel]- Define a GPU kernel with metadata#[derive(KernelMessage)]- Derive serialization for kernel messages#[kernel_state]- Mark types as GPU-compatible kernel state
For low-level ring kernel macros, see ringkernel-derive 0.4.2 which provides:
#[derive(RingMessage)]- Ring message serialization with domain-based type IDs#[derive(PersistentMessage)]- CUDA persistent message dispatch#[derive(ControlBlockState)]- Embedded state for GPU ControlBlocks#[derive(GpuType)]- Pod+Zeroable for GPU data transfer#[ring_kernel]- Ring kernel handler generation#[stencil_kernel]- CUDA stencil pattern kernels
§Example
ⓘ
use rustkernel_derive::gpu_kernel;
#[gpu_kernel(
id = "graph/pagerank",
mode = "ring",
domain = "GraphAnalytics",
throughput = 100_000,
latency_us = 1.0
)]
pub async fn pagerank_kernel(
ctx: &mut RingContext,
request: PageRankRequest,
) -> PageRankResponse {
// Implementation
}Attribute Macros§
- gpu_
kernel - Define a GPU kernel with metadata.
- kernel_
state - Attribute for marking kernel state types.
Derive Macros§
- Kernel
Message - Derive macro for kernel messages.