mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-12 17:33:00 +08:00
performance(ocl): add bcsEngineCount to cmdq
Related-To: NEO-8155 Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
fb211a921d
commit
ee767822b8
@@ -10,6 +10,7 @@
|
||||
|
||||
#include "opencl/source/context/context.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_cl_device.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_command_queue.h"
|
||||
|
||||
#include "cl_api_tests.h"
|
||||
|
||||
@@ -19,7 +20,7 @@ using ClCreateCommandQueueTest = ApiTests;
|
||||
|
||||
namespace ULT {
|
||||
|
||||
TEST_F(ClCreateCommandQueueTest, GivenCorrectParametersWhenCreatingCommandQueueThenCommandQueueIsCreatedAndSuccessIsReturned) {
|
||||
TEST_F(ClCreateCommandQueueTest, givenCorrectParametersWhenCreatingCommandQueueThenCommandQueueIsCreatedAndSuccessIsReturned) {
|
||||
cl_command_queue cmdQ = nullptr;
|
||||
cl_queue_properties properties = 0;
|
||||
|
||||
@@ -32,24 +33,24 @@ TEST_F(ClCreateCommandQueueTest, GivenCorrectParametersWhenCreatingCommandQueueT
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
||||
TEST_F(ClCreateCommandQueueTest, GivenNullContextWhenCreatingCommandQueueThenInvalidContextErrorIsReturned) {
|
||||
TEST_F(ClCreateCommandQueueTest, givenNullContextWhenCreatingCommandQueueThenInvalidContextErrorIsReturned) {
|
||||
clCreateCommandQueue(nullptr, testedClDevice, 0, &retVal);
|
||||
EXPECT_EQ(CL_INVALID_CONTEXT, retVal);
|
||||
}
|
||||
|
||||
TEST_F(ClCreateCommandQueueTest, GivenNullDeviceWhenCreatingCommandQueueThenInvalidDeviceErrorIsReturned) {
|
||||
TEST_F(ClCreateCommandQueueTest, givenNullDeviceWhenCreatingCommandQueueThenInvalidDeviceErrorIsReturned) {
|
||||
clCreateCommandQueue(pContext, nullptr, 0, &retVal);
|
||||
EXPECT_EQ(CL_INVALID_DEVICE, retVal);
|
||||
}
|
||||
|
||||
TEST_F(ClCreateCommandQueueTest, GivenDeviceNotAssociatedWithContextWhenCreatingCommandQueueThenInvalidDeviceErrorIsReturned) {
|
||||
TEST_F(ClCreateCommandQueueTest, givenDeviceNotAssociatedWithContextWhenCreatingCommandQueueThenInvalidDeviceErrorIsReturned) {
|
||||
UltClDeviceFactory deviceFactory{1, 0};
|
||||
EXPECT_FALSE(pContext->isDeviceAssociated(*deviceFactory.rootDevices[0]));
|
||||
clCreateCommandQueue(pContext, deviceFactory.rootDevices[0], 0, &retVal);
|
||||
EXPECT_EQ(CL_INVALID_DEVICE, retVal);
|
||||
}
|
||||
|
||||
TEST_F(ClCreateCommandQueueTest, GivenInvalidPropertiesWhenCreatingCommandQueueThenInvalidValueErrorIsReturned) {
|
||||
TEST_F(ClCreateCommandQueueTest, givenInvalidPropertiesWhenCreatingCommandQueueThenInvalidValueErrorIsReturned) {
|
||||
cl_command_queue cmdQ = nullptr;
|
||||
cl_queue_properties properties = 0xf0000;
|
||||
|
||||
@@ -59,7 +60,7 @@ TEST_F(ClCreateCommandQueueTest, GivenInvalidPropertiesWhenCreatingCommandQueueT
|
||||
ASSERT_EQ(CL_INVALID_VALUE, retVal);
|
||||
}
|
||||
|
||||
TEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedThenQueueIsSucesfullyCreated) {
|
||||
TEST_F(ClCreateCommandQueueTest, givenOoqParametersWhenQueueIsCreatedThenQueueIsSucesfullyCreated) {
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
cl_queue_properties ooq = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE;
|
||||
auto cmdq = clCreateCommandQueue(pContext, testedClDevice, ooq, &retVal);
|
||||
@@ -68,7 +69,7 @@ TEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedThenQueueIs
|
||||
retVal = clReleaseCommandQueue(cmdq);
|
||||
}
|
||||
|
||||
HWTEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedThenCommandStreamReceiverSwitchesToBatchingMode) {
|
||||
HWTEST_F(ClCreateCommandQueueTest, givenOoqParametersWhenQueueIsCreatedThenCommandStreamReceiverSwitchesToBatchingMode) {
|
||||
using BaseType = typename CommandQueue::BaseType;
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
cl_queue_properties ooq = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE;
|
||||
@@ -83,7 +84,7 @@ HWTEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedThenComma
|
||||
retVal = clReleaseCommandQueue(cmdq);
|
||||
}
|
||||
|
||||
HWTEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedAndUpdateTaskCountFromWaitEnabledThenCommandStreamReceiverDoesntSwitchToBatchingMode) {
|
||||
HWTEST_F(ClCreateCommandQueueTest, givenOoqParametersWhenQueueIsCreatedAndUpdateTaskCountFromWaitEnabledThenCommandStreamReceiverDoesntSwitchToBatchingMode) {
|
||||
DebugManagerStateRestore restorer;
|
||||
DebugManager.flags.UpdateTaskCountFromWait.set(3);
|
||||
|
||||
@@ -101,7 +102,7 @@ HWTEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedAndUpdate
|
||||
retVal = clReleaseCommandQueue(cmdq);
|
||||
}
|
||||
|
||||
HWTEST_F(ClCreateCommandQueueTest, GivenForcedDispatchModeAndOoqParametersWhenQueueIsCreatedThenCommandStreamReceiverDoesntSwitchToBatchingMode) {
|
||||
HWTEST_F(ClCreateCommandQueueTest, givenForcedDispatchModeAndOoqParametersWhenQueueIsCreatedThenCommandStreamReceiverDoesntSwitchToBatchingMode) {
|
||||
DebugManagerStateRestore restorer;
|
||||
DebugManager.flags.CsrDispatchMode.set(static_cast<int32_t>(DispatchMode::ImmediateDispatch));
|
||||
|
||||
@@ -117,7 +118,7 @@ HWTEST_F(ClCreateCommandQueueTest, GivenForcedDispatchModeAndOoqParametersWhenQu
|
||||
retVal = clReleaseCommandQueue(cmdq);
|
||||
}
|
||||
|
||||
HWTEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedThenCommandStreamReceiverSwitchesToNTo1SubmissionModel) {
|
||||
HWTEST_F(ClCreateCommandQueueTest, givenOoqParametersWhenQueueIsCreatedThenCommandStreamReceiverSwitchesToNTo1SubmissionModel) {
|
||||
using BaseType = typename CommandQueue::BaseType;
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
cl_queue_properties ooq = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE;
|
||||
@@ -132,4 +133,18 @@ HWTEST_F(ClCreateCommandQueueTest, GivenOoqParametersWhenQueueIsCreatedThenComma
|
||||
retVal = clReleaseCommandQueue(cmdq);
|
||||
}
|
||||
|
||||
HWTEST_F(ClCreateCommandQueueTest, givenGfxFamilyWhenQueueIsCreatedThenBcsEngineCountSetToValueFromGfxFamily) {
|
||||
using BaseType = typename CommandQueue::BaseType;
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
cl_queue_properties properties{};
|
||||
|
||||
auto cmdq = clCreateCommandQueue(pContext, testedClDevice, properties, &retVal);
|
||||
auto queue = castToObject<CommandQueue>(static_cast<BaseType *>(cmdq));
|
||||
auto mockQueue = static_cast<MockCommandQueue *>(queue);
|
||||
|
||||
EXPECT_EQ(FamilyType::bcsEngineCount, mockQueue->bcsEngineCount);
|
||||
|
||||
retVal = clReleaseCommandQueue(cmdq);
|
||||
}
|
||||
|
||||
} // namespace ULT
|
||||
|
||||
@@ -650,6 +650,7 @@ HWTEST_F(OoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadWithRequeste
|
||||
auto cmdQHw = static_cast<MockCommandQueueHw<FamilyType> *>(this->pCmdQ);
|
||||
cmdQHw->setStallingCommandsOnNextFlush(true);
|
||||
cmdQHw->splitBarrierRequired = true;
|
||||
cmdQHw->bcsEngineCount = bcsInfoMaskSize;
|
||||
|
||||
std::unique_ptr<OsContext> osContext1(OsContext::create(pDevice->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), pDevice->getRootDeviceIndex(), 0,
|
||||
EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_BCS1, EngineUsage::Regular},
|
||||
@@ -700,6 +701,7 @@ HWTEST_F(OoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueBarrierNonSplitC
|
||||
auto memoryManager = static_cast<MockMemoryManager *>(pDevice->getMemoryManager());
|
||||
memoryManager->returnFakeAllocation = true;
|
||||
auto cmdQHw = static_cast<MockCommandQueueHw<FamilyType> *>(this->pCmdQ);
|
||||
cmdQHw->bcsEngineCount = bcsInfoMaskSize;
|
||||
cmdQHw->setStallingCommandsOnNextFlush(true);
|
||||
cmdQHw->splitBarrierRequired = true;
|
||||
|
||||
@@ -763,6 +765,7 @@ HWTEST_F(OoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadThenDoNotEnq
|
||||
auto memoryManager = static_cast<MockMemoryManager *>(pDevice->getMemoryManager());
|
||||
memoryManager->returnFakeAllocation = true;
|
||||
auto cmdQHw = static_cast<MockCommandQueueHw<FamilyType> *>(this->pCmdQ);
|
||||
cmdQHw->bcsEngineCount = bcsInfoMaskSize;
|
||||
|
||||
std::unique_ptr<OsContext> osContext1(OsContext::create(pDevice->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), pDevice->getRootDeviceIndex(), 0,
|
||||
EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_BCS1, EngineUsage::Regular},
|
||||
@@ -816,6 +819,7 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadWithRequeste
|
||||
auto cmdQHw = static_cast<MockCommandQueueHw<FamilyType> *>(this->pCmdQ);
|
||||
cmdQHw->setStallingCommandsOnNextFlush(true);
|
||||
cmdQHw->splitBarrierRequired = true;
|
||||
cmdQHw->bcsEngineCount = bcsInfoMaskSize;
|
||||
|
||||
std::unique_ptr<OsContext> osContext1(OsContext::create(pDevice->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), pDevice->getRootDeviceIndex(), 0,
|
||||
EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_BCS1, EngineUsage::Regular},
|
||||
@@ -869,6 +873,7 @@ HWTEST_F(OoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadWithNoReques
|
||||
auto cmdQHw = static_cast<MockCommandQueueHw<FamilyType> *>(this->pCmdQ);
|
||||
cmdQHw->setStallingCommandsOnNextFlush(false);
|
||||
cmdQHw->splitBarrierRequired = true;
|
||||
cmdQHw->bcsEngineCount = bcsInfoMaskSize;
|
||||
|
||||
std::unique_ptr<OsContext> osContext1(OsContext::create(pDevice->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), pDevice->getRootDeviceIndex(), 0,
|
||||
EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_BCS1, EngineUsage::Regular},
|
||||
@@ -920,6 +925,7 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueBlockingReadThen
|
||||
auto memoryManager = static_cast<MockMemoryManager *>(pDevice->getMemoryManager());
|
||||
memoryManager->returnFakeAllocation = true;
|
||||
auto cmdQHw = static_cast<MockCommandQueueHw<FamilyType> *>(this->pCmdQ);
|
||||
cmdQHw->bcsEngineCount = bcsInfoMaskSize;
|
||||
|
||||
std::unique_ptr<OsContext> osContext1(OsContext::create(pDevice->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), pDevice->getRootDeviceIndex(), 0,
|
||||
EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_BCS1, EngineUsage::Regular},
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
namespace NEO {
|
||||
class MockCommandQueue : public CommandQueue {
|
||||
public:
|
||||
using CommandQueue::bcsEngineCount;
|
||||
using CommandQueue::bcsEngines;
|
||||
using CommandQueue::bcsInitialized;
|
||||
using CommandQueue::bcsQueueEngineType;
|
||||
@@ -253,6 +254,7 @@ class MockCommandQueueHw : public CommandQueueHw<GfxFamily> {
|
||||
using BaseClass = CommandQueueHw<GfxFamily>;
|
||||
|
||||
public:
|
||||
using BaseClass::bcsEngineCount;
|
||||
using BaseClass::bcsEngines;
|
||||
using BaseClass::bcsQueueEngineType;
|
||||
using BaseClass::bcsStates;
|
||||
|
||||
Reference in New Issue
Block a user