CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
118 lines
3.1 KiB
Python
118 lines
3.1 KiB
Python
# Copyright Advanced Micro Devices, Inc.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
import logging
|
|
import os
|
|
import shlex
|
|
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Base Paths
|
|
THEROCK_BIN_DIR = os.getenv("THEROCK_BIN_DIR")
|
|
THEROCK_BIN_PATH = Path(THEROCK_BIN_DIR).resolve()
|
|
THEROCK_PATH = THEROCK_BIN_PATH.parent
|
|
|
|
# LIB Paths
|
|
THEROCK_LIB_PATH = THEROCK_PATH / "lib"
|
|
THEROCK_SYSDEPS_PATH = THEROCK_LIB_PATH / "rocm_sysdeps"
|
|
THEROCK_SYSDEPS_LIB_PATH = THEROCK_SYSDEPS_PATH / "lib"
|
|
|
|
# LLVM Paths
|
|
THEROCK_LLVM_BIN_PATH = THEROCK_PATH / "llvm" / "bin"
|
|
THEROCK_CLANG_PATH = THEROCK_LLVM_BIN_PATH / "amdclang"
|
|
THEROCK_CLANG_PLUS_PATH = THEROCK_LLVM_BIN_PATH / "amdclang++"
|
|
|
|
# SDK Paths
|
|
ROCPROFILER_SDK_PATH = THEROCK_PATH / "share" / "rocprofiler-sdk"
|
|
ROCPROFILER_SDK_TESTS_PATH = ROCPROFILER_SDK_PATH / "tests"
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
environ_vars = os.environ.copy()
|
|
|
|
|
|
def setup_env():
|
|
environ_vars["ROCM_PATH"] = str(THEROCK_PATH)
|
|
environ_vars["HIP_PATH"] = str(THEROCK_PATH)
|
|
environ_vars["ROCPROFILER_METRICS_PATH"] = str(ROCPROFILER_SDK_PATH)
|
|
environ_vars["HIP_PLATFORM"] = "amd"
|
|
|
|
old_ld_lib_path = os.getenv("LD_LIBRARY_PATH", "").split(":")
|
|
environ_vars["LD_LIBRARY_PATH"] = ":".join(
|
|
[f"{THEROCK_LIB_PATH}", f"{THEROCK_SYSDEPS_LIB_PATH}"] + old_ld_lib_path
|
|
)
|
|
|
|
|
|
def cmake_config():
|
|
cmake_config_cmd = [
|
|
"cmake",
|
|
"-B",
|
|
"build",
|
|
"-G",
|
|
"Ninja",
|
|
f"-DCMAKE_PREFIX_PATH={THEROCK_PATH};{THEROCK_SYSDEPS_PATH}",
|
|
f"-DCMAKE_HIP_COMPILER={THEROCK_CLANG_PLUS_PATH}",
|
|
f"-DCMAKE_C_COMPILER={THEROCK_CLANG_PATH}",
|
|
f"-DCMAKE_CXX_COMPILER={THEROCK_CLANG_PLUS_PATH}",
|
|
f"-DPython3_EXECUTABLE={sys.executable}",
|
|
]
|
|
|
|
logging.info(
|
|
f"++ Exec [{ROCPROFILER_SDK_TESTS_PATH}]$ {shlex.join(cmake_config_cmd)}"
|
|
)
|
|
subprocess.run(
|
|
cmake_config_cmd,
|
|
cwd=ROCPROFILER_SDK_TESTS_PATH,
|
|
check=True,
|
|
env=environ_vars,
|
|
)
|
|
|
|
|
|
# SDK requires test binaries to be built on the gfx architecture being tested on
|
|
# Certain tests are enabled/disabled based on the GPU architecture.
|
|
# Ensuring that these tests build properly against an install is also part of the overall test coverage for SDK (emulates tool developers building tools with rocprofiler-sdk)
|
|
def cmake_build():
|
|
cmake_build_cmd = [
|
|
"cmake",
|
|
"--build",
|
|
"build",
|
|
"--parallel",
|
|
"8",
|
|
]
|
|
|
|
logging.info(
|
|
f"++ Exec [{ROCPROFILER_SDK_TESTS_PATH}]$ {shlex.join(cmake_build_cmd)}"
|
|
)
|
|
subprocess.run(
|
|
cmake_build_cmd,
|
|
cwd=ROCPROFILER_SDK_TESTS_PATH,
|
|
check=True,
|
|
env=environ_vars,
|
|
)
|
|
|
|
|
|
def execute_tests():
|
|
ctest_cmd = [
|
|
"ctest",
|
|
"--test-dir",
|
|
"build",
|
|
"--parallel",
|
|
"8",
|
|
"--output-on-failure",
|
|
]
|
|
|
|
logging.info(f"++ Exec [{ROCPROFILER_SDK_TESTS_PATH}]$ {shlex.join(ctest_cmd)}")
|
|
subprocess.run(
|
|
ctest_cmd,
|
|
cwd=ROCPROFILER_SDK_TESTS_PATH,
|
|
check=True,
|
|
env=environ_vars,
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
setup_env()
|
|
cmake_config()
|
|
cmake_build()
|
|
execute_tests()
|