Skip to content

Energy profiling tools: Variorum-based measurement tool#302

Draft
ethan-puyaubreau wants to merge 13 commits intokokkos:developfrom
ethan-puyaubreau:feature/energy-profiler-variorum
Draft

Energy profiling tools: Variorum-based measurement tool#302
ethan-puyaubreau wants to merge 13 commits intokokkos:developfrom
ethan-puyaubreau:feature/energy-profiler-variorum

Conversation

@ethan-puyaubreau
Copy link
Copy Markdown
Contributor

This PR adds a Variorum-based GPU/system power monitoring tool.

Depends on: feature/energy-profiler-daemon #300 and #299

This commit introduces the foundational infrastructure for energy profiling tools:

- Timer system for kernel and region tracking (timer_system.cpp/hpp)
- Common utilities (filename generation, error handling)
- Tool interface definitions (tool_interface.hpp)
- Basic kernel timer tool (kp_energy_kernel_timer)
- Unit tests for timer system and CSV export

This infrastructure provides a solid base that future energy provider
implementations can build upon. All components are self-contained
and do not depend on external energy monitoring libraries.
@ethan-puyaubreau ethan-puyaubreau force-pushed the feature/energy-profiler-variorum branch from 9dffd2e to 81ad294 Compare August 18, 2025 13:30
@ethan-puyaubreau ethan-puyaubreau marked this pull request as ready for review August 19, 2025 18:17
This commit extends the energy profiler infrastructure with:

- Generic Daemon class for background task execution (daemon.cpp/hpp)
- Thread-safe periodic execution with configurable intervals
- Clean start/stop lifecycle management
- Unit tests for daemon functionality (daemon_test.cpp)

The daemon system provides a reusable foundation for background
monitoring tasks that energy providers will use for periodic
power sampling.

Depends on: feature/energy-profiler-infrastructure
This commit adds comprehensive Variorum-based GPU/system power monitoring:

Variorum Provider:
- VariorumProvider class for GPU power monitoring (provider_variorum.cpp/hpp)
- JSON-based power data parsing with jansson library
- Comprehensive error handling and status checking
- Support for multiple GPU packages with individual queries

Kokkos Tools:
- kp_variorum_power: Background GPU power monitoring with daemon
- Configurable sampling intervals
- CSV export of power data with timestamps
- Thread-safe data collection

Testing:
- Unit tests for Variorum provider functionality
- Integration tests with daemon system
- Fast sampling tests (20ms intervals)

Features:
- Periodic power sampling for GPU/system components
- Detailed power statistics (min/max/avg/total energy)
- Clean initialization/finalization
- JSON data processing for Variorum output

Depends on: feature/energy-profiler-daemon
@ethan-puyaubreau ethan-puyaubreau force-pushed the feature/energy-profiler-variorum branch from b6ece00 to 3d110ed Compare August 25, 2025 18:06
@ethan-puyaubreau ethan-puyaubreau marked this pull request as draft August 29, 2025 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants