mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-22 10:17:01 +08:00
Add multiEngine field to command queue with debug variable to override it.
Change-Id: I3c1e424a7ad545e166e178d1726595e6d9502ca7
This commit is contained in:
committed by
sys_ocldev
parent
fbb84476ef
commit
0e7fd2ffed
@@ -71,6 +71,10 @@ CommandQueue::CommandQueue(Context *context, Device *deviceId, const cl_queue_pr
|
|||||||
}
|
}
|
||||||
|
|
||||||
processProperties(properties);
|
processProperties(properties);
|
||||||
|
|
||||||
|
if (DebugManager.flags.ForceMultiEngineQueue.get() > -1) {
|
||||||
|
this->multiEngineQueue = DebugManager.flags.ForceMultiEngineQueue.get();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CommandQueue::~CommandQueue() {
|
CommandQueue::~CommandQueue() {
|
||||||
|
|||||||
@@ -406,6 +406,8 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
|
|||||||
return requiresCacheFlushAfterWalker;
|
return requiresCacheFlushAfterWalker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isMultiEngineQueue() { return this->multiEngineQueue; }
|
||||||
|
|
||||||
// taskCount of last task
|
// taskCount of last task
|
||||||
uint32_t taskCount = 0;
|
uint32_t taskCount = 0;
|
||||||
|
|
||||||
@@ -456,6 +458,7 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
|
|||||||
bool mapDcFlushRequired = false;
|
bool mapDcFlushRequired = false;
|
||||||
bool isSpecialCommandQueue = false;
|
bool isSpecialCommandQueue = false;
|
||||||
bool requiresCacheFlushAfterWalker = false;
|
bool requiresCacheFlushAfterWalker = false;
|
||||||
|
bool multiEngineQueue = false;
|
||||||
|
|
||||||
std::unique_ptr<TimestampPacketContainer> timestampPacketContainer;
|
std::unique_ptr<TimestampPacketContainer> timestampPacketContainer;
|
||||||
|
|
||||||
|
|||||||
@@ -122,5 +122,6 @@ DECLARE_DEBUG_VARIABLE(int32_t, NodeOrdinal, -1, "-1: default do not override, 0
|
|||||||
DECLARE_DEBUG_VARIABLE(int32_t, OverrideThreadArbitrationPolicy, -1, "-1 (dont override) or any valid config (0: Age Based, 1: Round Robin)")
|
DECLARE_DEBUG_VARIABLE(int32_t, OverrideThreadArbitrationPolicy, -1, "-1 (dont override) or any valid config (0: Age Based, 1: Round Robin)")
|
||||||
DECLARE_DEBUG_VARIABLE(int32_t, OverrideAubDeviceId, -1, "-1 dont override, any other: use this value for AUB generation device id")
|
DECLARE_DEBUG_VARIABLE(int32_t, OverrideAubDeviceId, -1, "-1 dont override, any other: use this value for AUB generation device id")
|
||||||
DECLARE_DEBUG_VARIABLE(int32_t, EnableTimestampPacket, -1, "-1: default, 0: disable, 1:enable. Write Timestamp Packet for each set of gpu walkers")
|
DECLARE_DEBUG_VARIABLE(int32_t, EnableTimestampPacket, -1, "-1: default, 0: disable, 1:enable. Write Timestamp Packet for each set of gpu walkers")
|
||||||
|
DECLARE_DEBUG_VARIABLE(int32_t, ForceMultiEngineQueue, -1, "-1 no change, 0: force false 1:force true. Forces multi engine queue flag in command queue")
|
||||||
DECLARE_DEBUG_VARIABLE(bool, UseMaxSimdSizeToDeduceMaxWorkgroupSize, false, "With this flag on, max workgroup size is deduced using SIMD32 instead of SIMD8, this causes the max wkg size to be 4 times bigger")
|
DECLARE_DEBUG_VARIABLE(bool, UseMaxSimdSizeToDeduceMaxWorkgroupSize, false, "With this flag on, max workgroup size is deduced using SIMD32 instead of SIMD8, this causes the max wkg size to be 4 times bigger")
|
||||||
DECLARE_DEBUG_VARIABLE(bool, ReturnRawGpuTimestamps, false, "Driver returns raw GPU tiemstamps instead of calculated ones.")
|
DECLARE_DEBUG_VARIABLE(bool, ReturnRawGpuTimestamps, false, "Driver returns raw GPU tiemstamps instead of calculated ones.")
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
#include "unit_tests/fixtures/memory_management_fixture.h"
|
#include "unit_tests/fixtures/memory_management_fixture.h"
|
||||||
#include "unit_tests/fixtures/buffer_fixture.h"
|
#include "unit_tests/fixtures/buffer_fixture.h"
|
||||||
#include "unit_tests/helpers/unit_test_helper.h"
|
#include "unit_tests/helpers/unit_test_helper.h"
|
||||||
|
#include "unit_tests/helpers/debug_manager_state_restore.h"
|
||||||
#include "unit_tests/libult/ult_command_stream_receiver.h"
|
#include "unit_tests/libult/ult_command_stream_receiver.h"
|
||||||
#include "unit_tests/mocks/mock_memory_manager.h"
|
#include "unit_tests/mocks/mock_memory_manager.h"
|
||||||
#include "unit_tests/mocks/mock_command_queue.h"
|
#include "unit_tests/mocks/mock_command_queue.h"
|
||||||
@@ -976,3 +977,20 @@ TEST(CommandQueueDestructorTest, whenCommandQueueIsDestroyedThenDestroysTimestam
|
|||||||
context->release();
|
context->release();
|
||||||
EXPECT_EQ(1, context->getRefInternalCount());
|
EXPECT_EQ(1, context->getRefInternalCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(CommandQueuePropertiesTests, whenDefaultCommandQueueIsCreatedThenItIsNotMultiEngineQueue) {
|
||||||
|
MockCommandQueue queue;
|
||||||
|
EXPECT_FALSE(queue.multiEngineQueue);
|
||||||
|
EXPECT_FALSE(queue.isMultiEngineQueue());
|
||||||
|
queue.multiEngineQueue = true;
|
||||||
|
EXPECT_TRUE(queue.isMultiEngineQueue());
|
||||||
|
}
|
||||||
|
TEST(CommandQueuePropertiesTests, whenDebugVariableOverridesMultiEngineVariableThenItIsSetToTrue) {
|
||||||
|
DebugManagerStateRestore restore;
|
||||||
|
DebugManager.flags.ForceMultiEngineQueue.set(1u);
|
||||||
|
MockCommandQueue queue;
|
||||||
|
EXPECT_TRUE(queue.isMultiEngineQueue());
|
||||||
|
DebugManager.flags.ForceMultiEngineQueue.set(0u);
|
||||||
|
MockCommandQueue queue2;
|
||||||
|
EXPECT_FALSE(queue2.isMultiEngineQueue());
|
||||||
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ namespace OCLRT {
|
|||||||
class MockCommandQueue : public CommandQueue {
|
class MockCommandQueue : public CommandQueue {
|
||||||
public:
|
public:
|
||||||
using CommandQueue::device;
|
using CommandQueue::device;
|
||||||
|
using CommandQueue::multiEngineQueue;
|
||||||
using CommandQueue::obtainNewTimestampPacketNodes;
|
using CommandQueue::obtainNewTimestampPacketNodes;
|
||||||
using CommandQueue::requiresCacheFlushAfterWalker;
|
using CommandQueue::requiresCacheFlushAfterWalker;
|
||||||
using CommandQueue::throttle;
|
using CommandQueue::throttle;
|
||||||
|
|||||||
@@ -108,3 +108,4 @@ EnableCacheFlushAfterWalker = 0
|
|||||||
EnableHostPtrTracking = 1
|
EnableHostPtrTracking = 1
|
||||||
DisableDcFlushInEpilogue = 0
|
DisableDcFlushInEpilogue = 0
|
||||||
EnableCacheFlushAfterWalkerForAllQueues = 0
|
EnableCacheFlushAfterWalkerForAllQueues = 0
|
||||||
|
ForceMultiEngineQueue = -1
|
||||||
|
|||||||
Reference in New Issue
Block a user