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 core gaming-telemetry collector performs only hardware telemetry (NVIDIA NVML GPU metrics at 5 ms + CPU power/temps via hwmon/RAPL) and writes Parquet/CSV outputs to the current working directory. It does not scan user home directories, discover Steam libraries, read Proton prefixes, or embed personal paths anywhere in its operation or data.
- Run the collector from a clean, dedicated working directory (or
cdinto one) so that generatedgpu_telemetry_v1_batch_*.parquetfiles stay isolated and do not mix with personal data. - Launch Cyberpunk 2077 with MangoHud enabled (the collector detects
mangohud_activeand records it for correlation). - Use
cargo run --bin export_csv ...and the DuckDBquerybin for analysis — all outputs remain under your control. - Keep telemetry sessions in version-controlled or ephemeral directories when sharing data for SNN training (e.g. with
corinth-canal).
Note on setup verification: A minimal verify_cyberpunk skeleton has been restored (src/bin/verify_cyberpunk.rs) to address #9. It is a privacy-safe placeholder for the full workload verifier (PT, DLSS 4 Transformer, UltraPlus/CET mods, crowd, HD textures, etc.).
It requires an explicit --game-path (never auto-discovers $HOME/Steam/Proton/compatdata). Every path in its text/JSON output is redacted by default using the same redact_personal_path helpers (see privacy.rs and #10/#14).
Example (CI guard also exercises this against fixtures + synthetic redaction test):
cargo run --bin verify_cyberpunk -- --game-path ./tests/fixtures/mods/pass --format text --dry-run
cargo run --bin verify_cyberpunk -- --game-path /path/you/control/for/Cyberpunk\ 2077 --format jsonAll output stays redacted. This (plus the core collector never walking personal dirs, the privacy guard job, and updated CI) makes the repo ready for privacy-safe CP2077 telemetry capture. Full deep checks can be expanded in the skeleton later.
See parent #7, #9 (sources), #10 (leaks), #14 (workflow), and the Privacy section above. The CI privacy-and-verify-guard now actually runs it.
The 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.