Skip to content

[rocprofiler-compute] Remove --nodes, --list-nodes and --spatial-multiplexing#7761

Open
vedithal-amd wants to merge 2 commits into
rocprofiler-compute-developfrom
users/vedithal-amd/remove-nodes-spatial-multiplexing
Open

[rocprofiler-compute] Remove --nodes, --list-nodes and --spatial-multiplexing#7761
vedithal-amd wants to merge 2 commits into
rocprofiler-compute-developfrom
users/vedithal-amd/remove-nodes-spatial-multiplexing

Conversation

@vedithal-amd

Copy link
Copy Markdown
Contributor

Motivation

The multi-node analysis options (--nodes, --list-nodes) and the experimental --spatial-multiplexing option (profile and analyze) did not work as expected. Rather than carry partially-working surface area, this removes the feature family completely so it can be redesigned and reintroduced cleanly later.

Technical Details

  • Removed CLI options --nodes, --list-nodes, and --spatial-multiplexing (both profile and analyze), and the spatial-multiplexing line from --experimental help.
  • Removed all supporting plumbing with no shims left behind: the Node column, filter_nodes (schema/parser/file_io), get_valid_nodes, find_1st_sub_dir, the node/spatial branches in create_df_pmc, merge_counters_spatial_multiplex, and the spatial bucketing in soc_base.
  • Simplified analyze sysinfo/CSV-join paths to the single-node case.
  • Removed the corresponding unit tests; added a one-line CHANGELOG removal note.

JIRA ID

Test Plan

  • ruff check and ruff format --check over src/tools/tests.
  • Unit tests: tests/test_utils.py, tests/test_profiler_base.py, and the apply_filters / create_df_kernel_top_stats / join tests in tests/test_analyze_commands.py.

Test Result

All listed unit tests pass; ruff and format checks clean.

Submission Checklist

…iplexing

- Remove the multi-node analyze options --nodes and --list-nodes and the
  experimental --spatial-multiplexing option from profile and analyze modes.
- Remove the supporting plumbing: Node-column handling, filter_nodes,
  get_valid_nodes, find_1st_sub_dir, create_df_pmc node branches,
  merge_counters_spatial_multiplex, and the soc_base spatial bucketing.
- These features did not work as expected and will be redesigned later.

Co-Authored-By: Claude Opus 4 (1M context)
…moval

- Replace removed create_df_pmc nodes/spatial_multiplexing signature and the
  deleted spatial_multiplex_merge_counters example with the current code.
- Use the iteration-multiplexing path in the pre_processing examples instead.

Co-Authored-By: Claude Opus 4 (1M context)
@vedithal-amd vedithal-amd marked this pull request as ready for review June 24, 2026 18:04
@vedithal-amd vedithal-amd requested review from a team and prbasyal-amd as code owners June 24, 2026 18:04
Copilot AI review requested due to automatic review settings June 24, 2026 18:04
@vedithal-amd vedithal-amd requested a review from a team as a code owner June 24, 2026 18:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes rocprofiler-compute’s previously experimental/partial multi-node analysis surface area (--nodes, --list-nodes) and spatial multiplexing (--spatial-multiplexing in profile/analyze), simplifying the codebase to the single-node workload layout.

Changes:

  • Drops the CLI options and all downstream plumbing (schema fields, filters, I/O helpers, spatial merge logic).
  • Simplifies analysis/workload loading and CSV join logic to assume sysinfo.csv/pmc_perf.csv live in the workload root directory.
  • Removes/updates affected unit tests and documents the removal in the CHANGELOG and coding-style guide.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
projects/rocprofiler-compute/tools/metric_validation.py Updates PMC dataframe load call to new create_df_pmc signature.
projects/rocprofiler-compute/tools/counter_grouping_inspector.py Removes unused spatial multiplexing argument plumbing.
projects/rocprofiler-compute/tests/test_utils.py Removes unit tests for removed spatial-multiplex counter merge helper.
projects/rocprofiler-compute/tests/test_profiler_base.py Removes spatial multiplexing arg from test arg scaffolding.
projects/rocprofiler-compute/tests/test_analyze_commands.py Removes node-related test data/coverage and updates call signatures.
projects/rocprofiler-compute/src/utils/utils_analysis.py Deletes merge_counters_spatial_multiplex helper.
projects/rocprofiler-compute/src/utils/schema.py Removes Workload.filter_nodes from schema.
projects/rocprofiler-compute/src/utils/parser.py Removes node filtering from apply_filters.
projects/rocprofiler-compute/src/utils/file_io.py Simplifies create_df_pmc, removes node filtering and node discovery helpers.
projects/rocprofiler-compute/src/rocprof_compute_tui/analysis_tui.py Removes spatial multiplex merge and node filter propagation.
projects/rocprofiler-compute/src/rocprof_compute_soc/soc_base.py Removes spatial multiplexing perfmon bucketing logic, simplifies file emission.
projects/rocprofiler-compute/src/rocprof_compute_profile/profiler_base.py Removes now-dead sanitize check for spatial multiplexing + torch trace.
projects/rocprofiler-compute/src/rocprof_compute_base.py Simplifies sysinfo loading path for analysis runs.
projects/rocprofiler-compute/src/rocprof_compute_analyze/analysis_webui.py Removes node/spatial multiplexing filter paths and merge step.
projects/rocprofiler-compute/src/rocprof_compute_analyze/analysis_db.py Removes spatial multiplex merge step.
projects/rocprofiler-compute/src/rocprof_compute_analyze/analysis_cli.py Removes spatial multiplex merge step and node filter propagation.
projects/rocprofiler-compute/src/rocprof_compute_analyze/analysis_base.py Removes node/spatial multiplexing logic from sysinfo discovery, sanitize, join flow, and API surface.
projects/rocprofiler-compute/src/argparser.py Removes --nodes, --list-nodes, and --spatial-multiplexing flags and help text.
projects/rocprofiler-compute/PYTHON_CODING_STYLE.md Updates examples to reflect simplified single-directory create_df_pmc usage.
projects/rocprofiler-compute/CHANGELOG.md Documents removal of multi-node/spatial multiplexing options.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +772 to 775
sys_info = pd.read_csv(f"{base_path}/sysinfo.csv")
sys_info_dict = {
key: value[0] for key, value in sys_info.to_dict("list").items()
}
Comment on lines +226 to 229
sysinfo_path = path_info[0]
if sysinfo_path:
sys_info = pd.read_csv(f"{sysinfo_path}/sysinfo.csv")
arch = sys_info.iloc[0]["gpu_arch"]
Comment on lines 242 to 246
w = schema.Workload()
sysinfo_path = get_sysinfo_path(path_info[0])
sysinfo_path = path_info[0]
if sysinfo_path:
w.sys_info = pd.read_csv(f"{sysinfo_path}/sysinfo.csv")
if not getattr(args, "no_roof", False):
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants