From 9819e1cbfcf60e2cba1c8c04016792e50915b70f Mon Sep 17 00:00:00 2001 From: cfallows-amd Date: Mon, 22 Sep 2025 12:04:20 -0400 Subject: [PATCH] Refactor roofline binary detection (#933) * Simplify the roofline binary pickup process by determining which base distribution the system OS is based off of, and select the correct binary. * Add more OS distribution support to roofline by modifying the detection parameters and adding an AZL binary * Update changelog to include roofline support additions --------- Signed-off-by: Carrie Fallows --- projects/rocprofiler-compute/CHANGELOG.md | 2 + .../rooflines/roofline-azurelinux3-rocm7 | Bin 0 -> 486112 bytes .../rocprofiler-compute/src/utils/utils.py | 37 +++++----- .../rocprofiler-compute/tests/test_utils.py | 63 +++++++++--------- 4 files changed, 51 insertions(+), 51 deletions(-) create mode 100755 projects/rocprofiler-compute/src/utils/rooflines/roofline-azurelinux3-rocm7 diff --git a/projects/rocprofiler-compute/CHANGELOG.md b/projects/rocprofiler-compute/CHANGELOG.md index b385de2a1f..6a3424106d 100644 --- a/projects/rocprofiler-compute/CHANGELOG.md +++ b/projects/rocprofiler-compute/CHANGELOG.md @@ -58,6 +58,8 @@ Full documentation for ROCm Compute Profiler is available at [https://rocm.docs. * L1I-L2 Bandwidth * sL1D-L2 BW +* Roofline support for Debian 12 and Azure Linux 3.0. + ### Changed * On memory chart, long string of numbers are displayed as scientific notation. It also solves the issue of overflow of displaying long number diff --git a/projects/rocprofiler-compute/src/utils/rooflines/roofline-azurelinux3-rocm7 b/projects/rocprofiler-compute/src/utils/rooflines/roofline-azurelinux3-rocm7 new file mode 100755 index 0000000000000000000000000000000000000000..ecc2de60ac4e774f41f0441c257efcc568e3b50e GIT binary patch literal 486112 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�f$|WxzYC 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 E1KVHZdjJ3c literal 0 HcmV?d00001 diff --git a/projects/rocprofiler-compute/src/utils/utils.py b/projects/rocprofiler-compute/src/utils/utils.py index 4e963bf764..d331365ccd 100644 --- a/projects/rocprofiler-compute/src/utils/utils.py +++ b/projects/rocprofiler-compute/src/utils/utils.py @@ -1159,10 +1159,13 @@ def detect_roofline(mspec: Any) -> dict[str, str]: # noqa: ANN401 "path": None, } + # Create distro ID list based off of ID (a string, containing a single distro) + # and ID_LIKE (a string, listing at least one distro, separated by a single space) + # from the system /etc/os-release file 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) - sles_distro = specs.search(r'VERSION_ID="(.*?)"', os_release) + id_list = specs.search(r'^ID_LIKE="?(.*?)"?$', os_release) or "" + id = specs.search(r'^ID="?(.*?)"?$', os_release) or "" + id_list = id_list.split() + [id] if "ROOFLINE_BIN" in os.environ.keys(): rooflineBinary = os.environ["ROOFLINE_BIN"] @@ -1181,28 +1184,19 @@ def detect_roofline(mspec: Any) -> dict[str, str]: # noqa: ANN401 f"ROOFLINE_BIN = {rooflineBinary}\n", ) - # Must be a valid RHEL machine - elif rhel_distro in { - "platform:el8", - "platform:al8", - "platform:el9", - "platform:el10", - }: + # check that the system OS is based off of one of the following distributions + elif "azurelinux" in id_list: + distro = "azurelinux" + + elif "debian" in id_list: + distro = "22.04" + + elif "fedora" in id_list: distro = "platform:el8" - # Must be a valid SLES machine - elif ( - isinstance(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 - ): - # Use SP6 binary for all forward compatible service pack versions + elif "suse" in id_list: distro = "15.6" - # Must be a valid Ubuntu machine - elif ubuntu_distro in {"22.04", "24.04"}: - distro = "22.04" else: console_error( "roofline", "Cannot find a valid binary for your operating system" @@ -1221,6 +1215,7 @@ def mibench(args: argparse.Namespace, mspec: Any) -> None: # noqa: ANN401 "platform:el8": "rhel8", "15.6": "sles15sp6", "22.04": "ubuntu22_04", + "azurelinux": "azurelinux3", } binary_paths: list[str] = [] diff --git a/projects/rocprofiler-compute/tests/test_utils.py b/projects/rocprofiler-compute/tests/test_utils.py index 2b950fe322..4d34623a11 100644 --- a/projects/rocprofiler-compute/tests/test_utils.py +++ b/projects/rocprofiler-compute/tests/test_utils.py @@ -4592,18 +4592,18 @@ def test_process_hip_trace_output_invalid_fbase_characters(tmp_path, monkeypatch # ============================================================================== -def test_ubuntu_22_04_detection(monkeypatch): +def test_ubuntu_detection(monkeypatch): """ - Test Ubuntu 22.04 detection. + Test Ubuntu detection. Args: monkeypatch (pytest.MonkeyPatch): Pytest fixture for patching Returns: - Verifies that the function correctly identifies Ubuntu 22.04 - and returns the appropriate distro + Verifies that the function correctly identifies Ubuntu and + returns the appropriate distro """ - mock_os_release = 'VERSION_ID="22.04"\nNAME="Ubuntu"' + mock_os_release = "ID=ubuntu\nID_LIKE=debian" def mock_path_read_text(self): return mock_os_release @@ -4613,8 +4613,8 @@ def test_ubuntu_22_04_detection(monkeypatch): monkeypatch.setattr("pathlib.Path.read_text", mock_path_read_text) def mock_search(pattern, text): - if "VERSION_ID" in pattern: - return "22.04" + if "ID_LIKE" in pattern: + return "debian" return None monkeypatch.setattr("utils.specs.search", mock_search) @@ -4627,18 +4627,18 @@ def test_ubuntu_22_04_detection(monkeypatch): assert result["rocm_ver"] == 0 -def test_ubuntu_24_04_detection(monkeypatch): +def test_debian_detection(monkeypatch): """ - Test Ubuntu 24.04 detection. + Test Debian detection. Args: monkeypatch (pytest.MonkeyPatch): Pytest fixture for patching Returns: - Verifies that the function correctly identifies Ubuntu 24.04 + Verifies that the function correctly identifies Debian and returns the appropriate distro """ - mock_os_release = 'VERSION_ID="24.04"\nNAME="Ubuntu"' + mock_os_release = "ID=debian" def mock_path_read_text(self): return mock_os_release @@ -4648,14 +4648,15 @@ def test_ubuntu_24_04_detection(monkeypatch): monkeypatch.setattr("pathlib.Path.read_text", mock_path_read_text) def mock_search(pattern, text): - if "VERSION_ID" in pattern: - return "24.04" + if "ID" in pattern: + return "debian" return None monkeypatch.setattr("utils.specs.search", mock_search) import utils.utils as utils_mod + # Create an object with attribute value = 1 result = utils_mod.detect_roofline(SimpleNamespace(rocm_version="0.x.x")) assert result["rocm_ver"] == 0 @@ -4672,7 +4673,7 @@ def test_rhel_detection(monkeypatch): Verifies that the function correctly identifies RHEL and returns the appropriate distro """ - mock_os_release = 'PLATFORM_ID="platform:el9"\nNAME="Red Hat Enterprise Linux"' + mock_os_release = 'ID_LIKE="rhel fedora"\nID="rhel"' def mock_path_read_text(self): return mock_os_release @@ -4683,8 +4684,8 @@ def test_rhel_detection(monkeypatch): monkeypatch.setattr("pathlib.Path.exists", lambda *a, **k: True) def mock_search(pattern, text): - if "PLATFORM_ID" in pattern: - return "platform:el9" + if "ID_LIKE" in pattern: + return "rhel fedora" return None monkeypatch.setattr("utils.specs.search", mock_search) @@ -4696,18 +4697,18 @@ def test_rhel_detection(monkeypatch): assert result["rocm_ver"] == 7 -def test_sles_15_6_detection(monkeypatch): +def test_azl_detection(monkeypatch): """ - Test SLES 15.6 detection. + Test Azure Linux distro detection. Args: monkeypatch (pytest.MonkeyPatch): Pytest fixture for patching Returns: - Verifies that the function correctly identifies SLES 15.6 + Verifies that the function correctly identifies AZL and returns the appropriate distro """ - mock_os_release = 'VERSION_ID="15.6"\nNAME="SLES"' + mock_os_release = "ID=azurelinux" def mock_path_read_text(self): return mock_os_release @@ -4715,32 +4716,34 @@ def test_sles_15_6_detection(monkeypatch): monkeypatch.setattr("os.environ", {"keys": lambda: []}) monkeypatch.setattr("pathlib.Path.read_text", mock_path_read_text) + monkeypatch.setattr("pathlib.Path.exists", lambda *a, **k: True) def mock_search(pattern, text): - if "VERSION_ID" in pattern: - return "15.6" + if "ID" in pattern: + return "azurelinux" return None monkeypatch.setattr("utils.specs.search", mock_search) import utils.utils as utils_mod - result = utils_mod.detect_roofline(SimpleNamespace(rocm_version="0.x.x")) + result = utils_mod.detect_roofline(SimpleNamespace(rocm_version="7.x.x")) - assert result["rocm_ver"] == 0 + assert result["rocm_ver"] == 7 -def test_sles_15_7_detection(monkeypatch): +def test_sles_detection(monkeypatch): """ - Test SLES 15.7 detection (edge case with higher service pack). + Test SLES detection. Args: monkeypatch (pytest.MonkeyPatch): Pytest fixture for patching Returns: - Verifies that the function correctly handles newer SLES service packs + Verifies that the function correctly identifies SLES + and returns the appropriate distro """ - mock_os_release = 'VERSION_ID="15.7"\nNAME="SLES"' + mock_os_release = 'ID="opensuse-leap"\nID_LIKE="suse opensuse"' def mock_path_read_text(self): return mock_os_release @@ -4750,8 +4753,8 @@ def test_sles_15_7_detection(monkeypatch): monkeypatch.setattr("pathlib.Path.read_text", mock_path_read_text) def mock_search(pattern, text): - if "VERSION_ID" in pattern: - return "15.7" + if "ID_LIKE" in pattern: + return "suse openuse" return None monkeypatch.setattr("utils.specs.search", mock_search)