Skip to content

Commit 7d20449

Browse files
fix: Add release helper for dg2
Related-To: NEO-7786 Signed-off-by: Kamil Kopryk <[email protected]>
1 parent c2db3b1 commit 7d20449

28 files changed

+175
-33
lines changed

opencl/test/unit_test/offline_compiler/ocloc_fatbinary_tests.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,11 @@ TEST(OclocFatBinaryRequestedFatBinary, WhenDeviceArgMissingThenReturnsFalse) {
154154
TEST(OclocFatBinaryRequestedFatBinary, givenHwInfoForProductConfigWhenUnknownIsaIsPassedThenFalseIsReturned) {
155155
std::unique_ptr<OclocArgHelper> argHelper = std::make_unique<OclocArgHelper>();
156156
std::unique_ptr<CompilerProductHelper> compilerProductHelper;
157+
std::unique_ptr<ReleaseHelper> releaseHelper;
158+
157159
NEO::HardwareInfo hwInfo;
158-
EXPECT_FALSE(argHelper->setHwInfoForProductConfig(AOT::UNKNOWN_ISA, hwInfo, std::move(compilerProductHelper)));
160+
161+
EXPECT_FALSE(argHelper->setHwInfoForProductConfig(AOT::UNKNOWN_ISA, hwInfo, compilerProductHelper, releaseHelper));
159162
}
160163

161164
TEST(OclocFatBinaryRequestedFatBinary, givenReleaseOrFamilyAcronymWhenGetAcronymsForTargetThenCorrectValuesAreReturned) {

shared/offline_compiler/source/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ set(CLOC_LIB_SRCS_LIB
6464
${NEO_SHARED_DIRECTORY}/release_helper/release_helper.h
6565
${NEO_SHARED_DIRECTORY}/release_helper/release_helper.cpp
6666
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_base.inl
67+
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1255.cpp
68+
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1256.cpp
69+
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1257.cpp
6770
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1270.cpp
6871
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1271.cpp
6972
${NEO_SHARED_DIRECTORY}/release_helper${BRANCH_DIR_SUFFIX}enable_release_helper_xe.cpp

shared/offline_compiler/source/ocloc_arg_helper.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "shared/source/helpers/file_io.h"
1212
#include "shared/source/helpers/hw_info.h"
1313
#include "shared/source/helpers/string.h"
14+
#include "shared/source/release_helper/release_helper.h"
1415

1516
#include "hw_cmds.h"
1617
#include "platforms.h"
@@ -150,7 +151,7 @@ std::unique_ptr<char[]> OclocArgHelper::loadDataFromFile(const std::string &file
150151
}
151152
}
152153

153-
uint32_t OclocArgHelper::getProductConfigAndSetHwInfoBasedOnDeviceAndRevId(NEO::HardwareInfo &hwInfo, unsigned short deviceID, int revisionID, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper) {
154+
uint32_t OclocArgHelper::getProductConfigAndSetHwInfoBasedOnDeviceAndRevId(NEO::HardwareInfo &hwInfo, unsigned short deviceID, int revisionID, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper) {
154155
const auto &deviceAotMap = productConfigHelper->getDeviceAotInfo();
155156

156157
for (const auto &device : deviceAotMap) {
@@ -164,21 +165,22 @@ uint32_t OclocArgHelper::getProductConfigAndSetHwInfoBasedOnDeviceAndRevId(NEO::
164165
auto config = compilerProductHelper->matchRevisionIdWithProductConfig(device.aotConfig, revisionID);
165166
if (productConfigHelper->isSupportedProductConfig(config)) {
166167
hwInfo.ipVersion = config;
168+
releaseHelper = NEO::ReleaseHelper::create(hwInfo.ipVersion);
167169
return config;
168170
}
169171
}
170172
hwInfo.ipVersion = device.aotConfig.value;
173+
releaseHelper = NEO::ReleaseHelper::create(hwInfo.ipVersion);
171174
return device.aotConfig.value;
172175
}
173176
}
174177
return AOT::UNKNOWN_ISA;
175178
}
176179

177-
bool OclocArgHelper::setHwInfoForProductConfig(uint32_t productConfig, NEO::HardwareInfo &hwInfo, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper) {
180+
bool OclocArgHelper::setHwInfoForProductConfig(uint32_t productConfig, NEO::HardwareInfo &hwInfo, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper) {
178181
if (productConfig == AOT::UNKNOWN_ISA) {
179182
return false;
180183
}
181-
182184
const auto &deviceAotMap = productConfigHelper->getDeviceAotInfo();
183185
for (auto &deviceConfig : deviceAotMap) {
184186
if (deviceConfig.aotConfig.value == productConfig) {
@@ -187,19 +189,20 @@ bool OclocArgHelper::setHwInfoForProductConfig(uint32_t productConfig, NEO::Hard
187189
compilerProductHelper = NEO::CompilerProductHelper::create(hwInfo.platform.eProductFamily);
188190
UNRECOVERABLE_IF(compilerProductHelper == nullptr);
189191
compilerProductHelper->setProductConfigForHwInfo(hwInfo, productConfig);
192+
releaseHelper = NEO::ReleaseHelper::create(hwInfo.ipVersion);
190193
return true;
191194
}
192195
}
193196
return false;
194197
}
195198

196-
void OclocArgHelper::setHwInfoForHwInfoConfig(NEO::HardwareInfo &hwInfo, uint64_t hwInfoConfig, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper) {
199+
void OclocArgHelper::setHwInfoForHwInfoConfig(NEO::HardwareInfo &hwInfo, uint64_t hwInfoConfig, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper) {
197200
compilerProductHelper = NEO::CompilerProductHelper::create(hwInfo.platform.eProductFamily);
198201
UNRECOVERABLE_IF(compilerProductHelper == nullptr);
199-
200202
uint64_t config = hwInfoConfig ? hwInfoConfig : compilerProductHelper->getHwInfoConfig(hwInfo);
201203
setHwInfoValuesFromConfig(config, hwInfo);
202204
NEO::hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true, *compilerProductHelper);
205+
releaseHelper = NEO::ReleaseHelper::create(hwInfo.ipVersion);
203206
}
204207

205208
void OclocArgHelper::saveOutput(const std::string &filename, const void *pData, const size_t &dataSize) {

shared/offline_compiler/source/ocloc_arg_helper.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ constexpr auto *oclocStdoutLogName = "stdout.log";
2222

2323
namespace NEO {
2424
class CompilerProductHelper;
25-
}
25+
class ReleaseHelper;
26+
} // namespace NEO
2627

2728
struct Source {
2829
const uint8_t *data;
@@ -72,9 +73,9 @@ class OclocArgHelper {
7273
uint64_t **lenOutputs, char ***nameOutputs);
7374
virtual ~OclocArgHelper();
7475
MOCKABLE_VIRTUAL bool fileExists(const std::string &filename) const;
75-
bool setHwInfoForProductConfig(uint32_t productConfig, NEO::HardwareInfo &hwInfo, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper);
76-
uint32_t getProductConfigAndSetHwInfoBasedOnDeviceAndRevId(NEO::HardwareInfo &hwInfo, unsigned short deviceID, int revisionID, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper);
77-
void setHwInfoForHwInfoConfig(NEO::HardwareInfo &hwInfo, uint64_t hwInfoConfig, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper);
76+
bool setHwInfoForProductConfig(uint32_t productConfig, NEO::HardwareInfo &hwInfo, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper);
77+
uint32_t getProductConfigAndSetHwInfoBasedOnDeviceAndRevId(NEO::HardwareInfo &hwInfo, unsigned short deviceID, int revisionID, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper);
78+
void setHwInfoForHwInfoConfig(NEO::HardwareInfo &hwInfo, uint64_t hwInfoConfig, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper);
7879
std::vector<std::string> headersToVectorOfStrings();
7980
MOCKABLE_VIRTUAL void readFileToVectorOfStrings(const std::string &filename, std::vector<std::string> &lines);
8081
MOCKABLE_VIRTUAL std::vector<char> readBinaryFile(const std::string &filename);

shared/offline_compiler/source/offline_compiler.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "shared/source/helpers/string.h"
2424
#include "shared/source/helpers/validators.h"
2525
#include "shared/source/os_interface/os_library.h"
26+
#include "shared/source/release_helper/release_helper.h"
2627

2728
#include "platforms.h"
2829

@@ -433,7 +434,7 @@ std::string &OfflineCompiler::getBuildLog() {
433434
return buildLog;
434435
}
435436

436-
int OfflineCompiler::initHardwareInfoForDeprecatedAcronyms(std::string deviceName, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper) {
437+
int OfflineCompiler::initHardwareInfoForDeprecatedAcronyms(std::string deviceName, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper) {
437438
std::vector<PRODUCT_FAMILY> allSupportedProduct{ALL_SUPPORTED_PRODUCT_FAMILIES};
438439
std::transform(deviceName.begin(), deviceName.end(), deviceName.begin(), ::tolower);
439440

@@ -450,6 +451,8 @@ int OfflineCompiler::initHardwareInfoForDeprecatedAcronyms(std::string deviceNam
450451
hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true, *compilerProductHelper);
451452
UNRECOVERABLE_IF(compilerProductHelper == nullptr);
452453
productFamilyName = hardwarePrefix[hwInfo.platform.eProductFamily];
454+
releaseHelper = NEO::ReleaseHelper::create(hwInfo.ipVersion);
455+
453456
return SUCCESS;
454457
}
455458
}
@@ -467,21 +470,21 @@ int OfflineCompiler::initHardwareInfoForProductConfig(std::string deviceName) {
467470

468471
if (isArgumentDeviceId(deviceName)) {
469472
auto deviceID = static_cast<unsigned short>(std::stoi(deviceName, 0, 16));
470-
productConfig = argHelper->getProductConfigAndSetHwInfoBasedOnDeviceAndRevId(hwInfo, deviceID, revisionId, std::move(compilerProductHelper));
473+
productConfig = argHelper->getProductConfigAndSetHwInfoBasedOnDeviceAndRevId(hwInfo, deviceID, revisionId, compilerProductHelper, releaseHelper);
471474
if (productConfig == AOT::UNKNOWN_ISA) {
472475
return INVALID_DEVICE;
473476
}
474477
auto product = argHelper->productConfigHelper->getAcronymForProductConfig(productConfig);
475478
argHelper->printf("Auto-detected target based on %s device id: %s\n", deviceName.c_str(), product.c_str());
476479
} else if (revisionId == -1) {
477480
productConfig = argHelper->productConfigHelper->getProductConfigFromDeviceName(deviceName);
478-
if (!argHelper->setHwInfoForProductConfig(productConfig, hwInfo, std::move(compilerProductHelper))) {
481+
if (!argHelper->setHwInfoForProductConfig(productConfig, hwInfo, compilerProductHelper, releaseHelper)) {
479482
return INVALID_DEVICE;
480483
}
481484
} else {
482485
return INVALID_DEVICE;
483486
}
484-
argHelper->setHwInfoForHwInfoConfig(hwInfo, hwInfoConfig, std::move(compilerProductHelper));
487+
argHelper->setHwInfoForHwInfoConfig(hwInfo, hwInfoConfig, compilerProductHelper, releaseHelper);
485488
deviceConfig = hwInfo.ipVersion.value;
486489
productFamilyName = hardwarePrefix[hwInfo.platform.eProductFamily];
487490
return SUCCESS;
@@ -498,7 +501,7 @@ int OfflineCompiler::initHardwareInfo(std::string deviceName) {
498501
return retVal;
499502
}
500503

501-
retVal = initHardwareInfoForDeprecatedAcronyms(deviceName, std::move(compilerProductHelper));
504+
retVal = initHardwareInfoForDeprecatedAcronyms(deviceName, compilerProductHelper, releaseHelper);
502505
if (retVal != SUCCESS) {
503506
argHelper->printf("Could not determine device target: %s.\n", deviceName.c_str());
504507
}

shared/offline_compiler/source/offline_compiler.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "shared/offline_compiler/source/ocloc_fcl_facade.h"
1212
#include "shared/offline_compiler/source/ocloc_igc_facade.h"
1313
#include "shared/source/helpers/hw_info.h"
14+
#include "shared/source/release_helper/release_helper.h"
1415
#include "shared/source/utilities/arrayref.h"
1516
#include "shared/source/utilities/const_stringref.h"
1617

@@ -100,7 +101,7 @@ All supported acronyms: %s.
100101

101102
int initHardwareInfo(std::string deviceName);
102103
int initHardwareInfoForProductConfig(std::string deviceName);
103-
int initHardwareInfoForDeprecatedAcronyms(std::string deviceName, std::unique_ptr<NEO::CompilerProductHelper> &&compilerProductHelper);
104+
int initHardwareInfoForDeprecatedAcronyms(std::string deviceName, std::unique_ptr<NEO::CompilerProductHelper> &compilerProductHelper, std::unique_ptr<NEO::ReleaseHelper> &releaseHelper);
104105
bool isArgumentDeviceId(const std::string &argument) const;
105106
std::string getStringWithinDelimiters(const std::string &src);
106107
int initialize(size_t numArgs, const std::vector<std::string> &allArgs, bool dumpFiles);
@@ -182,6 +183,7 @@ All supported acronyms: %s.
182183
std::unique_ptr<OclocFclFacade> fclFacade{nullptr};
183184
std::unique_ptr<CompilerCache> cache;
184185
std::unique_ptr<CompilerProductHelper> compilerProductHelper;
186+
std::unique_ptr<ReleaseHelper> releaseHelper;
185187
IGC::CodeType::CodeType_t preferredIntermediateRepresentation;
186188

187189
OclocArgHelper *argHelper = nullptr;

shared/source/execution_environment/root_device_environment.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ void RootDeviceEnvironment::initHelpers() {
160160
initGfxCoreHelper();
161161
initApiGfxCoreHelper();
162162
initCompilerProductHelper();
163+
productHelper->adjustIpVersionIfNeeded(*hwInfo);
163164
initReleaseHelper();
164165
}
165166

shared/source/os_interface/product_helper.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class ProductHelper {
103103
virtual LocalMemoryAccessMode getLocalMemoryAccessMode(const HardwareInfo &hwInfo) const = 0;
104104
virtual bool isAllocationSizeAdjustmentRequired(const HardwareInfo &hwInfo) const = 0;
105105
virtual int getProductMaxPreferredSlmSize(const HardwareInfo &hwInfo, int preferredEnumValue) const = 0;
106-
virtual bool isPrefetchDisablingRequired(const HardwareInfo &hwInfo) const = 0;
106+
virtual bool isPrefetchDisablingRequired(const ReleaseHelper *releaseHelper) const = 0;
107107
virtual bool isNewResidencyModelSupported() const = 0;
108108
virtual bool isDirectSubmissionSupported(const HardwareInfo &hwInfo) const = 0;
109109
virtual std::pair<bool, bool> isPipeControlPriorToNonPipelinedStateCommandsWARequired(const HardwareInfo &hwInfo, bool isRcs, const ReleaseHelper *releaseHelper) const = 0;
@@ -204,6 +204,7 @@ class ProductHelper {
204204
virtual bool isCalculationForDisablingEuFusionWithDpasNeeded(const HardwareInfo &hwInfo) const = 0;
205205
virtual uint32_t getNumberOfPartsInTileForConcurrentKernel() const = 0;
206206
virtual bool is48bResourceNeededForRayTracing() const = 0;
207+
virtual void adjustIpVersionIfNeeded(HardwareInfo &hwInfo) const = 0;
207208

208209
virtual ~ProductHelper() = default;
209210

shared/source/os_interface/product_helper.inl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,10 @@ int ProductHelperHw<gfxProduct>::getProductMaxPreferredSlmSize(const HardwareInf
281281
return preferredEnumValue;
282282
}
283283
template <PRODUCT_FAMILY gfxProduct>
284-
bool ProductHelperHw<gfxProduct>::isPrefetchDisablingRequired(const HardwareInfo &hwInfo) const {
284+
bool ProductHelperHw<gfxProduct>::isPrefetchDisablingRequired(const ReleaseHelper *releaseHelper) const {
285+
if (releaseHelper) {
286+
return releaseHelper->isPrefetchDisablingRequired();
287+
}
285288
return false;
286289
}
287290

@@ -295,6 +298,9 @@ std::pair<bool, bool> ProductHelperHw<gfxProduct>::isPipeControlPriorToNonPipeli
295298
return {false, false};
296299
}
297300

301+
template <PRODUCT_FAMILY gfxProduct>
302+
void ProductHelperHw<gfxProduct>::adjustIpVersionIfNeeded(HardwareInfo &hwInfo) const {}
303+
298304
template <PRODUCT_FAMILY gfxProduct>
299305
bool ProductHelperHw<gfxProduct>::isAdditionalMediaSamplerProgrammingRequired() const {
300306
return false;

shared/source/os_interface/product_helper_hw.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class ProductHelperHw : public ProductHelper {
5656
LocalMemoryAccessMode getLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;
5757
bool isAllocationSizeAdjustmentRequired(const HardwareInfo &hwInfo) const override;
5858
int getProductMaxPreferredSlmSize(const HardwareInfo &hwInfo, int preferredEnumValue) const override;
59-
bool isPrefetchDisablingRequired(const HardwareInfo &hwInfo) const override;
59+
bool isPrefetchDisablingRequired(const ReleaseHelper *releaseHelper) const override;
6060
bool isNewResidencyModelSupported() const override;
6161
bool isDirectSubmissionSupported(const HardwareInfo &hwInfo) const override;
6262
std::pair<bool, bool> isPipeControlPriorToNonPipelinedStateCommandsWARequired(const HardwareInfo &hwInfo, bool isRcs, const ReleaseHelper *releaseHelper) const override;
@@ -157,6 +157,7 @@ class ProductHelperHw : public ProductHelper {
157157
bool isFusedEuDisabledForDpas(bool kernelHasDpasInstructions, const uint32_t *lws, const uint32_t *groupCount, const HardwareInfo &hwInfo) const override;
158158
bool isCalculationForDisablingEuFusionWithDpasNeeded(const HardwareInfo &hwInfo) const override;
159159
bool is48bResourceNeededForRayTracing() const override;
160+
void adjustIpVersionIfNeeded(HardwareInfo &hwInfo) const override;
160161

161162
~ProductHelperHw() override = default;
162163

shared/source/os_interface/windows/wddm/wddm.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "shared/source/gmm_helper/page_table_mngr.h"
1919
#include "shared/source/gmm_helper/resource_info.h"
2020
#include "shared/source/helpers/api_specific_config.h"
21+
#include "shared/source/helpers/compiler_product_helper.h"
2122
#include "shared/source/helpers/gfx_core_helper.h"
2223
#include "shared/source/helpers/heap_assigner.h"
2324
#include "shared/source/helpers/hw_info.h"
@@ -110,6 +111,7 @@ bool Wddm::init() {
110111
rootDeviceEnvironment.initGfxCoreHelper();
111112

112113
populateIpVersion(*hardwareInfo);
114+
productHelper.adjustIpVersionIfNeeded(*rootDeviceEnvironment.getMutableHardwareInfo());
113115
rootDeviceEnvironment.initReleaseHelper();
114116

115117
if (productHelper.configureHwInfoWddm(hardwareInfo, hardwareInfo, rootDeviceEnvironment)) {

shared/source/release_helper/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ set(NEO_CORE_RELEASE_HELPER
1616
if(SUPPORT_XE_HPG_CORE)
1717
list(APPEND NEO_CORE_RELEASE_HELPER
1818
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_common_xe_lpg.inl
19+
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1255.cpp
20+
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1256.cpp
21+
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1257.cpp
1922
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1270.cpp
2023
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1271.cpp
2124
)

shared/source/release_helper/definitions/release_definitions.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
namespace NEO {
1111

1212
enum class ReleaseType {
13+
release1255,
14+
release1256,
15+
release1257,
1316
release1270,
1417
release1271,
1518
};

shared/source/release_helper/enable_release_helper_xe.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ inline constexpr uint32_t maxReleaseXe = 75;
1515
inline createReleaseHelperFunctionType releaseHelperFactoryXe[maxReleaseXe]{};
1616

1717
EnableReleaseHelperArchitecture<12> enableReleaseHelperArchitecture12{releaseHelperFactoryXe};
18+
EnableReleaseHelper<ReleaseType::release1255> enablerReleaseHelper1255{releaseHelperFactoryXe[55]};
19+
EnableReleaseHelper<ReleaseType::release1256> enablerReleaseHelper1256{releaseHelperFactoryXe[56]};
20+
EnableReleaseHelper<ReleaseType::release1257> enablerReleaseHelper1257{releaseHelperFactoryXe[57]};
1821
EnableReleaseHelper<ReleaseType::release1270> enablerReleaseHelper1270{releaseHelperFactoryXe[70]};
1922
EnableReleaseHelper<ReleaseType::release1271> enablerReleaseHelper1271{releaseHelperFactoryXe[71]};
2023

shared/source/release_helper/release_helper.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ inline createReleaseHelperFunctionType *releaseHelperFactory[maxArchitecture]{};
2222
class ReleaseHelper {
2323
public:
2424
static std::unique_ptr<ReleaseHelper> create(HardwareIpVersion hardwareIpVersion);
25-
26-
virtual bool isMatrixMultiplyAccumulateSupported() const = 0;
2725
virtual ~ReleaseHelper() = default;
26+
2827
virtual bool isAdjustWalkOrderAvailable() const = 0;
28+
virtual bool isMatrixMultiplyAccumulateSupported() const = 0;
2929
virtual bool isPipeControlPriorToNonPipelinedStateCommandsWARequired() const = 0;
30+
virtual bool isPrefetchDisablingRequired() const = 0;
3031

3132
protected:
3233
ReleaseHelper(HardwareIpVersion hardwareIpVersion) : hardwareIpVersion(hardwareIpVersion) {}
@@ -39,9 +40,11 @@ class ReleaseHelperHw : public ReleaseHelper {
3940
static std::unique_ptr<ReleaseHelper> create(HardwareIpVersion hardwareIpVersion) {
4041
return std::unique_ptr<ReleaseHelper>(new ReleaseHelperHw<releaseType>{hardwareIpVersion});
4142
}
42-
bool isMatrixMultiplyAccumulateSupported() const override;
43+
4344
bool isAdjustWalkOrderAvailable() const override;
45+
bool isMatrixMultiplyAccumulateSupported() const override;
4446
bool isPipeControlPriorToNonPipelinedStateCommandsWARequired() const override;
47+
bool isPrefetchDisablingRequired() const override;
4548

4649
private:
4750
ReleaseHelperHw(HardwareIpVersion hardwareIpVersion) : ReleaseHelper(hardwareIpVersion) {}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright (C) 2023 Intel Corporation
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
*/
7+
8+
#include "shared/source/release_helper/release_helper.h"
9+
#include "shared/source/release_helper/release_helper_base.inl"
10+
11+
#include "platforms.h"
12+
#include "release_definitions.h"
13+
14+
namespace NEO {
15+
constexpr auto release = ReleaseType::release1255;
16+
17+
template <>
18+
bool ReleaseHelperHw<release>::isPrefetchDisablingRequired() const {
19+
20+
return hardwareIpVersion.value < AOT::DG2_G10_B0;
21+
}
22+
23+
} // namespace NEO
24+
25+
template class NEO::ReleaseHelperHw<NEO::release>;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Copyright (C) 2023 Intel Corporation
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
*/
7+
8+
#include "shared/source/release_helper/release_helper.h"
9+
#include "shared/source/release_helper/release_helper_base.inl"
10+
11+
#include "release_definitions.h"
12+
13+
namespace NEO {
14+
constexpr auto release = ReleaseType::release1256;
15+
} // namespace NEO
16+
17+
template class NEO::ReleaseHelperHw<NEO::release>;

0 commit comments

Comments
 (0)