mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-09 06:23:01 +08:00
Enable static partitioning by default
Related-To: NEO-5546 Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
43d5397de6
commit
eb34c42e02
@@ -14,6 +14,7 @@
|
|||||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||||
#include "shared/test/common/helpers/variable_backup.h"
|
#include "shared/test/common/helpers/variable_backup.h"
|
||||||
#include "shared/test/common/mocks/mock_graphics_allocation.h"
|
#include "shared/test/common/mocks/mock_graphics_allocation.h"
|
||||||
|
#include "shared/test/common/test_macros/test_checks_shared.h"
|
||||||
|
|
||||||
#include "opencl/source/command_queue/command_queue_hw.h"
|
#include "opencl/source/command_queue/command_queue_hw.h"
|
||||||
#include "opencl/source/event/event.h"
|
#include "opencl/source/event/event.h"
|
||||||
@@ -247,19 +248,14 @@ HWTEST_P(CommandQueueWithBlitOperationsTests, givenDeviceWithSubDevicesSupportin
|
|||||||
DebugManager.flags.CreateMultipleSubDevices.set(2);
|
DebugManager.flags.CreateMultipleSubDevices.set(2);
|
||||||
DebugManager.flags.EnableBlitterForEnqueueOperations.set(1);
|
DebugManager.flags.EnableBlitterForEnqueueOperations.set(1);
|
||||||
HardwareInfo hwInfo = *defaultHwInfo;
|
HardwareInfo hwInfo = *defaultHwInfo;
|
||||||
bool createBcsEngine = !hwInfo.capabilityTable.blitterOperationsSupported;
|
|
||||||
hwInfo.capabilityTable.blitterOperationsSupported = true;
|
hwInfo.capabilityTable.blitterOperationsSupported = true;
|
||||||
|
REQUIRE_BLITTER_OR_SKIP(&hwInfo);
|
||||||
|
|
||||||
auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&hwInfo));
|
auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&hwInfo));
|
||||||
EXPECT_EQ(2u, device->getNumAvailableDevices());
|
EXPECT_EQ(2u, device->getNumAvailableDevices());
|
||||||
std::unique_ptr<OsContext> bcsOsContext;
|
std::unique_ptr<OsContext> bcsOsContext;
|
||||||
|
|
||||||
auto subDevice = device->getDeviceById(0);
|
auto subDevice = device->getDeviceById(0);
|
||||||
if (createBcsEngine) {
|
|
||||||
auto &engine = subDevice->getEngine(getChosenEngineType(subDevice->getHardwareInfo()), true, false);
|
|
||||||
bcsOsContext.reset(OsContext::create(nullptr, 1, 0, EngineTypeUsage{aub_stream::ENGINE_BCS, EngineUsage::Regular}, PreemptionMode::Disabled, false));
|
|
||||||
engine.osContext = bcsOsContext.get();
|
|
||||||
engine.commandStreamReceiver->setupContext(*bcsOsContext);
|
|
||||||
}
|
|
||||||
auto bcsEngine = subDevice->getEngine(aub_stream::EngineType::ENGINE_BCS, false, false);
|
auto bcsEngine = subDevice->getEngine(aub_stream::EngineType::ENGINE_BCS, false, false);
|
||||||
|
|
||||||
MockCommandQueue cmdQ(nullptr, device.get(), 0);
|
MockCommandQueue cmdQ(nullptr, device.get(), 0);
|
||||||
|
|||||||
@@ -1183,8 +1183,10 @@ HWTEST_F(CommandStreamReceiverTest, givenDebugFlagWhenCreatingCsrThenSetEnableSt
|
|||||||
{
|
{
|
||||||
UltDeviceFactory deviceFactory{1, 2};
|
UltDeviceFactory deviceFactory{1, 2};
|
||||||
MockDevice &device = *deviceFactory.rootDevices[0];
|
MockDevice &device = *deviceFactory.rootDevices[0];
|
||||||
EXPECT_FALSE(device.getGpgpuCommandStreamReceiver().isStaticWorkPartitioningEnabled());
|
EXPECT_TRUE(device.getGpgpuCommandStreamReceiver().isStaticWorkPartitioningEnabled());
|
||||||
EXPECT_EQ(0u, device.getGpgpuCommandStreamReceiver().getWorkPartitionAllocationGpuAddress());
|
EXPECT_NE(0u, device.getGpgpuCommandStreamReceiver().getWorkPartitionAllocationGpuAddress());
|
||||||
|
const auto gpuVa = device.getGpgpuCommandStreamReceiver().getWorkPartitionAllocation()->getGpuAddress();
|
||||||
|
EXPECT_EQ(gpuVa, device.getGpgpuCommandStreamReceiver().getWorkPartitionAllocationGpuAddress());
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
DebugManager.flags.EnableStaticPartitioning.set(0);
|
DebugManager.flags.EnableStaticPartitioning.set(0);
|
||||||
|
|||||||
@@ -335,9 +335,12 @@ HWTEST_F(DeviceTest, givenDebugFlagWhenCreatingRootDeviceWithSubDevicesThenWorkP
|
|||||||
DebugManagerStateRestore restore{};
|
DebugManagerStateRestore restore{};
|
||||||
{
|
{
|
||||||
UltDeviceFactory deviceFactory{1, 2};
|
UltDeviceFactory deviceFactory{1, 2};
|
||||||
EXPECT_EQ(nullptr, deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_NE(nullptr, deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
EXPECT_EQ(nullptr, deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_EQ(nullptr, deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
EXPECT_EQ(nullptr, deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_EQ(nullptr, deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
|
EXPECT_TRUE(deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
|
EXPECT_FALSE(deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
|
EXPECT_FALSE(deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
DebugManager.flags.EnableStaticPartitioning.set(0);
|
DebugManager.flags.EnableStaticPartitioning.set(0);
|
||||||
@@ -345,6 +348,9 @@ HWTEST_F(DeviceTest, givenDebugFlagWhenCreatingRootDeviceWithSubDevicesThenWorkP
|
|||||||
EXPECT_EQ(nullptr, deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_EQ(nullptr, deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
EXPECT_EQ(nullptr, deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_EQ(nullptr, deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
EXPECT_EQ(nullptr, deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_EQ(nullptr, deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
|
EXPECT_FALSE(deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
|
EXPECT_FALSE(deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
|
EXPECT_FALSE(deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
DebugManager.flags.EnableStaticPartitioning.set(1);
|
DebugManager.flags.EnableStaticPartitioning.set(1);
|
||||||
@@ -352,6 +358,9 @@ HWTEST_F(DeviceTest, givenDebugFlagWhenCreatingRootDeviceWithSubDevicesThenWorkP
|
|||||||
EXPECT_NE(nullptr, deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_NE(nullptr, deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
EXPECT_EQ(nullptr, deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_EQ(nullptr, deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
EXPECT_EQ(nullptr, deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
EXPECT_EQ(nullptr, deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocation());
|
||||||
|
EXPECT_TRUE(deviceFactory.rootDevices[0]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
|
EXPECT_FALSE(deviceFactory.subDevices[0]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
|
EXPECT_FALSE(deviceFactory.subDevices[1]->getDefaultEngine().commandStreamReceiver->isStaticWorkPartitioningEnabled());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvir
|
|||||||
if (ultHwConfig.forceOsAgnosticMemoryManager) {
|
if (ultHwConfig.forceOsAgnosticMemoryManager) {
|
||||||
return std::make_unique<OsAgnosticMemoryManager>(executionEnvironment);
|
return std::make_unique<OsAgnosticMemoryManager>(executionEnvironment);
|
||||||
}
|
}
|
||||||
return std::make_unique<DrmMemoryManager>(gemCloseWorkerMode::gemCloseWorkerInactive,
|
return std::make_unique<DrmMemoryManager>(gemCloseWorkerMode::gemCloseWorkerActive,
|
||||||
DebugManager.flags.EnableForcePin.get(),
|
DebugManager.flags.EnableForcePin.get(),
|
||||||
true,
|
true,
|
||||||
executionEnvironment);
|
executionEnvironment);
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ CommandStreamReceiver::CommandStreamReceiver(ExecutionEnvironment &executionEnvi
|
|||||||
}
|
}
|
||||||
internalAllocationStorage = std::make_unique<InternalAllocationStorage>(*this);
|
internalAllocationStorage = std::make_unique<InternalAllocationStorage>(*this);
|
||||||
|
|
||||||
if (DebugManager.flags.EnableStaticPartitioning.get() == 1) {
|
if (deviceBitfield.count() > 1 && DebugManager.flags.EnableStaticPartitioning.get() != 0) {
|
||||||
this->staticWorkPartitioningEnabled = true;
|
this->staticWorkPartitioningEnabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user