mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-30 01:35:20 +08:00
refactor(sysman): Refine Sysman Engine Module
Related-To: NEO-14756 Signed-off-by: Pratik Bari <pratik.bari@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
dfc97c016e
commit
3f241b9fc5
@@ -24,31 +24,33 @@ EngineHandleContext::~EngineHandleContext() {
|
||||
releaseEngines();
|
||||
}
|
||||
|
||||
void EngineHandleContext::createHandle(zes_engine_group_t engineType, uint32_t engineInstance, uint32_t tileId, ze_bool_t onSubdevice) {
|
||||
std::unique_ptr<Engine> pEngine = std::make_unique<EngineImp>(pOsSysman, engineType, engineInstance, tileId, onSubdevice);
|
||||
void EngineHandleContext::createHandle(MapOfEngineInfo &mapEngineInfo, zes_engine_group_t engineType, uint32_t engineInstance, uint32_t tileId, ze_bool_t onSubdevice) {
|
||||
std::unique_ptr<Engine> pEngine = std::make_unique<EngineImp>(pOsSysman, mapEngineInfo, engineType, engineInstance, tileId, onSubdevice);
|
||||
if (pEngine->initSuccess == true) {
|
||||
handleList.push_back(std::move(pEngine));
|
||||
}
|
||||
}
|
||||
|
||||
void EngineHandleContext::init(uint32_t subDeviceCount) {
|
||||
std::set<std::pair<zes_engine_group_t, EngineInstanceSubDeviceId>> engineGroupInstance = {}; // set contains pair of engine group and struct containing engine instance and gtId
|
||||
deviceEngineInitStatus = OsEngine::getNumEngineTypeAndInstances(engineGroupInstance, pOsSysman);
|
||||
|
||||
MapOfEngineInfo mapEngineInfo = {};
|
||||
deviceEngineInitStatus = OsEngine::getNumEngineTypeAndInstances(mapEngineInfo, pOsSysman);
|
||||
|
||||
if (deviceEngineInitStatus != ZE_RESULT_SUCCESS) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto itr = engineGroupInstance.begin(); itr != engineGroupInstance.end(); ++itr) {
|
||||
for (auto &engineInfo : mapEngineInfo) {
|
||||
const auto isSubDevice = subDeviceCount > 0;
|
||||
createHandle(itr->first, itr->second.first, itr->second.second, isSubDevice);
|
||||
auto engineGroup = engineInfo.first;
|
||||
auto setEngineInstanceAndTileId = engineInfo.second;
|
||||
for (auto &engineInstanceAndTileId : setEngineInstanceAndTileId) {
|
||||
createHandle(mapEngineInfo, engineGroup, engineInstanceAndTileId.first, engineInstanceAndTileId.second, isSubDevice);
|
||||
}
|
||||
}
|
||||
|
||||
OsEngine::initGroupEngineHandleGroupFd(pOsSysman);
|
||||
}
|
||||
|
||||
void EngineHandleContext::releaseEngines() {
|
||||
OsEngine::closeFdsForGroupEngineHandles(pOsSysman);
|
||||
handleList.clear();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user