Skip to content

Commit d2462ff

Browse files
Add debug flag to control ISA allocation padding
Signed-off-by: Filip Hazubski <[email protected]>
1 parent 8e98b58 commit d2462ff

File tree

6 files changed

+23
-4
lines changed

6 files changed

+23
-4
lines changed

opencl/test/unit_test/helpers/hw_helper_tests.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,17 @@ HWTEST_F(HwHelperTest, givenHwHelperWhenGettingISAPaddingThenCorrectValueIsRetur
8888
EXPECT_EQ(hwHelper.getPaddingForISAAllocation(), 512u);
8989
}
9090

91+
HWTEST_F(HwHelperTest, givenForceExtendedKernelIsaSizeSetWhenGettingISAPaddingThenCorrectValueIsReturned) {
92+
DebugManagerStateRestore restore;
93+
auto &hwHelper = HwHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
94+
95+
auto defaultPadding = hwHelper.getPaddingForISAAllocation();
96+
for (int32_t valueToTest : {0, 1, 2, 10}) {
97+
DebugManager.flags.ForceExtendedKernelIsaSize.set(valueToTest);
98+
EXPECT_EQ(hwHelper.getPaddingForISAAllocation(), defaultPadding + MemoryConstants::pageSize * valueToTest);
99+
}
100+
}
101+
91102
HWTEST_F(HwHelperTest, WhenSettingRenderSurfaceStateForBufferThenL1CachePolicyIsSet) {
92103
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
93104
using SURFACE_TYPE = typename RENDER_SURFACE_STATE::SURFACE_TYPE;

opencl/test/unit_test/test_files/igdrcl.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ ExperimentalEnableSourceLevelDebugger = 0
378378
Force2dImageAsArray = -1
379379
ForceExtendedBufferSize = -1
380380
ForceExtendedUSMBufferSize = -1
381+
ForceExtendedKernelIsaSize = -1
381382
MakeIndirectAllocationsResidentAsPack = -1
382383
MakeEachAllocationResident = -1
383384
AssignBCSAtEnqueue = -1

shared/source/debug_settings/debug_variables_base.inl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,9 @@ DECLARE_DEBUG_VARIABLE(int32_t, ClosNumCacheWays, -1, "-1: default, >= 0 Number
179179
DECLARE_DEBUG_VARIABLE(int32_t, EngineUsageHint, -1, "-1: default, >=0: engine usage value to use when creating command queue on user selected engine")
180180
DECLARE_DEBUG_VARIABLE(int32_t, ForceBcsEngineIndex, -1, "-1: default, >=0 Copy Engine index")
181181
DECLARE_DEBUG_VARIABLE(int32_t, Force2dImageAsArray, -1, "-1: default, 0: WA Disabled, 1: Forces surface state of 2dImage to array")
182-
DECLARE_DEBUG_VARIABLE(int32_t, ForceExtendedBufferSize, -1, "-1: default, 0: disabled, >=1: Forces extended buffer size by specify pageSize number in clCreateBuffer, clCreateBufferWithProperties and clCreateBufferWithPropertiesINTEL calls")
183-
DECLARE_DEBUG_VARIABLE(int32_t, ForceExtendedUSMBufferSize, -1, "-1: default, 0: disabled, >=1: Forces extended buffer size by specify pageSize number in USM calls")
182+
DECLARE_DEBUG_VARIABLE(int32_t, ForceExtendedBufferSize, -1, "-1: default, 0: disabled, >=1: Forces extended buffer size by specified pageSize number in clCreateBuffer, clCreateBufferWithProperties and clCreateBufferWithPropertiesINTEL calls")
183+
DECLARE_DEBUG_VARIABLE(int32_t, ForceExtendedUSMBufferSize, -1, "-1: default, 0: disabled, >=1: Forces extended buffer size by specified pageSize number in USM calls")
184+
DECLARE_DEBUG_VARIABLE(int32_t, ForceExtendedKernelIsaSize, -1, "-1: default, 0: disabled, >=1: Forces extended kernel isa size by specified pageSize number")
184185
DECLARE_DEBUG_VARIABLE(int32_t, ForceSimdMessageSizeInWalker, -1, "-1: default, >=0 Program given value in Walker command for SIMD size")
185186
DECLARE_DEBUG_VARIABLE(int32_t, EnableRecoverablePageFaults, -1, "-1: default - ignore, 0: disable, 1: enable recoverable page faults on all VMs (on faultable hardware)")
186187
DECLARE_DEBUG_VARIABLE(int32_t, EnableImplicitMigrationOnFaultableHardware, -1, "-1: default - ignore, 0: disable, 1: enable implicit migration on faultable hardware (for all allocations)")

shared/source/helpers/hw_helper_base.inl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ size_t HwHelperHw<Family>::getMaxBarrierRegisterPerSlice() const {
7474

7575
template <typename Family>
7676
size_t HwHelperHw<Family>::getPaddingForISAAllocation() const {
77+
if (DebugManager.flags.ForceExtendedKernelIsaSize.get() >= 1) {
78+
return 512 + (MemoryConstants::pageSize * DebugManager.flags.ForceExtendedKernelIsaSize.get());
79+
}
7780
return 512;
7881
}
7982

shared/source/xe_hpc_core/hw_helper_xe_hpc_core.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,10 @@ uint32_t HwHelperHw<Family>::getMaxNumSamplers() const {
167167

168168
template <>
169169
size_t HwHelperHw<Family>::getPaddingForISAAllocation() const {
170-
return 3584;
170+
if (DebugManager.flags.ForceExtendedKernelIsaSize.get() >= 1) {
171+
return 0xE00 + (MemoryConstants::pageSize * DebugManager.flags.ForceExtendedKernelIsaSize.get());
172+
}
173+
return 0xE00;
171174
}
172175

173176
template <>

shared/test/unit_test/xe_hpc_core/hw_helper_xe_hpc_core_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, WhenGettingIsCpuImageTransferPreferredT
5656

5757
XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, givenHwHelperWhenGettingISAPaddingThenCorrectValueIsReturned) {
5858
auto &hwHelper = NEO::HwHelper::get(defaultHwInfo->platform.eRenderCoreFamily);
59-
EXPECT_EQ(hwHelper.getPaddingForISAAllocation(), 3584u);
59+
EXPECT_EQ(hwHelper.getPaddingForISAAllocation(), 0xE00u);
6060
}
6161

6262
XE_HPC_CORETEST_F(HwHelperXeHpcCoreTest, givenHwHelperWhenGettingIfRevisionSpecificBinaryBuiltinIsRequiredThenTrueIsReturned) {

0 commit comments

Comments
 (0)