The `initDriver` function had an issue where a new `result` variable was defined
in a lower scope, causing the initialization result to be discarded. This commit
removes the redundant variable declaration, ensuring that the `result` variable
initialized in the upper scope is correctly set by the
`Driver::get()->initialize` method and properly reflects the driver
initialization status.
Related-To: NEO-13686
Signed-off-by: Jack Myers <jack.myers@intel.com>
- Enabled support for zeInitDrivers which combines init and driver get
support.
- Moved driverHandleGet to be part of Driver class to allow for unit
testing of the functionality.
- Updated GTPIN init conditions such that init only occurs when pCount >
0 and the driver handle pointer is not null. This ensures that the
gtPin init does not trigger during the loader init calling
zeInitDrivers and only is called before the first handle is retrieved.
- Removed ze_init_flags_t flag from all driverInit functions since this
flag is unused in all functions.
Related-To: NEO-12905
Signed-off-by: Neil R. Spruit <neil.r.spruit@intel.com>
Currently gtpin is intialized during zeInit call. However, it is not
correct as gtpin is calling other L0 API functions, like zeDriverGet
which should not be called until zeInit function finishes.
With this commit gtpin initialization is performed during first
zeDriverGet function call. In case of initialization failure
ZE_RESULT_ERROR_DEPENDENCY_UNAVAILABLE will be returned every
zeDriverGet call.
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
- do not release resources derived from parent process
- zeInit() in child should initilize new driver
Related-To: NEO-11761
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Added getDefaultDeviceHierarchy call that describes default device
hierarchy for a gfx core. Refactored L0 and OCL paths to use this
value by default and override this value when user sets
ZE_FLAT_DEVICE_HIERARCHY environment variable or
ReturnSubDevicesAsApiDevices debug key.
Updated ReturnSubDevicesAsApiDevices to force COMPOSITE device hierarchy
when set to 0.
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
Add support for new GTPin loading logic in OCL path, similar to existing
in L0 - invoking exposed, dedicated API call (OpenGTPinOCL).
- Move logic to shared, including unit tests
- Check whether instrumentation is required on
context creation and if yes,
make a call to OpenGTPinOCL function.
Handle potential errors gracefully without exiting.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Add support for new GTPin loading logic in OCL path, similar to existing
in L0 - invoking exposed, dedicated API call (OpenGTPinOCL).
- Move logic to shared, including unit tests
- Check whether instrumentation is required on
clGetPlatformIDs API call, and if yes,
make a call to OpenGTPinOCL function.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Related-To: LOCI-4615
- Added Support for users to set ZE_FLAT_DEVICE_HIERARCHY to either FLAT
or COMPOSITE to change how devices are returned in zeDeviceGet and
clGetDeviceIDs.
- COMPOSITE is default behavior that exists today.
- FLAT returns all sub devices which have no sub devices and all root
devices that have no sub devices in zeDeviceGet ie with all devices
flattened out in order.
- Added zeDeviceGetRootDevice for one to retrieve the Root Device for
any SubDevice.
Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
This change allows to set DebuggingMode via
ZET_ENABLE_PROGRAM_DEBUGGING env var
0: Disabled
1: Online
2: Offline
Related-To: NEO-7630
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
This patch adds FP64 emulation support for ATS-M.
Introducing new environment variable - NEO_FP64_EMULATION - which provides
an option to allow the opt-in emulation of FP64.
When emulation is enabled, we pass -cl-fp64-gen-emu (ocl) /
-ze-fp64-gen-emu (L0) as an internal option to IGC.
Related-To: NEO-7611
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
- both drivers: OpenCL and LevelZero cannot be debugged within single
process
Related-To: NEO-7025
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Rename Metric Context and move OA specific functions
and members from Metric Context to OA specific class(MetricSource).
This refactoring is done so that additional Metric Source
like Stall Sampling could be Seamlessly implemented.
Related-To: LOCI-2753
Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
Dates corrected in copyright headers to reflect original publication date
(2018 for OpenCL, 2020 for Level Zero).
Signed-off-by: lgotszal <lukasz.gotszald@intel.com>
- Return ZE_RESULT_ERROR_DEPENDENCY_UNAVAILABLE given the Compiler
cannot be loaded.
- Print dlopen and LoadLibrary error strings given Debug Print Messages
are enabled.
Related-To: LOCI-1313
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
- Changed Global Driver to be a void * to avoid auto add of Global
Driver Destructor to run before destruction of other L0 data structures
that might be enqueued to destory in static object destructors.
- Added register of library unload driverdestructor to cleanup
driver/device as the last destructor run.
Change-Id: I8ba6c5c27424b942a86a2613edd52fc682ab1c64
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>