mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
fix: Report correct DP support for platforms
Related-To: NEO-9702 - Remove older interfaces and add new release helper Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
d953b3e8c5
commit
f5045348ad
@@ -60,6 +60,7 @@ class CompilerProductHelper {
|
||||
virtual bool isBFloat16ConversionSupported(const ReleaseHelper *releaseHelper) const = 0;
|
||||
virtual bool isSubgroupLocalBlockIoSupported() const = 0;
|
||||
virtual bool isDotAccumulateSupported() const = 0;
|
||||
virtual bool isDotProductAccumulateSystolicSupported(const ReleaseHelper *releaseHelper) const = 0;
|
||||
virtual bool isCreateBufferWithPropertiesSupported() const = 0;
|
||||
virtual bool isSubgroupNamedBarrierSupported() const = 0;
|
||||
virtual bool isSubgroupExtendedBlockReadSupported() const = 0;
|
||||
@@ -101,6 +102,7 @@ class CompilerProductHelperHw : public CompilerProductHelper {
|
||||
bool isBFloat16ConversionSupported(const ReleaseHelper *releaseHelper) const override;
|
||||
bool isSubgroupLocalBlockIoSupported() const override;
|
||||
bool isDotAccumulateSupported() const override;
|
||||
bool isDotProductAccumulateSystolicSupported(const ReleaseHelper *releaseHelper) const override;
|
||||
bool isCreateBufferWithPropertiesSupported() const override;
|
||||
bool isSubgroupNamedBarrierSupported() const override;
|
||||
bool isSubgroupExtendedBlockReadSupported() const override;
|
||||
|
||||
@@ -248,6 +248,15 @@ bool CompilerProductHelperHw<gfxProduct>::isMatrixMultiplyAccumulateSupported(co
|
||||
return false;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool CompilerProductHelperHw<gfxProduct>::isDotProductAccumulateSystolicSupported(const ReleaseHelper *releaseHelper) const {
|
||||
if (releaseHelper) {
|
||||
return releaseHelper->isDotProductAccumulateSystolicSupported();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool CompilerProductHelperHw<gfxProduct>::isSplitMatrixMultiplyAccumulateSupported(const ReleaseHelper *releaseHelper) const {
|
||||
if (releaseHelper) {
|
||||
|
||||
@@ -167,8 +167,6 @@ class ProductHelper {
|
||||
virtual uint32_t getMaxNumSamplers() const = 0;
|
||||
virtual uint32_t getCommandBuffersPreallocatedPerCommandQueue() const = 0;
|
||||
virtual uint32_t getInternalHeapsPreallocated() const = 0;
|
||||
virtual bool isPlatformDpasSupported() const = 0;
|
||||
virtual bool isPlatformDp4aSupported() const = 0;
|
||||
virtual bool overrideAllocationCacheable(const AllocationData &allocationData) const = 0;
|
||||
|
||||
virtual bool getFrontEndPropertyScratchSizeSupport() const = 0;
|
||||
|
||||
@@ -166,16 +166,6 @@ uint64_t ProductHelperHw<gfxProduct>::getDeviceMemoryMaxBandWidthInBytesPerSecon
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool ProductHelperHw<gfxProduct>::isPlatformDpasSupported() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool ProductHelperHw<gfxProduct>::isPlatformDp4aSupported() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool ProductHelperHw<gfxProduct>::overrideAllocationCacheable(const AllocationData &allocationData) const {
|
||||
return false;
|
||||
|
||||
@@ -120,8 +120,6 @@ class ProductHelperHw : public ProductHelper {
|
||||
uint32_t getMaxNumSamplers() const override;
|
||||
uint32_t getCommandBuffersPreallocatedPerCommandQueue() const override;
|
||||
uint32_t getInternalHeapsPreallocated() const override;
|
||||
bool isPlatformDpasSupported() const override;
|
||||
bool isPlatformDp4aSupported() const override;
|
||||
bool overrideAllocationCacheable(const AllocationData &allocationData) const override;
|
||||
|
||||
bool getFrontEndPropertyScratchSizeSupport() const override;
|
||||
|
||||
@@ -34,6 +34,7 @@ class ReleaseHelper {
|
||||
|
||||
virtual bool isAdjustWalkOrderAvailable() const = 0;
|
||||
virtual bool isMatrixMultiplyAccumulateSupported() const = 0;
|
||||
virtual bool isDotProductAccumulateSystolicSupported() const = 0;
|
||||
virtual bool isPipeControlPriorToNonPipelinedStateCommandsWARequired() const = 0;
|
||||
virtual bool isPipeControlPriorToPipelineSelectWaRequired() const = 0;
|
||||
virtual bool isProgramAllStateComputeCommandFieldsWARequired() const = 0;
|
||||
@@ -68,6 +69,7 @@ class ReleaseHelperHw : public ReleaseHelper {
|
||||
|
||||
bool isAdjustWalkOrderAvailable() const override;
|
||||
bool isMatrixMultiplyAccumulateSupported() const override;
|
||||
bool isDotProductAccumulateSystolicSupported() const override;
|
||||
bool isPipeControlPriorToNonPipelinedStateCommandsWARequired() const override;
|
||||
bool isPipeControlPriorToPipelineSelectWaRequired() const override;
|
||||
bool isProgramAllStateComputeCommandFieldsWARequired() const override;
|
||||
|
||||
@@ -32,6 +32,11 @@ inline bool ReleaseHelperHw<release>::isAuxSurfaceModeOverrideRequired() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool ReleaseHelperHw<release>::isDotProductAccumulateSystolicSupported() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <>
|
||||
int ReleaseHelperHw<release>::getProductMaxPreferredSlmSize(int preferredEnumValue) const {
|
||||
using PREFERRED_SLM_ALLOCATION_SIZE = typename XeHpgCoreFamily::INTERFACE_DESCRIPTOR_DATA::PREFERRED_SLM_ALLOCATION_SIZE;
|
||||
|
||||
@@ -44,6 +44,11 @@ bool ReleaseHelperHw<release>::getMediaFrequencyTileIndex(uint32_t &tileIndex) c
|
||||
return true;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool ReleaseHelperHw<release>::isDotProductAccumulateSystolicSupported() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
#include "shared/source/release_helper/release_helper_common_xe_lpg.inl"
|
||||
|
||||
@@ -14,6 +14,10 @@ bool ReleaseHelperHw<releaseType>::isMatrixMultiplyAccumulateSupported() const {
|
||||
return true;
|
||||
}
|
||||
template <ReleaseType releaseType>
|
||||
bool ReleaseHelperHw<releaseType>::isDotProductAccumulateSystolicSupported() const {
|
||||
return true;
|
||||
}
|
||||
template <ReleaseType releaseType>
|
||||
bool ReleaseHelperHw<releaseType>::isAdjustWalkOrderAvailable() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -51,14 +51,4 @@ uint32_t ProductHelperHw<gfxProduct>::getMaxNumSamplers() const {
|
||||
return 0u;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isPlatformDpasSupported() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isPlatformDp4aSupported() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -82,16 +82,6 @@ uint64_t ProductHelperHw<gfxProduct>::overridePatIndex(bool isUncachedType, uint
|
||||
return patIndex;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isPlatformDpasSupported() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isPlatformDp4aSupported() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::overrideAllocationCacheable(const AllocationData &allocationData) const {
|
||||
return allocationData.type == AllocationType::commandBuffer;
|
||||
|
||||
Reference in New Issue
Block a user