Add debug flag to override bank index in local memory bank selector
Change-Id: Ie85129fc7cbdeb9cfa88b401430f983c096a868f Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
parent
87596d2387
commit
dadbd5a09f
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include "shared/source/helpers/basic_math.h"
|
#include "shared/source/helpers/basic_math.h"
|
||||||
#include "shared/source/memory_manager/local_memory_usage.h"
|
#include "shared/source/memory_manager/local_memory_usage.h"
|
||||||
|
#include "shared/test/unit_test/helpers/debug_manager_state_restore.h"
|
||||||
|
|
||||||
#include "third_party/gtest/gtest/gtest.h"
|
#include "third_party/gtest/gtest/gtest.h"
|
||||||
|
|
||||||
|
@ -56,6 +57,18 @@ TEST(localMemoryUsageTest, givenLocalMemoryUsageBankSelectorWhenMemoryIsReleased
|
||||||
EXPECT_EQ(allocationSize, selector.getOccupiedMemorySizeForBank(bankIndex));
|
EXPECT_EQ(allocationSize, selector.getOccupiedMemorySizeForBank(bankIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(localMemoryUsageTest, givenOverrideLeastOccupiedBankDebugFlagWhenGetLeastOccupiedBankIsCalledThenForcedBankIndexIsReturned) {
|
||||||
|
DebugManagerStateRestore dbgRestore;
|
||||||
|
MockLocalMemoryUsageBankSelector selector(1u);
|
||||||
|
auto bankIndex = selector.getLeastOccupiedBank();
|
||||||
|
EXPECT_EQ(0u, bankIndex);
|
||||||
|
|
||||||
|
uint32_t forcedBankIndex = 64u;
|
||||||
|
DebugManager.flags.OverrideLeastOccupiedBank.set(static_cast<int32_t>(forcedBankIndex));
|
||||||
|
bankIndex = selector.getLeastOccupiedBank();
|
||||||
|
EXPECT_EQ(forcedBankIndex, bankIndex);
|
||||||
|
}
|
||||||
|
|
||||||
TEST(localMemoryUsageTest, givenLocalMemoryUsageBankSelectorWhenMemoryAllocatedSeveralTimesItIsStoredOnDifferentBanks) {
|
TEST(localMemoryUsageTest, givenLocalMemoryUsageBankSelectorWhenMemoryAllocatedSeveralTimesItIsStoredOnDifferentBanks) {
|
||||||
MockLocalMemoryUsageBankSelector selector(5u);
|
MockLocalMemoryUsageBankSelector selector(5u);
|
||||||
|
|
||||||
|
|
|
@ -162,5 +162,6 @@ LimitBlitterMaxHeight = -1
|
||||||
FlushAfterEachBlit = -1
|
FlushAfterEachBlit = -1
|
||||||
UseCommandBufferHeaderSizeForWddmQueueSubmission = 1
|
UseCommandBufferHeaderSizeForWddmQueueSubmission = 1
|
||||||
OverridePreemptionSurfaceSizeInMb = -1
|
OverridePreemptionSurfaceSizeInMb = -1
|
||||||
|
OverrideLeastOccupiedBank = -1
|
||||||
UseAsyncDrmExec = -1
|
UseAsyncDrmExec = -1
|
||||||
EnableMultiStorageResources = -1
|
EnableMultiStorageResources = -1
|
|
@ -64,6 +64,7 @@ DECLARE_DEBUG_VARIABLE(int32_t, LimitBlitterMaxWidth, -1, "-1: default, >=0: Max
|
||||||
DECLARE_DEBUG_VARIABLE(int32_t, LimitBlitterMaxHeight, -1, "-1: default, >=0: Max height")
|
DECLARE_DEBUG_VARIABLE(int32_t, LimitBlitterMaxHeight, -1, "-1: default, >=0: Max height")
|
||||||
DECLARE_DEBUG_VARIABLE(int32_t, FlushAfterEachBlit, -1, "-1: default, 0: disable, 1: enable")
|
DECLARE_DEBUG_VARIABLE(int32_t, FlushAfterEachBlit, -1, "-1: default, 0: disable, 1: enable")
|
||||||
DECLARE_DEBUG_VARIABLE(int32_t, OverridePreemptionSurfaceSizeInMb, -1, "-1: default, >=0 Override preemption surface size with value")
|
DECLARE_DEBUG_VARIABLE(int32_t, OverridePreemptionSurfaceSizeInMb, -1, "-1: default, >=0 Override preemption surface size with value")
|
||||||
|
DECLARE_DEBUG_VARIABLE(int32_t, OverrideLeastOccupiedBank, -1, "-1: default, >=0 Override least occupied bank with value")
|
||||||
|
|
||||||
/*LOGGING FLAGS*/
|
/*LOGGING FLAGS*/
|
||||||
DECLARE_DEBUG_VARIABLE(bool, PrintDebugSettings, false, "Dump all debug variables settings to text file. Print to stdout if value is different than default.")
|
DECLARE_DEBUG_VARIABLE(bool, PrintDebugSettings, false, "Dump all debug variables settings to text file. Print to stdout if value is different than default.")
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
#include "shared/source/memory_manager/local_memory_usage.h"
|
#include "shared/source/memory_manager/local_memory_usage.h"
|
||||||
|
|
||||||
|
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <bitset>
|
#include <bitset>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
@ -23,6 +25,10 @@ LocalMemoryUsageBankSelector::LocalMemoryUsageBankSelector(uint32_t banksCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t LocalMemoryUsageBankSelector::getLeastOccupiedBank() {
|
uint32_t LocalMemoryUsageBankSelector::getLeastOccupiedBank() {
|
||||||
|
if (DebugManager.flags.OverrideLeastOccupiedBank.get() != -1) {
|
||||||
|
return static_cast<uint32_t>(DebugManager.flags.OverrideLeastOccupiedBank.get());
|
||||||
|
}
|
||||||
|
|
||||||
auto leastOccupiedBankIterator = std::min_element(memorySizes.get(), memorySizes.get() + banksCount);
|
auto leastOccupiedBankIterator = std::min_element(memorySizes.get(), memorySizes.get() + banksCount);
|
||||||
return static_cast<uint32_t>(std::distance(memorySizes.get(), leastOccupiedBankIterator));
|
return static_cast<uint32_t>(std::distance(memorySizes.get(), leastOccupiedBankIterator));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue