[Test] Add rocHPL test - #49
Open
pranavprakash-amd wants to merge 2 commits into
Open
Conversation
pranavprakash-amd
requested review from
a team,
madkasul and
mparamas-amd
as code owners
July 16, 2026 16:42
Signed-off-by: Pranav Prakash <pranav.prakash@amd.com>
pranavprakash-amd
force-pushed
the
users/pranavprakash-amd/rochpl
branch
from
July 22, 2026 06:54
6531b36 to
c3944ba
Compare
mparamas-amd
requested changes
Jul 24, 2026
| return os.path.isfile(path) | ||
|
|
||
|
|
||
| def _resolve_llvm_bin(rock_dir: str, cmake_executor) -> str: |
Contributor
There was a problem hiding this comment.
this may not be required, as rocm_path referred to PATH for build. pls check.
| @@ -0,0 +1,65 @@ | |||
| # Copyright Advanced Micro Devices, Inc. | |||
| # SPDX-License-Identifier: MIT | |||
Contributor
There was a problem hiding this comment.
Check to include all matrix variants, see If a json variant within this file (if small) shall replace the csv combinations. typically run for 1:2:4:8 GPU counts X ASIC specific P/Q/N/NB
Look to parameterize this input to run the test_rochpl.py
| if runtime is not None: | ||
| logger.info("rocHPL: using discovered MPI runtime at %s", runtime.launcher) | ||
| return runtime | ||
| version = os.environ.get("ROCM_TEST_ROCHPL_OPENMPI_VERSION") or os.environ.get("OPENMPI_VERSION") or "4.1.4" |
Contributor
There was a problem hiding this comment.
is OpenMPI version - '4.1.4' necessary ?, I see the source has different - 5.0.6
Signed-off-by: Pranav Prakash <pranav.prakash@amd.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Add a rocHPL (High-Performance Linpack) end-to-end HPC benchmark to the ROCm test framework. This validates the full ROCm compute stack — HIP
runtime → rocBLAS/DGEMM → MPI multi-rank orchestration — through a real, GPU-saturating LU-factorization workload, one of the canonical HPC
acceptance benchmarks for AMD GPU systems.
It also ports the legacy tests/HPC/perf_rochpl/{runRocHpl.py,build_rocHPL.sh,runRochpl.sh} scripts out of the external AMD BareMetal perf-test
framework and into the marker-compliant, remote-transparent rocm-tests framework — replacing rocminfo ASIC scraping, hand-set
ROCR_VISIBLE_DEVICES, sudo+password build steps, and per-ASIC CSV lookups with executor-injected GPU allocation and env-configurable parameters.
Technical Details
mpirun_rochpl launcher, then asserts the HPL residual check PASSED, parses the total GFLOPS from HPL.out, records it as a metric (ROCHPL_GFLOPS),
and enforces an optional ROCHPL_MIN_GFLOPS floor.
single-file compile_binary/hipcc path), so it uses the framework's remote-transparent external-build primitives (clone_repo,
assert_license_present, detect_mpi_runtime / provision_openmpi_runtime) plus a streaming install.sh runner. MPI + ROCm env is injected via an env
VAR=... cmd prefix, never by mutating os.environ. Build trees are namespaced by GPU arch and process-grid config to force a clean rebuild on
--gpu-arch/ROCHPL_NUM_GPUS changes.
build and run sides so grid size and gpu_count can never drift. Includes an OpenMPI+UCX single-node fallback for nodes without a fast RDMA
fabric.
os.linux). The test overrides hw.* to hw.gpu in single-GPU mode (ROCHPL_NUM_GPUS=1) and declares runtime.soak + gpu_count(N) explicitly.
Test Plan
pytest tests/e2e/hpc/rochpl/ --collect-only -q --no-gpu
ROCHPL_NUM_GPUS=1 pytest tests/e2e/hpc/rochpl/ -m "hw.gpu" --gpu-arch -v
pytest tests/e2e/hpc/rochpl/ -m "hw.multi_gpu" --gpu-arch -v
Test Result
====================================================== ROCm Test Suite Summary ======================================================
Test Directory PASS FAIL SKIP ERROR Duration
────────────────────────────────────────────────────────────
tests/e2e/hpc/rochpl 0 1 0 0 5.2 s
────────────────────────────────────────────────────────────
TOTAL 1 tests │ 0 passed │ 1 failed │ 0 skipped │ 0 error │ 5.2 s
Failed tests:
• tests/e2e/hpc/rochpl/test_rochpl.py::test_rochpl_benchmark
Submission Checklist