Set alignment for SVM_CPU properties on xe_hpc and later

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk 2022-12-02 09:30:29 +00:00 committed by Compute-Runtime-Automation
parent 7d202c7871
commit dbc6ac2743
6 changed files with 22 additions and 1 deletions

View File

@ -490,7 +490,7 @@ void *SVMAllocsManager::createUnifiedAllocationWithDeviceStorage(size_t size, co
alignedSize, AllocationType::SVM_CPU,
false, // isMultiStorageAllocation
subDevices};
cpuProperties.alignment = MemoryConstants::pageSize2Mb;
cpuProperties.alignment = memoryManager->peekExecutionEnvironment().rootDeviceEnvironments[rootDeviceIndex]->getHwInfoConfig().getSvmCpuAlignment();
cpuProperties.flags.isUSMHostAllocation = useExternalHostPtrForCpu;
auto cacheRegion = MemoryPropertiesHelper::getCacheRegion(unifiedMemoryProperties.allocationFlags);
MemoryPropertiesHelper::fillCachePolicyInProperties(cpuProperties, false, svmProperties.readOnly, false, cacheRegion);

View File

@ -121,6 +121,7 @@ class HwInfoConfig {
virtual bool isCopyEngineSelectorEnabled(const HardwareInfo &hwInfo) const = 0;
virtual bool isAdjustProgrammableIdPreferredSlmSizeRequired(const HardwareInfo &hwInfo) const = 0;
virtual uint32_t getThreadEuRatioForScratch(const HardwareInfo &hwInfo) const = 0;
virtual size_t getSvmCpuAlignment() const = 0;
virtual bool isComputeDispatchAllWalkerEnableInCfeStateRequired(const HardwareInfo &hwInfo) const = 0;
virtual bool isVmBindPatIndexProgrammingSupported() const = 0;
virtual bool isBFloat16ConversionSupported(const HardwareInfo &hwInfo) const = 0;
@ -262,6 +263,7 @@ class HwInfoConfigHw : public HwInfoConfig {
bool isGlobalFenceInDirectSubmissionRequired(const HardwareInfo &hwInfo) const override;
bool isAdjustProgrammableIdPreferredSlmSizeRequired(const HardwareInfo &hwInfo) const override;
uint32_t getThreadEuRatioForScratch(const HardwareInfo &hwInfo) const override;
size_t getSvmCpuAlignment() const override;
bool isComputeDispatchAllWalkerEnableInCfeStateRequired(const HardwareInfo &hwInfo) const override;
bool isVmBindPatIndexProgrammingSupported() const override;
bool isBFloat16ConversionSupported(const HardwareInfo &hwInfo) const override;

View File

@ -399,6 +399,11 @@ uint32_t HwInfoConfigHw<gfxProduct>::getThreadEuRatioForScratch(const HardwareIn
return 8u;
}
template <PRODUCT_FAMILY gfxProduct>
size_t HwInfoConfigHw<gfxProduct>::getSvmCpuAlignment() const {
return MemoryConstants::pageSize2Mb;
}
template <PRODUCT_FAMILY gfxProduct>
bool HwInfoConfigHw<gfxProduct>::isComputeDispatchAllWalkerEnableInCfeStateRequired(const HardwareInfo &hwInfo) const {
return getFrontEndPropertyComputeDispatchAllWalkerSupport();

View File

@ -9,3 +9,8 @@ template <>
bool HwInfoConfigHw<gfxProduct>::isVmBindPatIndexProgrammingSupported() const {
return true;
}
template <>
size_t HwInfoConfigHw<gfxProduct>::getSvmCpuAlignment() const {
return MemoryConstants::pageSize64k;
}

View File

@ -34,6 +34,10 @@ PVCTEST_F(PvcProductHelperLinux, WhenConfiguringHwInfoThenZeroIsReturned) {
EXPECT_EQ(0, ret);
}
PVCTEST_F(PvcProductHelperLinux, WhenGetSvmCpuAlignmentThenProperValueIsReturned) {
EXPECT_EQ(MemoryConstants::pageSize64k, productHelper->getSvmCpuAlignment());
}
PVCTEST_F(PvcProductHelperLinux, given57bAddressSpaceWhenConfiguringHwInfoThenSetFtrFlag) {
outHwInfo.featureTable.flags.ftr57bGPUAddressing = false;

View File

@ -248,6 +248,11 @@ DG2TEST_F(HwInfoConfigTestDg2, givenDg2WhenIsBlitterForImagesSupportedIsCalledTh
EXPECT_TRUE(hwInfoConfig.isBlitterForImagesSupported());
}
DG2TEST_F(HwInfoConfigTestDg2, WhenGetSvmCpuAlignmentThenProperValueIsReturned) {
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
EXPECT_EQ(MemoryConstants::pageSize2Mb, hwInfoConfig.getSvmCpuAlignment());
}
DG2TEST_F(HwInfoConfigTestDg2, givenB0rCSteppingWhenAskingIfTile64With3DSurfaceOnBCSIsSupportedThenReturnTrue) {
auto &productHelper = getHelper<ProductHelper>();
std::array<std::pair<uint32_t, bool>, 4> revisions = {