Skip to content

Rlog scoped ranges - #134

Merged
mwootton merged 3 commits into
ROCm:rlogfrom
mwootton:rlog-scoped-ranges
Sep 10, 2026
Merged

mwootton merged 3 commits into
ROCm:rlogfrom
mwootton:rlog-scoped-ranges

Conversation

@mwootton

@mwootton mwootton commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Purpose

Add utility functions for rlog clients. Scoped-markers and decorators.

What does this PR do?

Adds C++ scoped markers to maintain rlog range push/pops. 'Zero' overhead when logging is off. Leverages a lazy lambda.
Add a python context manager; not so free when logging is off. Best to use the simple guard pattern for short durations.
Add a python decorator; less overhead than the context manager. Reasonable to leave on in production.

How was it tested?

Created benchmark test to verify functionality and performance.
Heavily benchmarked to justify the suggested patterns are effective. Documented timings.

rlog lives on its own orphan branch of ROCm/rocmProfileData and is consumed
from there as a submodule; there is no 'main' branch. CI triggered on
push/pull_request to [main], so it has never run: PRs against the rlog branch
were silently green with no build and no ctest.

Trigger on [rlog] instead, and say in CONTRIBUTING that the PR base must be
changed from the repository default (master).
rlog::Range (header-only) and the Python range()/range_decorator() push on
entry and pop on exit. Install Range.h. Document both in the READMEs and fix
the Python quick-start example.
bench_range and python/bench_range.py measure rlog::Range and the Python
helpers with expensive range arguments. Update the benchmark READMEs.
@mwootton
mwootton merged commit 362f090 into ROCm:rlog Sep 10, 2026
1 check passed
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.

1 participant