Update roofline bins for rocm7 changes (#755)

* Update current bins to have rocm6 suffix. Add new rocm7 bins, built on rocm7.0 latest due to hip updates.

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

* Re-add rocm version check for roof bins.

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

* Rebuild roofline binaries on top of latest rocm7 (#16379) after recent mainline promotions.
Adjusting version and distro combinations of bins following rocm6 vs rocm 7 supported OS.
*rhel8 not supported on rocm7, also not built anymore
*sles15 not supported on rocm7 but is still being built
*ubuntu stays as 22.04 and above for rocm7

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

* Minor fixes after testing.

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

* Fixed bad copy after finding it in testing ctest.

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

* Remove runpath from new bin

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

* Rework target_binary map return in detect_roofline- we should not be returning maps of different sizes or with different keys for the same method. Expected output should be consistent in case we run into bad position, or for testing purposes. Manually tested all possible roofline bin expected cases to comfirm functionality and expected user output.

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

* Update changelog with new roofline distro minimums

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: 3df0d1dded]
Dieser Commit ist enthalten in:
cfallows-amd
2025-07-08 16:51:50 -04:00
committet von GitHub
Ursprung bac7fde4f4
Commit 7862701993
8 geänderte Dateien mit 41 neuen und 14 gelöschten Zeilen
@@ -78,6 +78,9 @@ Full documentation for ROCm Compute Profiler is available at [https://rocm.docs.
* Total FLOPs (consider fp6 and fp4 ops)
* Update Dash to >=3.0.0 (for web UI)
* Change when Roofline PDFs are generated- during general profiling and --roof-only profiling (skip only when --no-roof option is present)
* Update Roofline binaries
* Rebuild using latest ROCm stack
* OS distribution support minimum for roofline feature is now Ubuntu22.04, RHEL9, and SLES15SP6
### Resolved issues
Binäre Datei nicht angezeigt.
Binäre Datei nicht angezeigt.
Binäre Datei nicht angezeigt.
@@ -1169,6 +1169,10 @@ def gen_sysinfo(
def detect_roofline(mspec):
from utils import specs
rocm_ver = mspec.rocm_version[:1]
target_binary = {"rocm_ver": rocm_ver, "distro": "override", "path": None}
os_release = path("/etc/os-release").read_text()
ubuntu_distro = specs.search(r'VERSION_ID="(.*?)"', os_release)
rhel_distro = specs.search(r'PLATFORM_ID="(.*?)"', os_release)
@@ -1177,38 +1181,51 @@ def detect_roofline(mspec):
if "ROOFLINE_BIN" in os.environ.keys():
rooflineBinary = os.environ["ROOFLINE_BIN"]
if path(rooflineBinary).exists():
console_warning("roofline", "Detected user-supplied binary")
return {
"distro": "override",
"path": rooflineBinary,
}
msg = "Detected user-supplied binary --> ROOFLINE_BIN = %s\n" % rooflineBinary
console_warning("roofline", msg)
# distro stays marked as override and path value is substituted in
target_binary["path"] = rooflineBinary
return target_binary
else:
msg = "user-supplied path to binary not accessible"
msg += "--> ROOFLINE_BIN = %s\n" % target_binary
msg = (
"user-supplied path to binary not accessible --> ROOFLINE_BIN = %s\n"
% rooflineBinary
)
console_error("roofline", msg)
elif (
# Must be a valid RHEL machine
elif rocm_ver == 6 and (
rhel_distro == "platform:el8"
or rhel_distro == "platform:al8"
or rhel_distro == "platform:el9"
or rhel_distro == "platform:el10"
or rhel_distro == "platform:al8"
):
# Must be a valid RHEL machine
# RHEL8 supported up to ROCm6
distro = "platform:el8"
elif rocm_ver == 7 and (
rhel_distro == "platform:el9" or rhel_distro == "platform:el10"
):
# ROCm7 supports RHEL9 and above
distro = "platform:el9"
# Must be a valid SLES machine
elif (
(type(sles_distro) == str and len(sles_distro) >= 3)
and sles_distro[:2] == "15" # confirm string and len
and int(sles_distro[3]) >= 6 # SLES15 and SP >= 6
):
# Must be a valid SLES machine
# Use SP6 binary for all forward compatible service pack versions
distro = "15.6"
# Must be a valid Ubuntu machine
elif ubuntu_distro == "22.04" or ubuntu_distro == "24.04":
# Must be a valid Ubuntu machine
distro = "22.04"
else:
console_error("roofline", "Cannot find a valid binary for your operating system")
target_binary = {"distro": distro}
# distro gets assigned, to follow default roofline bin location and nomenclature
target_binary["distro"] = distro
return target_binary
@@ -1218,6 +1235,7 @@ def mibench(args, mspec):
distro_map = {
"platform:el8": "rhel8",
"platform:el9": "rhel9",
"15.6": "sles15sp6",
"22.04": "ubuntu22_04",
}
@@ -1236,7 +1254,13 @@ def mibench(args, mspec):
]
for dir in potential_paths:
path_to_binary = dir + "-" + distro_map[target_binary["distro"]]
path_to_binary = (
dir
+ "-"
+ distro_map[target_binary["distro"]]
+ "-rocm"
+ target_binary["rocm_ver"]
)
binary_paths.append(path_to_binary)
# Distro is valid but cant find rocm ver