diff --git a/src/bashi/filter_compiler.py b/src/bashi/filter_compiler.py index 9a20540..f79c2f1 100644 --- a/src/bashi/filter_compiler.py +++ b/src/bashi/filter_compiler.py @@ -198,6 +198,11 @@ def compiler_filter( ): reason(output, "hipcc does not support the CUDA backend.") return False + # Rule: c19 + # + if UBUNTU in row and row[UBUNTU].version < pkv.parse("20.04"): + reason(output, "hipcc does not support UBUNTU as compiler older than 20.04") + return False if compiler in row and row[compiler].name == ICPX: # Rule: c12 diff --git a/src/bashi/filter_software_dependency.py b/src/bashi/filter_software_dependency.py index e3893d0..d939939 100644 --- a/src/bashi/filter_software_dependency.py +++ b/src/bashi/filter_software_dependency.py @@ -105,35 +105,14 @@ def software_dependency_filter( return False # Rule: d4 # all ROCm images are Ubuntu 20.04 based - """ - if UBUNTU in row and row[UBUNTU].version >= pkv.parse("20.04"): - for compiler_type in (HOST_COMPILER, DEVICE_COMPILER): - if compiler_type in row and row[compiler_type].name == HIPCC: - if ALPAKA_ACC_GPU_HIP_ENABLE in row and row[ALPAKA_ACC_GPU_HIP_ENABLE].version != OFF_VER: - return False - - if UBUNTU in row and row[UBUNTU].version < pkv.parse("20.04"): - for compiler_type in (HOST_COMPILER, DEVICE_COMPILER): - if compiler_type in row and row[compiler_type].name == CLANG_CUDA: - return False - - if UBUNTU in row and row[UBUNTU].version < pkv.parse("20.04"): - if ALPAKA_ACC_GPU_HIP_ENABLE in row and row[ALPAKA_ACC_GPU_HIP_ENABLE].version != OFF_VER: - return False - """ if UBUNTU in row and row[UBUNTU].version < pkv.parse("20.04"): - if ALPAKA_ACC_GPU_HIP_ENABLE in row and row[ALPAKA_ACC_GPU_HIP_ENABLE].version == ON: - reason( - output, - f"ROCm images " "is not available in UBUNTU " f"{row[UBUNTU].version}", - ) - return False - else: + if ALPAKA_ACC_GPU_HIP_ENABLE in row and row[ALPAKA_ACC_GPU_HIP_ENABLE].version != OFF_VER: reason( output, - f"ROCm images " "is not available in " f"ALPAKA_ACC_GPU_HIP_ENABLE OFF", + f"ROCm images " + "is not available in UBUNTU " + f"{__ubuntu_version_to_string(row[UBUNTU].version)}", ) return False - return True diff --git a/src/bashi/results.py b/src/bashi/results.py index 4225d31..4ee071b 100644 --- a/src/bashi/results.py +++ b/src/bashi/results.py @@ -802,10 +802,21 @@ def _remove_all_ROCm_images_non_Ubuntu2004_based( remove_parameter_value_pairs( parameter_value_pairs, removed_parameter_value_pairs, - parameter1=UBUNTU, value_name1=UBUNTU, + parameter1=UBUNTU, value_version1=">=20.04", parameter2=ALPAKA_ACC_GPU_HIP_ENABLE, value_name2=ALPAKA_ACC_GPU_HIP_ENABLE, value_version2=ON, ) + for compiler_type in (HOST_COMPILER, DEVICE_COMPILER): + remove_parameter_value_pairs( + parameter_value_pairs, + removed_parameter_value_pairs, + value_name1=UBUNTU, + parameter1=UBUNTU, + value_version1=">=20.04", + parameter2=compiler_type, + value_name2=HIPCC, + value_version2=ANY_VERSION, + ) diff --git a/tests/test_filter_software_dependency.py b/tests/test_filter_software_dependency.py index 280e0d4..ebeda22 100644 --- a/tests/test_filter_software_dependency.py +++ b/tests/test_filter_software_dependency.py @@ -203,6 +203,18 @@ def test_valid_ROCm_images_Ubuntu2004_based_d4(self): ) ) + for UBUNTU_version in ["16.04", "18.04", "19.04", "20.04", "22.04", "21.04"]: + self.assertTrue( + software_dependency_filter_typechecked( + OD( + { + ALPAKA_ACC_GPU_HIP_ENABLE: ppv((ALPAKA_ACC_GPU_HIP_ENABLE, OFF)), + UBUNTU: ppv((UBUNTU, UBUNTU_version)), + } + ), + ), + ) + def test_non_valid_ROCm_images_Ubuntu2004_based_d4(self): for UBUNTU_version in ["16.04", "18.04", "19.04"]: reason_msg = io.StringIO() @@ -222,21 +234,42 @@ def test_non_valid_ROCm_images_Ubuntu2004_based_d4(self): reason_msg.getvalue(), f"ROCm images is not available in UBUNTU {UBUNTU_version}", ) - for UBUNTU_version in ["16.04", "18.04", "19.04", "20.04", "22.04", "21.04"]: + + """ + for HIPCC_version in ["3.0", "4.1", "5.2"]: reason_msg = io.StringIO() self.assertFalse( software_dependency_filter_typechecked( OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: ppv((ALPAKA_ACC_GPU_HIP_ENABLE, OFF)), - UBUNTU: ppv((UBUNTU, UBUNTU_version)), + HOST_COMPILER: ppv((HIPCC, HIPCC_version)), + UBUNTU: ppv((UBUNTU, "18.04")), + } + ), + reason_msg, + ), + f"hipcc does not support UBUNTU as compiler older than 20.04", + ) + self.assertEqual( + reason_msg.getvalue(), + f"hipcc does not support UBUNTU as compiler older than 20.04", + ) + for HIPCC_version in ["3.0", "4.1", "5.2"]: + reason_msg = io.StringIO() + self.assertFalse( + software_dependency_filter_typechecked( + OD( + { + DEVICE_COMPILER: ppv((HIPCC, HIPCC_version)), + UBUNTU: ppv((UBUNTU, "18.04")), } ), reason_msg, ), - f"ROCm images is not available in ALPAKA_ACC_GPU_HIP_ENABLE OFF", + f"hipcc does not support UBUNTU as compiler older than 20.04", ) self.assertEqual( reason_msg.getvalue(), - f"ROCm images is not available in ALPAKA_ACC_GPU_HIP_ENABLE OFF", + f"hipcc does not support UBUNTU as compiler older than 20.04", ) + """ diff --git a/tests/test_results.py b/tests/test_results.py index 11366a8..40c215c 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -2363,68 +2363,122 @@ def test_remove_all_ROCm_images_non_Ubuntu2004_based(self): [ OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "0.0.0"), + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, OFF), UBUNTU: (UBUNTU, "20.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "12"), + HOST_COMPILER: (HIPCC, "4"), UBUNTU: (UBUNTU, "20.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "11.2"), + HOST_COMPILER: (HIPCC, "6"), + UBUNTU: (UBUNTU, "20.04"), + } + ), + OD( + { + HOST_COMPILER: (HIPCC, "6"), + UBUNTU: (UBUNTU, "16.04"), + } + ), + OD( + { + HOST_COMPILER: (HIPCC, "8"), UBUNTU: (UBUNTU, "22.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "0.0.0"), + DEVICE_COMPILER: (HIPCC, "7"), + UBUNTU: (UBUNTU, "18.04"), + } + ), + OD( + { + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, ON), UBUNTU: (UBUNTU, "22.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "10.2"), + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, OFF), UBUNTU: (UBUNTU, "22.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "0.0.0"), + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, OFF), UBUNTU: (UBUNTU, "18.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "10.2"), + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, ON), UBUNTU: (UBUNTU, "18.04"), } ), + OD( + { + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, ON), + UBUNTU: (UBUNTU, "20.04"), + } + ), ] ) expected_results = parse_expected_val_pairs( [ OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "12"), + HOST_COMPILER: (HIPCC, "8"), + UBUNTU: (UBUNTU, "22.04"), + } + ), + OD( + { + HOST_COMPILER: (HIPCC, "4"), + UBUNTU: (UBUNTU, "20.04"), + } + ), + OD( + { + HOST_COMPILER: (HIPCC, "6"), UBUNTU: (UBUNTU, "20.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "11.2"), + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, OFF), + UBUNTU: (UBUNTU, "20.04"), + } + ), + OD( + { + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, ON), + UBUNTU: (UBUNTU, "20.04"), + } + ), + OD( + { + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, ON), UBUNTU: (UBUNTU, "22.04"), } ), OD( { - ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, "10.2"), + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, OFF), UBUNTU: (UBUNTU, "22.04"), } ), + OD( + { + ALPAKA_ACC_GPU_HIP_ENABLE: (ALPAKA_ACC_GPU_HIP_ENABLE, OFF), + UBUNTU: (UBUNTU, "18.04"), + } + ), ] ) default_remove_test(