mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 21:42:53 +08:00
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:
committed by
Compute-Runtime-Automation
parent
5bb1bc0396
commit
27488a8315
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user