From f62ace89295c32949e7b70d4412580c6ef843e6d Mon Sep 17 00:00:00 2001 From: "Baj, Tomasz" Date: Wed, 20 Sep 2023 11:20:57 +0000 Subject: [PATCH] feature: Add releaseHelper for PVC Related-To: NEO-8296 Signed-off-by: Baj, Tomasz --- shared/offline_compiler/source/CMakeLists.txt | 1 + shared/source/release_helper/CMakeLists.txt | 3 +- .../definitions/release_definitions.h | 1 + .../enable_release_helper_xe.cpp | 1 + .../release_helper/release_helper_1260.cpp | 18 ++++++++++ shared/test/common/libult/CMakeLists.txt | 7 +--- .../unit_test/release_helper/CMakeLists.txt | 3 +- .../release_helper_12_60_tests.cpp | 36 +++++++++++++++++++ 8 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 shared/source/release_helper/release_helper_1260.cpp create mode 100644 shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp diff --git a/shared/offline_compiler/source/CMakeLists.txt b/shared/offline_compiler/source/CMakeLists.txt index fb53ba0d03..012697207e 100644 --- a/shared/offline_compiler/source/CMakeLists.txt +++ b/shared/offline_compiler/source/CMakeLists.txt @@ -66,6 +66,7 @@ set(CLOC_LIB_SRCS_LIB ${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1255.cpp ${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1256.cpp ${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1257.cpp + ${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1260.cpp ${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1270.cpp ${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1271.cpp ${NEO_SHARED_DIRECTORY}/release_helper${BRANCH_DIR_SUFFIX}enable_release_helper_xe.cpp diff --git a/shared/source/release_helper/CMakeLists.txt b/shared/source/release_helper/CMakeLists.txt index 50662a3e3a..b05fccb898 100644 --- a/shared/source/release_helper/CMakeLists.txt +++ b/shared/source/release_helper/CMakeLists.txt @@ -13,13 +13,14 @@ set(NEO_CORE_RELEASE_HELPER ${CMAKE_CURRENT_SOURCE_DIR}/release_helper.cpp ) -if(SUPPORT_XE_HPG_CORE) +if(SUPPORT_XE_HPG_CORE OR SUPPORT_XE_HPC_CORE) list(APPEND NEO_CORE_RELEASE_HELPER ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_common_xe_lpg.inl ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_common_xe_hpg.inl ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1255.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1256.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1257.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1260.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1270.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1271.cpp ) diff --git a/shared/source/release_helper/definitions/release_definitions.h b/shared/source/release_helper/definitions/release_definitions.h index b3ea802135..78dda22a92 100644 --- a/shared/source/release_helper/definitions/release_definitions.h +++ b/shared/source/release_helper/definitions/release_definitions.h @@ -13,6 +13,7 @@ enum class ReleaseType { release1255, release1256, release1257, + release1260, release1270, release1271, }; diff --git a/shared/source/release_helper/enable_release_helper_xe.cpp b/shared/source/release_helper/enable_release_helper_xe.cpp index e0a38c9265..07536fcc4d 100644 --- a/shared/source/release_helper/enable_release_helper_xe.cpp +++ b/shared/source/release_helper/enable_release_helper_xe.cpp @@ -18,6 +18,7 @@ EnableReleaseHelperArchitecture<12> enableReleaseHelperArchitecture12{releaseHel EnableReleaseHelper enablerReleaseHelper1255{releaseHelperFactoryXe[55]}; EnableReleaseHelper enablerReleaseHelper1256{releaseHelperFactoryXe[56]}; EnableReleaseHelper enablerReleaseHelper1257{releaseHelperFactoryXe[57]}; +EnableReleaseHelper enablerReleaseHelper1260{releaseHelperFactoryXe[60]}; EnableReleaseHelper enablerReleaseHelper1270{releaseHelperFactoryXe[70]}; EnableReleaseHelper enablerReleaseHelper1271{releaseHelperFactoryXe[71]}; diff --git a/shared/source/release_helper/release_helper_1260.cpp b/shared/source/release_helper/release_helper_1260.cpp new file mode 100644 index 0000000000..6df412de15 --- /dev/null +++ b/shared/source/release_helper/release_helper_1260.cpp @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2023 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "shared/source/release_helper/release_helper.h" +#include "shared/source/release_helper/release_helper_base.inl" + +#include "release_definitions.h" + +namespace NEO { +constexpr auto release = ReleaseType::release1260; + +} // namespace NEO + +template class NEO::ReleaseHelperHw; diff --git a/shared/test/common/libult/CMakeLists.txt b/shared/test/common/libult/CMakeLists.txt index c9f989e624..4446d3c6ef 100644 --- a/shared/test/common/libult/CMakeLists.txt +++ b/shared/test/common/libult/CMakeLists.txt @@ -139,6 +139,7 @@ endif() if(TESTS_XE_HPG_CORE OR TESTS_XE_HPC_CORE) list(APPEND neo_libult_common_SRCS_LIB_ULT ${NEO_SHARED_TEST_DIRECTORY}/common/helpers/unit_test_helper_xe_hpg_and_xe_hpc.inl + ${NEO_SHARED_DIRECTORY}/release_helper${BRANCH_DIR_SUFFIX}enable_release_helper_xe.cpp ) endif() @@ -148,12 +149,6 @@ if(TESTS_PVC_AND_LATER) ) endif() -if(TESTS_XE_HPG_CORE) - list(APPEND neo_libult_common_SRCS_LIB_ULT - ${NEO_SHARED_DIRECTORY}/release_helper${BRANCH_DIR_SUFFIX}enable_release_helper_xe.cpp - ) -endif() - set_property(GLOBAL PROPERTY neo_libult_common_SRCS_LIB_ULT ${neo_libult_common_SRCS_LIB_ULT}) set_property(GLOBAL PROPERTY neo_libult_common_SRCS_ENABLE_TESTED_HW ${neo_libult_common_SRCS_ENABLE_TESTED_HW}) diff --git a/shared/test/unit_test/release_helper/CMakeLists.txt b/shared/test/unit_test/release_helper/CMakeLists.txt index 80b61089d6..49972d49b7 100644 --- a/shared/test/unit_test/release_helper/CMakeLists.txt +++ b/shared/test/unit_test/release_helper/CMakeLists.txt @@ -9,11 +9,12 @@ target_sources(neo_shared_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_tests_base.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_tests_base.h ) -if(TESTS_XE_HPG_CORE) +if(TESTS_XE_HPG_CORE OR TESTS_XE_HPC_CORE) target_sources(neo_shared_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_12_55_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_12_56_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_12_57_tests.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_12_60_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_12_70_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/release_helper_12_71_tests.cpp ) diff --git a/shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp new file mode 100644 index 0000000000..8b261cab14 --- /dev/null +++ b/shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2023 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "shared/source/release_helper/release_helper.h" +#include "shared/test/unit_test/release_helper/release_helper_tests_base.h" + +#include "gtest/gtest.h" + +struct ReleaseHelper1260Tests : public ReleaseHelperTests<12, 60> { + + std::vector getRevisions() override { + return {0, 1, 3, 5, 6, 7}; + } +}; + +TEST_F(ReleaseHelper1260Tests, whenGettingCapabilitiesThenCorrectPropertiesAreReturned) { + for (auto &revision : getRevisions()) { + ipVersion.revision = revision; + releaseHelper = ReleaseHelper::create(ipVersion); + ASSERT_NE(nullptr, releaseHelper); + + EXPECT_FALSE(releaseHelper->isAdjustWalkOrderAvailable()); + EXPECT_TRUE(releaseHelper->isMatrixMultiplyAccumulateSupported()); + EXPECT_FALSE(releaseHelper->isPipeControlPriorToNonPipelinedStateCommandsWARequired()); + EXPECT_FALSE(releaseHelper->isProgramAllStateComputeCommandFieldsWARequired()); + EXPECT_FALSE(releaseHelper->isPrefetchDisablingRequired()); + EXPECT_FALSE(releaseHelper->isSplitMatrixMultiplyAccumulateSupported()); + EXPECT_FALSE(releaseHelper->isBFloat16ConversionSupported()); + EXPECT_TRUE(releaseHelper->isResolvingSubDeviceIDNeeded()); + EXPECT_TRUE(releaseHelper->isCachingOnCpuAvailable()); + } +}