diff --git a/level_zero/core/source/cmdlist/cmdlist_hw.inl b/level_zero/core/source/cmdlist/cmdlist_hw.inl index 350fb076db..0f7aa39bc5 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw.inl @@ -2031,20 +2031,6 @@ ze_result_t CommandListCoreFamily::appendMemoryPrefetch(const voi } } - if (NEO::debugManager.flags.AddStatePrefetchCmdToMemoryPrefetchAPI.get() != 1) { - return ZE_RESULT_SUCCESS; - } - - auto gpuAlloc = allocData->gpuAllocations.getGraphicsAllocation(device->getRootDeviceIndex()); - - commandContainer.addToResidencyContainer(gpuAlloc); - - size_t offset = ptrDiff(ptr, gpuAlloc->getGpuAddress()); - - NEO::LinearStream &cmdStream = *commandContainer.getCommandStream(); - - NEO::EncodeMemoryPrefetch::programMemoryPrefetch(cmdStream, *gpuAlloc, static_cast(size), offset, device->getNEODevice()->getRootDeviceEnvironment()); - return ZE_RESULT_SUCCESS; } diff --git a/level_zero/core/test/unit_tests/xe_hpc_core/pvc/test_cmdlist_pvc.cpp b/level_zero/core/test/unit_tests/xe_hpc_core/pvc/test_cmdlist_pvc.cpp index d111adb8d6..e7c7d7b7da 100644 --- a/level_zero/core/test/unit_tests/xe_hpc_core/pvc/test_cmdlist_pvc.cpp +++ b/level_zero/core/test/unit_tests/xe_hpc_core/pvc/test_cmdlist_pvc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022-2024 Intel Corporation + * Copyright (C) 2022-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -18,25 +18,6 @@ namespace L0 { namespace ult { -using CommandListStatePrefetchPvcXt = Test; - -PVCTEST_F(CommandListStatePrefetchPvcXt, givenCommandBufferIsExhaustedWhenPrefetchApiCalledAndIsPvcXtNotBaseDieA0ThenProgramStatePrefetch) { - auto hwInfo = device->getNEODevice()->getRootDeviceEnvironment().getMutableHardwareInfo(); - auto &productHelper = device->getProductHelper(); - hwInfo->platform.usDeviceID = pvcXtDeviceIds.front(); - hwInfo->platform.usRevId = productHelper.getHwRevIdFromStepping(REVISION_B, *hwInfo); // not BD A0 - checkIfCommandBufferIsExhaustedWhenPrefetchApiCalledThenStatePrefetchProgrammed(hwInfo); -} - -PVCTEST_F(CommandListStatePrefetchPvcXt, givenDebugFlagSetWhenPrefetchApiCalledAndIsPvcXtNotBaseDieA0ThenProgramStatePrefetch) { - auto hwInfo = device->getNEODevice()->getRootDeviceEnvironment().getMutableHardwareInfo(); - auto &productHelper = device->getProductHelper(); - hwInfo = device->getNEODevice()->getRootDeviceEnvironment().getMutableHardwareInfo(); - hwInfo->platform.usDeviceID = pvcXtDeviceIds.front(); - hwInfo->platform.usRevId = productHelper.getHwRevIdFromStepping(REVISION_B, *hwInfo); // not BD A0 - checkIfDebugFlagSetWhenPrefetchApiCalledAThenStatePrefetchProgrammed(hwInfo); -} - using CommandListEventFenceTestsPvc = Test; PVCTEST_F(CommandListEventFenceTestsPvc, givenCommandListWithProfilingEventAfterCommandOnPvcRev00ThenMiFenceIsNotAdded) { diff --git a/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.cpp b/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.cpp index 1e84d06c0b..fef6050603 100644 --- a/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.cpp +++ b/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022-2023 Intel Corporation + * Copyright (C) 2022-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -26,102 +26,4 @@ void DeviceFixtureXeHpcTests::checkIfCallingGetMemoryPropertiesWithNonNullPtrThe EXPECT_EQ(1u, count); EXPECT_EQ(memProperties.maxClockRate, 0u); -} - -void CommandListStatePrefetchXeHpcCore::checkIfDebugFlagSetWhenPrefetchApiCalledAThenStatePrefetchProgrammed(HardwareInfo *hwInfo) { - using STATE_PREFETCH = typename XeHpcCoreFamily::STATE_PREFETCH; - DebugManagerStateRestore restore; - auto pCommandList = std::make_unique>>(); - auto result = pCommandList->initialize(device, NEO::EngineGroupType::compute, 0u); - ASSERT_EQ(ZE_RESULT_SUCCESS, result); - - constexpr size_t size = MemoryConstants::cacheLineSize * 2; - constexpr size_t alignment = MemoryConstants::pageSize64k; - constexpr size_t offset = MemoryConstants::cacheLineSize; - constexpr uint32_t mocsIndexForL3 = (2 << 1); - void *ptr = nullptr; - - ze_device_mem_alloc_desc_t deviceDesc = {}; - context->allocDeviceMem(device->toHandle(), &deviceDesc, size + offset, alignment, &ptr); - EXPECT_NE(nullptr, ptr); - - auto cmdListBaseOffset = pCommandList->commandContainer.getCommandStream()->getUsed(); - - { - auto ret = pCommandList->appendMemoryPrefetch(ptrOffset(ptr, offset), size); - EXPECT_EQ(ZE_RESULT_SUCCESS, ret); - - EXPECT_EQ(cmdListBaseOffset, pCommandList->commandContainer.getCommandStream()->getUsed()); - } - - { - debugManager.flags.AddStatePrefetchCmdToMemoryPrefetchAPI.set(1); - - auto ret = pCommandList->appendMemoryPrefetch(ptrOffset(ptr, offset), size); - EXPECT_EQ(ZE_RESULT_SUCCESS, ret); - - EXPECT_EQ(cmdListBaseOffset + sizeof(STATE_PREFETCH), pCommandList->commandContainer.getCommandStream()->getUsed()); - - auto statePrefetchCmd = reinterpret_cast(ptrOffset(pCommandList->commandContainer.getCommandStream()->getCpuBase(), cmdListBaseOffset)); - - EXPECT_EQ(statePrefetchCmd->getAddress(), reinterpret_cast(ptrOffset(ptr, offset))); - EXPECT_FALSE(statePrefetchCmd->getKernelInstructionPrefetch()); - EXPECT_EQ(mocsIndexForL3, statePrefetchCmd->getMemoryObjectControlState()); - EXPECT_EQ(1u, statePrefetchCmd->getPrefetchSize()); - - EXPECT_EQ(reinterpret_cast(ptr), pCommandList->commandContainer.getResidencyContainer().back()->getGpuAddress()); - } - - context->freeMem(ptr); -} - -void CommandListStatePrefetchXeHpcCore::checkIfCommandBufferIsExhaustedWhenPrefetchApiCalledThenStatePrefetchProgrammed(HardwareInfo *hwInfo) { - using STATE_PREFETCH = typename XeHpcCoreFamily::STATE_PREFETCH; - using MI_BATCH_BUFFER_END = typename XeHpcCoreFamily::MI_BATCH_BUFFER_END; - - DebugManagerStateRestore restore; - debugManager.flags.DispatchCmdlistCmdBufferPrimary.set(0); - - auto pCommandList = std::make_unique>>(); - auto result = pCommandList->initialize(device, NEO::EngineGroupType::compute, 0u); - ASSERT_EQ(ZE_RESULT_SUCCESS, result); - - constexpr size_t size = MemoryConstants::cacheLineSize * 2; - constexpr size_t alignment = MemoryConstants::pageSize64k; - constexpr size_t offset = MemoryConstants::cacheLineSize; - constexpr uint32_t mocsIndexForL3 = (2 << 1); - void *ptr = nullptr; - - ze_device_mem_alloc_desc_t deviceDesc = {}; - context->allocDeviceMem(device->toHandle(), &deviceDesc, size + offset, alignment, &ptr); - EXPECT_NE(nullptr, ptr); - - auto firstBatchBufferAllocation = pCommandList->commandContainer.getCommandStream()->getGraphicsAllocation(); - - auto useSize = pCommandList->commandContainer.getCommandStream()->getAvailableSpace(); - useSize -= sizeof(MI_BATCH_BUFFER_END); - pCommandList->commandContainer.getCommandStream()->getSpace(useSize); - - debugManager.flags.AddStatePrefetchCmdToMemoryPrefetchAPI.set(1); - - auto ret = pCommandList->appendMemoryPrefetch(ptrOffset(ptr, offset), size); - EXPECT_EQ(ZE_RESULT_SUCCESS, ret); - auto secondBatchBufferAllocation = pCommandList->commandContainer.getCommandStream()->getGraphicsAllocation(); - - EXPECT_NE(firstBatchBufferAllocation, secondBatchBufferAllocation); - - auto statePrefetchCmd = reinterpret_cast(pCommandList->commandContainer.getCommandStream()->getCpuBase()); - - EXPECT_EQ(statePrefetchCmd->getAddress(), reinterpret_cast(ptrOffset(ptr, offset))); - EXPECT_FALSE(statePrefetchCmd->getKernelInstructionPrefetch()); - EXPECT_EQ(mocsIndexForL3, statePrefetchCmd->getMemoryObjectControlState()); - EXPECT_EQ(1u, statePrefetchCmd->getPrefetchSize()); - - NEO::ResidencyContainer::iterator it = pCommandList->commandContainer.getResidencyContainer().end(); - it--; - EXPECT_EQ(secondBatchBufferAllocation->getGpuAddress(), (*it)->getGpuAddress()); - it--; - EXPECT_EQ(reinterpret_cast(ptr), (*it)->getGpuAddress()); - - context->freeMem(ptr); -} +} \ No newline at end of file diff --git a/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.h b/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.h index 66565aa7bb..0456eb2c3e 100644 --- a/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.h +++ b/level_zero/core/test/unit_tests/xe_hpc_core/xe_hpc_core_test_l0_fixtures.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 Intel Corporation + * Copyright (C) 2022-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -19,9 +19,6 @@ struct DeviceFixtureXeHpcTests : public DeviceFixture { DebugManagerStateRestore restorer; }; -struct CommandListStatePrefetchXeHpcCore : public ModuleFixture { - void checkIfDebugFlagSetWhenPrefetchApiCalledAThenStatePrefetchProgrammed(HardwareInfo *hwInfo); - void checkIfCommandBufferIsExhaustedWhenPrefetchApiCalledThenStatePrefetchProgrammed(HardwareInfo *hwInfo); -}; +struct CommandListStatePrefetchXeHpcCore : public ModuleFixture {}; } // namespace ult } // namespace L0 diff --git a/shared/source/debug_settings/debug_variables_base.inl b/shared/source/debug_settings/debug_variables_base.inl index c097b47b01..3d2649b2bc 100644 --- a/shared/source/debug_settings/debug_variables_base.inl +++ b/shared/source/debug_settings/debug_variables_base.inl @@ -552,7 +552,6 @@ DECLARE_DEBUG_VARIABLE(int32_t, ForceBCSForInternalCopyEngine, -1, "-1: default, DECLARE_DEBUG_VARIABLE(int32_t, Force32BitDriverSupport, -1, "-1: default, 0: disable, 1: enable, Forces the driver to support 32 bit.") DECLARE_DEBUG_VARIABLE(int32_t, OverrideSystolicPipelineSelect, -1, "set SYSTOLIC MODE ENABLE in PIPELINE_SELECT cmd, -1:default, 0:disable, 1:enable") DECLARE_DEBUG_VARIABLE(int32_t, OverrideSystolicInComputeWalker, -1, "set SYSTOLIC MODE ENABLE in COMPUTE_WALKER cmd, -1:default, 0:disable, 1:enable") -DECLARE_DEBUG_VARIABLE(int32_t, AddStatePrefetchCmdToMemoryPrefetchAPI, -1, "Add STATE_PREFETCH to zeCommandListAppendMemoryPrefetch, -1:default, 0:disable, 1:enable") DECLARE_DEBUG_VARIABLE(int32_t, EnableDrmCompletionFence, -1, "Enables DRM completion fence, -1:default (disabled), 0:disable, 1:enable") DECLARE_DEBUG_VARIABLE(int32_t, UseDrmCompletionFenceForAllAllocations, -1, "Uses DRM completion fence for all allocations, -1:default (disabled), 0:disable, 1:enable") DECLARE_DEBUG_VARIABLE(int32_t, EnableChipsetUniqueUUID, -1, "Enables retrieving chipset unique UUID using telemetry, -1:default (enabled), 0:disable, 1:enable") diff --git a/shared/test/common/test_files/igdrcl.config b/shared/test/common/test_files/igdrcl.config index f3851b8fa2..20fc405ff4 100644 --- a/shared/test/common/test_files/igdrcl.config +++ b/shared/test/common/test_files/igdrcl.config @@ -419,7 +419,6 @@ ClosNumCacheWays = -1 L2ClosNumCacheWays = -1 ForceStaticL2ClosReservation = 0 EngineUsageHint = -1 -AddStatePrefetchCmdToMemoryPrefetchAPI = -1 UpdateCrossThreadDataSize = 0 ForceBcsEngineIndex = -1 ResolveDependenciesViaPipeControls = -1