Reuse builtin module and init selected builtin on device init

-start async thread at device initialization which initializes selected
builtins and exits
-share module across builtins using same binary

Resolves: NEO-7644

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2023-01-30 13:41:26 +00:00
committed by Compute-Runtime-Automation
parent 2f847aa7bb
commit 2845414845
14 changed files with 162 additions and 80 deletions

View File

@@ -18,6 +18,7 @@
#include "shared/source/memory_manager/unified_memory_manager.h"
#include "shared/source/os_interface/os_library.h"
#include "level_zero/core/source/builtin/builtin_functions_lib.h"
#include "level_zero/core/source/context/context_imp.h"
#include "level_zero/core/source/device/device_imp.h"
#include "level_zero/core/source/driver/driver_imp.h"
@@ -161,6 +162,9 @@ DriverHandleImp::~DriverHandleImp() {
}
for (auto &device : this->devices) {
if (device->getBuiltinFunctionsLib()) {
device->getBuiltinFunctionsLib()->ensureInitCompletion();
}
delete device;
}