mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-10 12:53:42 +08:00
fix: enforce zebin format by default in Ocloc for ICL/TGL/RKL/ADL
Products for which zebin has been set as default format in OCLOC: - ICELAKE_LP - TIGERLAKE_LP - ROCKETLAKE - ALDERLAKE_S - ALDERLAKE_P - ALDERLAKE_N The default format does not override `--format` parameter. Related-To: NEO-8334 Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
2f43ff28c3
commit
b2ba1fbecf
@ -4291,7 +4291,7 @@ TEST(OclocCompile, givenFormatFlagWithKnownFormatPassedThenEnforceSpecifiedForma
|
|||||||
EXPECT_TRUE(hasSubstr(ocloc.internalOptions, std::string{CompilerOptions::disableZebin}));
|
EXPECT_TRUE(hasSubstr(ocloc.internalOptions, std::string{CompilerOptions::disableZebin}));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(OclocCompile, givenNoFormatFlagSpecifiedWhenOclocInitializeThenZebinFormatIsEnforcedByDefault) {
|
HWTEST2_F(MockOfflineCompilerTests, givenNoFormatFlagSpecifiedWhenOclocInitializeThenZebinFormatIsEnforcedByDefault, HasOclocZebinFormatEnforced) {
|
||||||
MockOfflineCompiler ocloc;
|
MockOfflineCompiler ocloc;
|
||||||
|
|
||||||
std::vector<std::string> argvNoFormatFlag = {
|
std::vector<std::string> argvNoFormatFlag = {
|
||||||
@ -4299,7 +4299,9 @@ TEST(OclocCompile, givenNoFormatFlagSpecifiedWhenOclocInitializeThenZebinFormatI
|
|||||||
"-q",
|
"-q",
|
||||||
"-file",
|
"-file",
|
||||||
clFiles + "copybuffer.cl",
|
clFiles + "copybuffer.cl",
|
||||||
"-spv_only"};
|
"-spv_only",
|
||||||
|
"-device",
|
||||||
|
gEnvironment->devicePrefix.c_str()};
|
||||||
|
|
||||||
int retVal = ocloc.initialize(argvNoFormatFlag.size(), argvNoFormatFlag);
|
int retVal = ocloc.initialize(argvNoFormatFlag.size(), argvNoFormatFlag);
|
||||||
ASSERT_EQ(0, retVal);
|
ASSERT_EQ(0, retVal);
|
||||||
|
@ -619,6 +619,12 @@ int OfflineCompiler::initialize(size_t numArgs, const std::vector<std::string> &
|
|||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (formatToEnforce.empty() &&
|
||||||
|
compilerProductHelper &&
|
||||||
|
compilerProductHelper->oclocEnforceZebinFormat()) {
|
||||||
|
formatToEnforce = "zebin";
|
||||||
|
}
|
||||||
|
|
||||||
if (!formatToEnforce.empty()) {
|
if (!formatToEnforce.empty()) {
|
||||||
enforceFormat(formatToEnforce);
|
enforceFormat(formatToEnforce);
|
||||||
}
|
}
|
||||||
@ -1096,7 +1102,6 @@ Usage: ocloc [compile] -file <filename> -device <device_type> [-output <filename
|
|||||||
--format Enforce given binary format. The possible values are:
|
--format Enforce given binary format. The possible values are:
|
||||||
--format zebin - Enforce generating zebin binary
|
--format zebin - Enforce generating zebin binary
|
||||||
--format patchtokens - Enforce generating patchtokens (legacy) binary.
|
--format patchtokens - Enforce generating patchtokens (legacy) binary.
|
||||||
Zebin format is enforced by default.
|
|
||||||
|
|
||||||
-config Target hardware info config for a single device,
|
-config Target hardware info config for a single device,
|
||||||
e.g 1x4x8.
|
e.g 1x4x8.
|
||||||
|
@ -150,7 +150,7 @@ All supported acronyms: %s.
|
|||||||
std::string buildLog;
|
std::string buildLog;
|
||||||
std::string optionsReadFromFile = "";
|
std::string optionsReadFromFile = "";
|
||||||
std::string internalOptionsReadFromFile = "";
|
std::string internalOptionsReadFromFile = "";
|
||||||
std::string formatToEnforce = "zebin";
|
std::string formatToEnforce = "";
|
||||||
std::string irHash, genHash, dbgHash, elfHash;
|
std::string irHash, genHash, dbgHash, elfHash;
|
||||||
std::string cacheDir;
|
std::string cacheDir;
|
||||||
|
|
||||||
|
@ -28,6 +28,11 @@ uint32_t CompilerProductHelperHw<IGFX_ICELAKE_LP>::getDefaultHwIpVersion() const
|
|||||||
return AOT::ICL;
|
return AOT::ICL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
bool CompilerProductHelperHw<IGFX_ICELAKE_LP>::oclocEnforceZebinFormat() const {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static EnableCompilerProductHelper<IGFX_ICELAKE_LP> enableCompilerProductHelperICLLP;
|
static EnableCompilerProductHelper<IGFX_ICELAKE_LP> enableCompilerProductHelperICLLP;
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
@ -24,6 +24,11 @@ uint32_t CompilerProductHelperHw<IGFX_ALDERLAKE_N>::getDefaultHwIpVersion() cons
|
|||||||
return AOT::ADL_N;
|
return AOT::ADL_N;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
bool CompilerProductHelperHw<IGFX_ALDERLAKE_N>::oclocEnforceZebinFormat() const {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static EnableCompilerProductHelper<IGFX_ALDERLAKE_N> enableCompilerProductHelperADLN;
|
static EnableCompilerProductHelper<IGFX_ALDERLAKE_N> enableCompilerProductHelperADLN;
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
@ -24,6 +24,11 @@ uint32_t CompilerProductHelperHw<IGFX_ALDERLAKE_P>::getDefaultHwIpVersion() cons
|
|||||||
return AOT::ADL_P;
|
return AOT::ADL_P;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
bool CompilerProductHelperHw<IGFX_ALDERLAKE_P>::oclocEnforceZebinFormat() const {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static EnableCompilerProductHelper<IGFX_ALDERLAKE_P> enableCompilerProductHelperADLP;
|
static EnableCompilerProductHelper<IGFX_ALDERLAKE_P> enableCompilerProductHelperADLP;
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
@ -28,6 +28,11 @@ uint32_t CompilerProductHelperHw<IGFX_ALDERLAKE_S>::getDefaultHwIpVersion() cons
|
|||||||
return AOT::ADL_S;
|
return AOT::ADL_S;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
bool CompilerProductHelperHw<IGFX_ALDERLAKE_S>::oclocEnforceZebinFormat() const {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static EnableCompilerProductHelper<IGFX_ALDERLAKE_S> enableCompilerProductHelperADLS;
|
static EnableCompilerProductHelper<IGFX_ALDERLAKE_S> enableCompilerProductHelperADLS;
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
@ -33,6 +33,11 @@ uint32_t CompilerProductHelperHw<IGFX_ROCKETLAKE>::getDefaultHwIpVersion() const
|
|||||||
return AOT::RKL;
|
return AOT::RKL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
bool CompilerProductHelperHw<IGFX_ROCKETLAKE>::oclocEnforceZebinFormat() const {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static EnableCompilerProductHelper<IGFX_ROCKETLAKE> enableCompilerProductHelperRKL;
|
static EnableCompilerProductHelper<IGFX_ROCKETLAKE> enableCompilerProductHelperRKL;
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
@ -28,6 +28,11 @@ uint32_t CompilerProductHelperHw<IGFX_TIGERLAKE_LP>::getDefaultHwIpVersion() con
|
|||||||
return AOT::TGL;
|
return AOT::TGL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
bool CompilerProductHelperHw<IGFX_TIGERLAKE_LP>::oclocEnforceZebinFormat() const {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static EnableCompilerProductHelper<IGFX_TIGERLAKE_LP> enableCompilerProductHelperTGLLP;
|
static EnableCompilerProductHelper<IGFX_TIGERLAKE_LP> enableCompilerProductHelperTGLLP;
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
@ -48,6 +48,7 @@ class CompilerProductHelper {
|
|||||||
virtual bool isForceToStatelessRequired() const = 0;
|
virtual bool isForceToStatelessRequired() const = 0;
|
||||||
virtual bool failBuildProgramWithStatefulAccessPreference() const = 0;
|
virtual bool failBuildProgramWithStatefulAccessPreference() const = 0;
|
||||||
virtual bool isDotIntegerProductExtensionSupported() const = 0;
|
virtual bool isDotIntegerProductExtensionSupported() const = 0;
|
||||||
|
virtual bool oclocEnforceZebinFormat() const = 0;
|
||||||
virtual void setProductConfigForHwInfo(HardwareInfo &hwInfo, HardwareIpVersion config) const = 0;
|
virtual void setProductConfigForHwInfo(HardwareInfo &hwInfo, HardwareIpVersion config) const = 0;
|
||||||
virtual const char *getCachingPolicyOptions(bool isDebuggerActive) const = 0;
|
virtual const char *getCachingPolicyOptions(bool isDebuggerActive) const = 0;
|
||||||
virtual uint64_t getHwInfoConfig(const HardwareInfo &hwInfo) const = 0;
|
virtual uint64_t getHwInfoConfig(const HardwareInfo &hwInfo) const = 0;
|
||||||
@ -87,6 +88,7 @@ class CompilerProductHelperHw : public CompilerProductHelper {
|
|||||||
bool isForceToStatelessRequired() const override;
|
bool isForceToStatelessRequired() const override;
|
||||||
bool failBuildProgramWithStatefulAccessPreference() const override;
|
bool failBuildProgramWithStatefulAccessPreference() const override;
|
||||||
bool isDotIntegerProductExtensionSupported() const override;
|
bool isDotIntegerProductExtensionSupported() const override;
|
||||||
|
bool oclocEnforceZebinFormat() const override;
|
||||||
void setProductConfigForHwInfo(HardwareInfo &hwInfo, HardwareIpVersion config) const override;
|
void setProductConfigForHwInfo(HardwareInfo &hwInfo, HardwareIpVersion config) const override;
|
||||||
const char *getCachingPolicyOptions(bool isDebuggerActive) const override;
|
const char *getCachingPolicyOptions(bool isDebuggerActive) const override;
|
||||||
uint64_t getHwInfoConfig(const HardwareInfo &hwInfo) const override;
|
uint64_t getHwInfoConfig(const HardwareInfo &hwInfo) const override;
|
||||||
|
@ -40,6 +40,11 @@ bool CompilerProductHelperHw<gfxProduct>::failBuildProgramWithStatefulAccessPref
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <PRODUCT_FAMILY gfxProduct>
|
||||||
|
bool CompilerProductHelperHw<gfxProduct>::oclocEnforceZebinFormat() const {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
template <PRODUCT_FAMILY gfxProduct>
|
template <PRODUCT_FAMILY gfxProduct>
|
||||||
std::string CompilerProductHelperHw<gfxProduct>::getDeviceExtensions(const HardwareInfo &hwInfo, const ReleaseHelper *releaseHelper) const {
|
std::string CompilerProductHelperHw<gfxProduct>::getDeviceExtensions(const HardwareInfo &hwInfo, const ReleaseHelper *releaseHelper) const {
|
||||||
std::string extensions = "cl_khr_byte_addressable_store "
|
std::string extensions = "cl_khr_byte_addressable_store "
|
||||||
|
@ -87,6 +87,13 @@ using HasStatefulSupport = IsNotAnyGfxCores<IGFX_XE_HPC_CORE>;
|
|||||||
|
|
||||||
using HasNoStatefulSupport = IsAnyGfxCores<IGFX_XE_HPC_CORE>;
|
using HasNoStatefulSupport = IsAnyGfxCores<IGFX_XE_HPC_CORE>;
|
||||||
|
|
||||||
|
using HasOclocZebinFormatEnforced = IsAnyProducts<IGFX_ICELAKE_LP,
|
||||||
|
IGFX_TIGERLAKE_LP,
|
||||||
|
IGFX_ROCKETLAKE,
|
||||||
|
IGFX_ALDERLAKE_S,
|
||||||
|
IGFX_ALDERLAKE_P,
|
||||||
|
IGFX_ALDERLAKE_N>;
|
||||||
|
|
||||||
struct IsXeLpg {
|
struct IsXeLpg {
|
||||||
template <PRODUCT_FAMILY productFamily>
|
template <PRODUCT_FAMILY productFamily>
|
||||||
static constexpr bool isMatched() {
|
static constexpr bool isMatched() {
|
||||||
|
@ -102,6 +102,10 @@ ICLLPTEST_F(IcllpProductHelper, givenCompilerProductHelperWhenGetProductConfigTh
|
|||||||
EXPECT_EQ(compilerProductHelper->getHwIpVersion(*defaultHwInfo), AOT::ICL);
|
EXPECT_EQ(compilerProductHelper->getHwIpVersion(*defaultHwInfo), AOT::ICL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ICLLPTEST_F(IcllpProductHelper, givenCompilerProductHelperWhenGettingOclocEnforceZebinFormatThenExpectTrue) {
|
||||||
|
EXPECT_TRUE(compilerProductHelper->oclocEnforceZebinFormat());
|
||||||
|
}
|
||||||
|
|
||||||
ICLLPTEST_F(IcllpProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
ICLLPTEST_F(IcllpProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
||||||
|
|
||||||
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
||||||
|
@ -80,6 +80,10 @@ ADLNTEST_F(AdlnProductHelper, givenCompilerProductHelperWhenGetProductConfigThen
|
|||||||
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::ADL_N);
|
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::ADL_N);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ADLNTEST_F(AdlnProductHelper, givenCompilerProductHelperWhenGettingOclocEnforceZebinFormatThenExpectTrue) {
|
||||||
|
EXPECT_TRUE(compilerProductHelper->oclocEnforceZebinFormat());
|
||||||
|
}
|
||||||
|
|
||||||
ADLNTEST_F(AdlnProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
ADLNTEST_F(AdlnProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
||||||
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,11 @@ ADLPTEST_F(AdlpProductHelper, givenCompilerProductHelperWhenGetProductConfigThen
|
|||||||
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::ADL_P);
|
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::ADL_P);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ADLPTEST_F(AdlpProductHelper, givenCompilerProductHelperWhenGettingOclocEnforceZebinFormatThenExpectTrue) {
|
||||||
|
|
||||||
|
EXPECT_TRUE(compilerProductHelper->oclocEnforceZebinFormat());
|
||||||
|
}
|
||||||
|
|
||||||
ADLPTEST_F(AdlpProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
ADLPTEST_F(AdlpProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
||||||
|
|
||||||
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
||||||
|
@ -80,6 +80,11 @@ ADLSTEST_F(AdlsProductHelper, givenCompilerProductHelperWhenGetProductConfigThen
|
|||||||
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::ADL_S);
|
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::ADL_S);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ADLSTEST_F(AdlsProductHelper, givenCompilerProductHelperWhenGettingOclocEnforceZebinFormatThenExpectTrue) {
|
||||||
|
|
||||||
|
EXPECT_TRUE(compilerProductHelper->oclocEnforceZebinFormat());
|
||||||
|
}
|
||||||
|
|
||||||
ADLSTEST_F(AdlsProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
ADLSTEST_F(AdlsProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
||||||
|
|
||||||
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
||||||
|
@ -85,6 +85,10 @@ RKLTEST_F(RklProductHelper, givenCompilerProductHelperWhenGetProductConfigThenCo
|
|||||||
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::RKL);
|
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::RKL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RKLTEST_F(RklProductHelper, givenCompilerProductHelperWhenGettingOclocEnforceZebinFormatThenExpectTrue) {
|
||||||
|
EXPECT_TRUE(compilerProductHelper->oclocEnforceZebinFormat());
|
||||||
|
}
|
||||||
|
|
||||||
RKLTEST_F(RklProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
RKLTEST_F(RklProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
||||||
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
|
||||||
}
|
}
|
||||||
|
@ -239,3 +239,7 @@ TGLLPTEST_F(TgllpProductHelper, givenTgllpWhenObtainingBlitterPreferenceThenRetu
|
|||||||
TGLLPTEST_F(TgllpProductHelper, givenCompilerProductHelperWhenGetProductConfigThenCorrectMatchIsFound) {
|
TGLLPTEST_F(TgllpProductHelper, givenCompilerProductHelperWhenGetProductConfigThenCorrectMatchIsFound) {
|
||||||
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::TGL);
|
EXPECT_EQ(compilerProductHelper->getHwIpVersion(pInHwInfo), AOT::TGL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TGLLPTEST_F(TgllpProductHelper, givenCompilerProductHelperWhenGettingOclocEnforceZebinFormatThenExpectTrue) {
|
||||||
|
EXPECT_TRUE(compilerProductHelper->oclocEnforceZebinFormat());
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user