The `getNumKernels` function now returns the kernel count based on the
actual device (`rootDeviceIndex`) the program was built for, ensuring
accurate kernel enumeration in multi-device scenarios. The
`rootDeviceIndex` is determined using `getDevicesInProgram`.
Related-To: NEO-15441
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
- disable optimization with compiler internal option when env is set to
zero
Related-To: NEO-15378, GSD-10884
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
- when unpackSingleDeviceBinary is not called zebin should be dumped
if debug key is set
Related-To: NEO-14153
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Pass hwInfo to isHeaplessModeEnabled and isForceBindlessRequired functions.
Related-To: NEO-14526
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
- when kernels share single allocation, LOAD address in program headers
should point to correct virtual address including kernel offset
Related-To: NEO-7788, GSD-9836
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Don't know if kernels will be initialized in the order needed to check
for indirect accesses in stack calls.
Remove now unused functionPointerWithIndirectAccessExists and reading
this value from zebin.
Related-To: NEO-12235
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
Read indirect_stateless_count in module external functions.
If greater than 0, mark all kernels that have the has_stack_calls flag
set from this module as having indirect accesses.
Related-To: NEO-7712
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
Read indirect detection version intel compat notes from zebin.
This is to prepare for enabling indirect access optimization in AOT
built kernels.
Related-To: NEO-7712
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
when flag RebuildPrecompiledKernels set and call clCreateProgramWithBinary
skip rebuild if ir binary not available
Resolves: HSD-18035219734
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
Instead of storing AIL configurations in global table, store it
in root device environment.
This also prevents potential scenario with accessing deleted memory due
to symbol collision when application uses both OCL/L0 libraries.
- AIL is now stored in root device environment, and gets initialized
with other helpers
- Minor: corrected naming in ULTs
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Related-To: NEO-9240
Instead of storing AIL configurations in global table, store it
in root device environment.
This also prevents potential scenario with accessing deleted memory due
to symbol collision when application uses both OCL/L0 libraries.
- AIL is now stored in root device environment, and gets initialized
with other helpers
- Minor: corrected naming in ULTs
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Related-To: NEO-9240
- check releaseHelper support when selecting bindless mode, if not
disabled, prefer bindless mode in L0 API
- bindless mode can be forced with DebugVariable: UseBindlessMode
Related-To: NEO-7063
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>