Skip to main content

Module telemetry

Module telemetry 

Source
Expand description

Launch telemetry: timing, occupancy, and register usage reporting.

This module provides post-launch diagnostics for GPU kernel execution. After a kernel launch, LaunchTelemetry captures grid/block dimensions, GPU-side timing, achieved occupancy, and register usage. A TelemetryCollector accumulates entries and produces a TelemetrySummary with per-kernel aggregation.

Telemetry can be exported to JSON, CSV, or Chrome trace format via TelemetryExporter.

§Example

use oxicuda_launch::telemetry::{LaunchTelemetry, TelemetryCollector};

let mut collector = TelemetryCollector::new(1000);
let entry = LaunchTelemetry::new("vector_add", (4, 1, 1), (256, 1, 1))
    .with_elapsed_ms(0.5)
    .with_achieved_occupancy(0.85);
collector.record(entry);
let summary = collector.summary();
assert_eq!(summary.total_launches, 1);

Structs§

KernelStats
Aggregated statistics for a single kernel across multiple launches.
LaunchTelemetry
Telemetry data collected after a single kernel launch.
TelemetryCollector
Accumulates LaunchTelemetry entries and produces summaries.
TelemetryExporter
Export telemetry data in various formats.
TelemetrySummary
Summary of all collected telemetry data.

Enums§

SmVersion
GPU architecture version for occupancy estimation.

Functions§

estimate_occupancy
Estimates theoretical occupancy for a kernel launch configuration.