fix: Add option to use divergent paths for barriers

Related-To: NEO-12159, IGC-9846, HSD-16024235164, HSD-15014782386

Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
This commit is contained in:
Maciej Plewka
2024-08-08 10:31:57 +00:00
committed by Compute-Runtime-Automation
parent 5bb1bc0396
commit 27488a8315
6 changed files with 69 additions and 1 deletions

View File

@@ -40,6 +40,7 @@ enum class AILEnumeration : uint32_t {
disableHostPtrTracking,
enableLegacyPlatformName,
disableDirectSubmission,
handleDivergentBarriers,
};
class AILConfiguration;
@@ -76,12 +77,15 @@ class AILConfiguration {
virtual bool forceRcs() = 0;
virtual bool handleDivergentBarriers() = 0;
protected:
virtual void applyExt(RuntimeCapabilityTable &runtimeCapabilityTable) = 0;
std::string processName;
bool sourcesContain(const std::string &sources, std::string_view contentToFind) const;
MOCKABLE_VIRTUAL bool isKernelHashCorrect(const std::string &kernelSources, uint64_t expectedHash) const;
virtual void setHandleDivergentBarriers(bool val) = 0;
};
extern const std::set<std::string_view> applicationsContextSyncFlag;
@@ -104,8 +108,13 @@ class AILConfigurationHw : public AILConfiguration {
bool isBufferPoolEnabled() override;
bool useLegacyValidationLogic() override;
bool forceRcs() override;
bool handleDivergentBarriers() override;
bool shouldForceRcs = false;
bool shouldHandleDivergentBarriers = false;
protected:
void setHandleDivergentBarriers(bool val) override;
};
template <PRODUCT_FAMILY product>

View File

@@ -60,4 +60,13 @@ inline bool AILConfigurationHw<product>::forceRcs() {
return shouldForceRcs;
}
template <PRODUCT_FAMILY product>
inline bool AILConfigurationHw<product>::handleDivergentBarriers() {
return shouldHandleDivergentBarriers;
}
template <PRODUCT_FAMILY product>
inline void AILConfigurationHw<product>::setHandleDivergentBarriers(bool val) {
shouldHandleDivergentBarriers = val;
}
} // namespace NEO

View File

@@ -44,6 +44,7 @@ inline constexpr ConstStringRef autoGrf = "-cl-intel-enable-auto-large-GRF-mode"
inline constexpr ConstStringRef numThreadsPerEu = "-cl-intel-reqd-eu-thread-count";
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 size_t nullterminateSize = 1U;
inline constexpr size_t spaceSeparatorSize = 1U;