fix: read ONEAPI_PVC_SEND_WAR_WA env

- disable optimization with compiler internal option when env is set to
zero

Related-To: NEO-15378, GSD-10884

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2025-07-08 15:55:32 +00:00
committed by Compute-Runtime-Automation
parent fc37b98b69
commit 703497b067
18 changed files with 270 additions and 3 deletions

View File

@@ -81,7 +81,6 @@ set(CLOC_LIB_SRCS_LIB
${NEO_SHARED_DIRECTORY}/os_interface/os_library.h
${NEO_SHARED_DIRECTORY}/sku_info/definitions${BRANCH_DIR_SUFFIX}sku_info.cpp
${NEO_SHARED_DIRECTORY}/utilities/directory.h
${NEO_SHARED_DIRECTORY}/utilities/io_functions.cpp
${NEO_SHARED_DIRECTORY}/utilities/io_functions.h
${NEO_SHARED_DIRECTORY}/utilities/logger.cpp
${NEO_SHARED_DIRECTORY}/utilities/logger.h
@@ -350,6 +349,7 @@ set(CLOC_LIB_SRCS
)
add_library(${OCLOC_NAME}_lib SHARED ${CLOC_LIB_SRCS}
${NEO_SOURCE_DIR}/shared/source/utilities/debug_settings_reader_creator.cpp
${NEO_SHARED_DIRECTORY}/utilities/io_functions.cpp
)
add_subdirectories()

View File

@@ -30,6 +30,7 @@
#include "shared/source/helpers/debug_helpers.h"
#include "shared/source/helpers/string.h"
#include "shared/source/helpers/validators.h"
#include "shared/source/os_interface/debug_env_reader.h"
#include "shared/source/release_helper/release_helper.h"
#include "shared/source/utilities/io_functions.h"
@@ -965,6 +966,11 @@ int OfflineCompiler::initialize(size_t numArgs, const std::vector<std::string> &
appendExtensionsToInternalOptions(hwInfo, options, internalOptions);
appendExtraInternalOptions(internalOptions);
}
NEO::EnvironmentVariableReader envReader;
if (envReader.getSetting("ONEAPI_PVC_SEND_WAR_WA", true) == false) {
CompilerOptions::concatenateAppend(internalOptions, NEO::CompilerOptions::optDisableSendWarWa);
}
parseDebugSettings();
if (allowCaching) {

View File

@@ -8,6 +8,7 @@
#include "shared/source/built_ins/built_ins.h"
#include "shared/source/debug_settings/debug_settings_manager.h"
#include "shared/source/device/device.h"
#include "shared/source/execution_environment/execution_environment.h"
#include "shared/source/execution_environment/root_device_environment.h"
#include "shared/source/helpers/api_specific_config.h"
#include "shared/source/helpers/gfx_core_helper.h"
@@ -190,7 +191,8 @@ BuiltinCode BuiltinsLib::getBuiltinCode(EBuiltInOps::Type builtin, BuiltinCode::
if (requestedCodeType == BuiltinCode::ECodeType::any) {
uint32_t codeType = static_cast<uint32_t>(BuiltinCode::ECodeType::binary);
if (debugManager.flags.RebuildPrecompiledKernels.get()) {
bool requiresRebuild = !device.getExecutionEnvironment()->isOneApiPvcWaEnv();
if (requiresRebuild || debugManager.flags.RebuildPrecompiledKernels.get()) {
codeType = static_cast<uint32_t>(BuiltinCode::ECodeType::source);
}
for (uint32_t e = static_cast<uint32_t>(BuiltinCode::ECodeType::count);

View File

@@ -45,6 +45,7 @@ inline constexpr ConstStringRef numThreadsPerEu = "-cl-intel-reqd-eu-thread-coun
inline constexpr ConstStringRef useCMCompiler = "-cmc";
inline constexpr ConstStringRef enableFP64GenEmu = "-cl-fp64-gen-emu";
inline constexpr ConstStringRef enableDivergentBarriers = "-cl-intel-enable-divergent-barrier-handling";
inline constexpr ConstStringRef optDisableSendWarWa = "-ze-opt-disable-sendwarwa";
inline constexpr size_t nullterminateSize = 1U;
inline constexpr size_t spaceSeparatorSize = 1U;

View File

@@ -65,6 +65,11 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
}
bool isFP64EmulationEnabled() const { return fp64EmulationEnabled; }
void setOneApiPvcWaEnv(bool val) {
oneApiPvcWaEnv = val;
}
bool isOneApiPvcWaEnv() const { return oneApiPvcWaEnv; }
DirectSubmissionController *initializeDirectSubmissionController();
void initializeUnifiedMemoryReuseCleaner(bool isAnyDirectSubmissionLightEnabled);
@@ -89,6 +94,7 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
void restoreCcsMode();
bool metricsEnabled = false;
bool fp64EmulationEnabled = false;
bool oneApiPvcWaEnv = true;
DeviceHierarchyMode deviceHierarchyMode = DeviceHierarchyMode::composite;
DebuggingMode debuggingEnabledMode = DebuggingMode::disabled;