-
Notifications
You must be signed in to change notification settings - Fork 92
Fix profiler and TAU harness checks #181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1696,11 +1696,11 @@ set_property(TEST Rocprof-sys_ROCm_Run_Check PROPERTY PASS_REGULAR_EXPRESSION "T | |
| set_property(TEST Rocprof-sys_ROCm_Run_Check PROPERTY SKIP_REGULAR_EXPRESSION "module spider") | ||
|
|
||
| add_test(NAME Rocprof-sys_ROCm_Stream_Overlap COMMAND ../rocprof-sys_stream_overlap.sh ) | ||
| set_property(TEST Rocprof-sys_ROCm_Stream_Overlap PROPERTY PASS_REGULAR_EXPRESSION "proto") | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. as you see in the other tests, we want the tests to have a twofold purpose: 1 be used to check that the installation is working, that is why they are part of the test suite. 2 make sure that when a user runs them standalone they can still get the information they need so we don't want the tests to just output a "PASSED" message, we want the test to also print out the configuration and parameters someone would be interested in seeing. please make sure your changes still allow this, thanks
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Left CMakeLists.txt as sent. Each script still prints the tool's own config, paths and parameters, and only adds the artifact-assertion line. The six emit strings still match the PASS_REGULAR_EXPRESSIONs. |
||
| set_property(TEST Rocprof-sys_ROCm_Stream_Overlap PROPERTY PASS_REGULAR_EXPRESSION "ROCPROFSYS_STREAM_OVERLAP_RESULT: PASS") | ||
| set_property(TEST Rocprof-sys_ROCm_Stream_Overlap PROPERTY SKIP_REGULAR_EXPRESSION "module spider") | ||
|
|
||
| add_test(NAME Rocprof-compute_ROCm_Roofline_Check COMMAND ../rocprof-compute_roofline_check.sh) | ||
| set_property(TEST Rocprof-compute_ROCm_Roofline_Check PROPERTY PASS_REGULAR_EXPRESSION "Empirical Roofline .* saved!") | ||
| set_property(TEST Rocprof-compute_ROCm_Roofline_Check PROPERTY PASS_REGULAR_EXPRESSION "ROOFLINE_RESULT: PASS") | ||
| set_property(TEST Rocprof-compute_ROCm_Roofline_Check PROPERTY SKIP_REGULAR_EXPRESSION "module spider" "disabled on MI300") | ||
| set_tests_properties(Rocprof-compute_ROCm_Roofline_Check PROPERTIES TIMEOUT 600) | ||
|
|
||
|
|
@@ -1756,19 +1756,19 @@ set_property(TEST JAX_Mnist PROPERTY SKIP_REGULAR_EXPRESSION "module spider" "Un | |
| # TAU Tests | ||
|
|
||
| add_test(NAME TAU_Trace_Check COMMAND ../tau_exec_check.sh --tau-trace) | ||
| set_property(TEST TAU_Trace_Check PROPERTY PASS_REGULAR_EXPRESSION "tautrace.0") | ||
| set_property(TEST TAU_Trace_Check PROPERTY PASS_REGULAR_EXPRESSION "TAU_CHECK: trace artifact PRESENT") | ||
| set_property(TEST TAU_Trace_Check PROPERTY SKIP_REGULAR_EXPRESSION "module spider tau" "Unable to locate a modulefile for 'tau'") | ||
|
|
||
| add_test(NAME TAU_Profile_Check COMMAND ../tau_exec_check.sh --tau-profile) | ||
| set_property(TEST TAU_Profile_Check PROPERTY PASS_REGULAR_EXPRESSION "profile.0") | ||
| set_property(TEST TAU_Profile_Check PROPERTY PASS_REGULAR_EXPRESSION "TAU_CHECK: profile artifact PRESENT") | ||
| set_property(TEST TAU_Profile_Check PROPERTY SKIP_REGULAR_EXPRESSION "module spider tau" "Unable to locate a modulefile for 'tau'") | ||
|
|
||
| add_test(NAME TAU_Check_HIP_Profile COMMAND ../tau_exec_check.sh --tau-profile) | ||
| set_property(TEST TAU_Check_HIP_Profile PROPERTY PASS_REGULAR_EXPRESSION "hipMemcpy") | ||
| set_property(TEST TAU_Check_HIP_Profile PROPERTY PASS_REGULAR_EXPRESSION "TAU_CHECK: HIP routines PRESENT in profile") | ||
| set_property(TEST TAU_Check_HIP_Profile PROPERTY SKIP_REGULAR_EXPRESSION "module spider tau" "Unable to locate a modulefile for 'tau'") | ||
|
|
||
| add_test(NAME TAU_Check_MPI_Profile COMMAND ../tau_exec_check.sh --tau-profile) | ||
| set_property(TEST TAU_Check_MPI_Profile PROPERTY PASS_REGULAR_EXPRESSION "MPI_Allreduce()") | ||
| set_property(TEST TAU_Check_MPI_Profile PROPERTY PASS_REGULAR_EXPRESSION "TAU_CHECK: MPI routines PRESENT in profile") | ||
| set_property(TEST TAU_Check_MPI_Profile PROPERTY SKIP_REGULAR_EXPRESSION "module spider tau" "Unable to locate a modulefile for 'tau'") | ||
| set_property(TEST TAU_Check_MPI_Profile PROPERTY TIMEOUT 600) | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -23,4 +23,13 @@ cmake .. | |
| make | ||
|
|
||
| export HSA_XNACK=1 | ||
| # rocprof-compute needs Python >= 3.10: its native_tool_finder.py annotates with | ||
| # a PEP 604 union (Path | None) and has no "from __future__ import annotations", | ||
| # so on Python 3.9 the annotation raises TypeError at import. Fail here with the | ||
| # reason rather than later from inside the tool. | ||
| if ! python3 -c 'import sys; sys.exit(0 if sys.version_info >= (3,10) else 1)' 2>/dev/null; then | ||
| echo "ERROR: rocprof-compute needs Python >= 3.10, but python3 is $(python3 -V 2>&1)." | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. double check this claim please
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Double-checked on AAC7. ROCm 7.14.0's rocprof-compute (3.7.0) native_tool_finder.py uses Path | None with no from future import annotations. System python3 3.9.21 raises TypeError at import (line 38); Cray Python 3.12.12 imports fine. So it is a TypeError, not a SyntaxError — the comment is fixed in 445fae8. The site 3.2.3 tool still runs on 3.9. On AAC6, python3 is already 3.12.3 and the tool is also 3.7.0, so the >= 3.10 guard does not fire there and should stay as written.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. push that commit directly so we see the files arleady change thanks
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nevermind I see it |
||
| echo "ERROR: load a newer Python before running this test." | ||
| exit 1 | ||
| fi | ||
| rocprof-compute profile -n v1 --no-roof -- ./saxpy | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make sure to test that the changes you are proposing here do not break anything on aac6: run this branch there to make sure these python stuff works there too. rocprof-compute + python can be tricky. thanks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran the four rocprof-compute scripts on AAC6 (PPAC_MI300A_SPX, job 19332, node ppac-pl1-s24-26) with module load rocm/7.14.0 and the PR checkout at commit 1cec3a7. Profile and roofline pass. Analyze and single_process fail because rocprof-compute's pinned Python packages are missing or the wrong version — the same pin wall as AAC7, not the >=3.10 guard. System python3 is already 3.12.3, and rocprof-compute is 3.7.0 here, the same generation as AAC7, not the older 3.2.3 build. The follow-up commit only changes comments, so that run still applies. Note and log on AAC6: /shared/prerelease/home/amd_int/danieleb/HPC_OpemMPI_on_AAC7/docs/tasks/pr181/pr181-aac6-2026-08-31.md and evidence/pr181-aac6-2026-08-31-rerun.log beside it.