This high-performance Rust daemon is designed to capture high-fidelity GPU telemetry data from demanding gaming workloads. Specifically optimized for systems running Resident Evil 4 and Cyberpunk 2077 with Path Tracing and DLSS 4.0, it provides the rich, high-frequency time-series data required to train Spiking Neural Networks (SNNs) and Liquid State Machines.
The collector identifies "excitatory" spikes (e.g., PCIe bus floods during asset loading) and "inhibitory" signals (e.g., thermal throttling or power caps), mimicking the dynamics of biological neural systems.
- Ultra-Low Latency Polling: Captures metrics at 5-millisecond intervals using the NVIDIA Management Library (NVML).
- Asynchronous I/O: To prevent performance drops during heavy gaming (Path Tracing), data is buffered in memory and written to versioned Parquet files (
gpu_telemetry_v1_batch_N.parquet) asynchronously usingtokioandpolars. - DuckDB Integration: Includes a built-in query utility for instant analysis of the captured Parquet batches.
- Rich Metric Suite: Captures complex hardware states beyond simple temperature and power.
The telemetry captures a blend of fast-moving transients and slow-moving momentum metrics:
- PCIe Rx/Tx Throughput: Detects data floods from the CPU/Memory (e.g., BVH structure updates for Path Tracing).
- Power Usage & Temperature: High-frequency transients.
- Graphics & Memory Clocks: Tracking the "firing rate" of the silicon.
- Throttle Reasons: Captures bitmasks for Power, Thermal, and Sync limits (Inhibitory signals).
- Fan Speed (RPM): A slow-moving physical momentum metric.
- VRAM Utilization: Tracks spatial memory pressure and allocation spikes.
- OS: Fedora 43 Linux
- GPU: NVIDIA (Optimized for RTX 50-series, compatible with others)
- Drivers: Proprietary NVIDIA drivers with NVML support.
- Build Tools: Rust (Cargo)
Run the daemon in release mode to ensure minimal overhead and maximum timing accuracy.
cargo run --release --bin gaming-telemetryThe daemon continuously polls telemetry and writes versioned batches as:
gpu_telemetry_v1_batch_N.parquet
CPU package power is recorded from the CpuMonitor time-delta energy-counter path.
Convert one v1 Parquet batch into the stable 5-column replay schema:
cargo run --bin export_csv gpu_telemetry_v1_batch_1.parquet canonical.csvCanonical CSV header (exact order):
timestamp_ms,gpu_temp_c,gpu_power_w,cpu_tctl_c,cpu_package_power_w
gpu_power_w is exported as power_usage_mw / 1000.0. CPU columns come from recorded parquet columns.
Use the query utility for ad-hoc analysis:
cargo run --bin query gpu_telemetry_v1_batch_1.parquetOne-way flow:
collector -> gpu_telemetry_v1_batch_N.parquet -> export_csv -> canonical.csv -> corinth-canal/examples/csv_replay
Consumer command in corinth-canal:
cargo run --example csv_replay canonical.csvThe data collected is structured to be directly useful for Neuromorphic computing:
- Excitatory Inputs: PCIe throughput and VRAM allocation rate.
- Firing Rates: Clock speeds and Power transients.
- Inhibitory Inputs: Thermal/Power throttling bitmasks.
- State/Momentum: Fan speeds and absolute VRAM usage.
GPL-3.0 License. See LICENSE for details.