2020-04-02 16:37:59 +08:00
|
|
|
/*
|
2025-01-13 20:18:55 +08:00
|
|
|
* Copyright (C) 2020-2025 Intel Corporation
|
2020-04-02 16:37:59 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
class ExecutionEnvironment;
|
|
|
|
class MockDevice;
|
|
|
|
class SubDevice;
|
|
|
|
|
|
|
|
struct UltDeviceFactory {
|
|
|
|
UltDeviceFactory(uint32_t rootDevicesCount, uint32_t subDevicesCount);
|
|
|
|
UltDeviceFactory(uint32_t rootDevicesCount, uint32_t subDevicesCount, ExecutionEnvironment &executionEnvironment);
|
|
|
|
~UltDeviceFactory();
|
|
|
|
|
2025-01-13 20:18:55 +08:00
|
|
|
static bool prepareDeviceEnvironments(ExecutionEnvironment &executionEnvironment, uint32_t rootDevicesCount);
|
2021-01-13 05:39:04 +08:00
|
|
|
static bool initializeMemoryManager(ExecutionEnvironment &executionEnvironment);
|
2020-11-20 19:04:46 +08:00
|
|
|
|
2020-04-02 16:37:59 +08:00
|
|
|
std::vector<MockDevice *> rootDevices;
|
|
|
|
std::vector<SubDevice *> subDevices;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace NEO
|