Commit Graph

119 Commits

Author SHA1 Message Date
Compute-Runtime-Validation
f4c8a146eb Revert "Remove Support for reading a function pointer of a kernel"
This reverts commit 299dcb8bd2.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-08-02 11:58:31 +02:00
Neil R Spruit
299dcb8bd2 Remove Support for reading a function pointer of a kernel
Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-08-01 12:28:39 +02:00
Igor Venevtsev
4cb9ad5d55 Debugger L0 Win: implement module destroy event
Related-To: NEO-6723

Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2022-07-28 15:55:40 +02:00
Igor Venevtsev
d79e799bea Debugger L0 win: implement zetAcknowledgeEvent API
Related-To: NEO-6723

Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2022-07-22 16:46:27 +02:00
Igor Venevtsev
547dd59272 Debugger L0 Win: Implement CREATE_DEBUG_DATA/MODULE_CREATE events handling
Related-To: NEO-6723

Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2022-07-20 13:20:50 +02:00
Tratnack, Geoffrey
16bd39650f Adding Implementation of zetKernelGetProfileInfo
Signed-off-by: Tratnack, Geoffrey <geoffrey.tratnack@intel.com>
2022-07-07 21:45:08 +02:00
Mateusz Hoppe
5956aea18d Limit header includes from level_zero device.h
- remove including debugger_l0.h from device.h
- add getL0Debugger() to shared NEO Device

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-07-06 16:41:17 +02:00
Szymon Morek
9a26e505a8 Pass LSC policy to IGC in build options
Related-To: NEO-7003


Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-06-21 11:51:56 +02:00
Compute-Runtime-Validation
3dd6e3f125 Revert "Enable Symbol Table Generation by Default for L0 modules"
This reverts commit c2e3d24a1d.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-06-15 10:28:47 +02:00
Compute-Runtime-Validation
930db249ff Revert "Enable Global Symbol Generation by Default for L0 modules"
This reverts commit 9996228281.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-06-15 08:45:53 +02:00
Neil R Spruit
9996228281 Enable Global Symbol Generation by Default for L0 modules
Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-06-14 22:36:08 +02:00
Neil R Spruit
e2132de30e L0 Function Pointer Handling for kernels & correct error
- Enable Support for L0 Function Pointers for Kernels and Exported
Functions
- Return ZE_RESULT_ERROR_INVALID_FUNCTION_NAME given no function of that
name is a kernel or exported function

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-06-14 18:19:01 +02:00
Neil R Spruit
c2e3d24a1d Enable Symbol Table Generation by Default for L0 modules
- Added EnableProgramSymbolTableGeneration to enable or disable default
behavior for IGC to generate the program symbol tables for L0 modules
with exported functions.
- Default value set to true to add -library-compilation to all module
builds.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-06-14 18:10:24 +02:00
Bartosz Dunajski
5510dc7daa Add adjustHwInfoForIgc support
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-06-13 14:31:53 +02:00
Mateusz Jablonski
747c2d3d83 Cleanup includes in cmdlist, cmdqueue, context, device, driver and module
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-03 02:54:41 +02:00
Mateusz Jablonski
16fd791a7c Fix L0: reuse partially linked segments when performing dynamic linking
When module is created but not fully linked we don't copy ISA to GPU
however we need to store patched segments for dynamic linking

Related-To HSD-18022114161

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-05-30 17:12:30 +02:00
Neil R Spruit
8c894fad5e Change Packed binary Returned in L0 GetNative to be the Target Device binary
- Packed Binary Returned to a customer in L0 GetNative is now
the target device's native binary.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-05-25 21:27:45 +02:00
Katarzyna Cencelewska
96e1eb7467 Move variables baseDieRev and baseDieA0Masked from xe_hpc to pvc
Pvc specific variables should be located in pvc struct

Related-To: NEO-6738
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2022-05-17 12:19:16 +02:00
Kamil Kopryk
99db73c034 Add debug flag to fail build program with stateful access
I've added debug flag FailBuildProgramWithStatefulAccess which makes
possible to fail build program/module creation
with stateful access(except builtins) on
pvc and later platforms.

Related-To: NEO-6075
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-05-17 11:01:05 +02:00
Neil R Spruit
a688c23166 All Exported Symbols between Modules in L0 Dynamic Link are accessible
- Allow for all exported symbols between L0 Dynamically linked Modules
to be accessible by adding the exported function allocations to all
linked modules unconditionally.

- This enables for L0 Function Pointers to be used to call functions
between the modules without unresolved symbols, which were a condition
to allow for exported allocations to be accessed between modules.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-05-12 17:43:52 +02:00
Mateusz Jablonski
cfad6ba273 Add check to avoid nullptr usage
Related-To: NEO-5081
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-04-27 18:13:32 +02:00
Krystian Chmielewski
e007ba499f feat(zebin): add support for build options section
This change:
* Adds support for build options section in zebinary - using
build options in binary when rebuilding.
* Appends "-cl-intel-allow-zebin" flag to build options when zebin is
used.

Resolves: NEO-6916

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-04-27 11:26:42 +02:00
Kamil Kopryk
7f08a9d993 Remove adjustHwInfoForIgc helper
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6738
2022-04-20 10:04:36 +02:00
Krystian Chmielewski
34ebcc9520 Zebin: Use addend in relocations
feat(zebin): Use addend from RELA sections when performing relocations.

Resolves: NEO-6898

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-04-19 09:19:26 +02:00
Mateusz Hoppe
13947f3e99 L0 Debugger minor fixes
- Do not make Builtin kernel allocations resident in
Module::initialize()
- Notify debugger with all segment allocations in module
- refactoring: extract logic to dedicated methods

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-04-13 14:21:10 +02:00
Mateusz Hoppe
c5e4bec253 Fix ISA allocation transfer
- use MemoryTransferHelper::transferMemoryToAllocation function
to copy ISA to allocation

Related-To: NEO-6862

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-04-07 09:57:49 +02:00
Kacper Nowak
1b6a907b13 Code refactor
This commit:
- Optimizes usage of std::unordered map
- Corrects variables naming and output messages
- Minor changes in using std::string methods
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-03-23 23:12:21 +01:00
Spruit, Neil R
c8e60ce3ba Support Circular and chained deps in L0 Dynamic Link
- Added support for Dynamic Module link to allow usage of
symbols that exist thru a circular dependency from the export->import
module & chained dependencies with importModule -> ExportModule ->
ExportModule2.

- Adds a dependency walker which collects all dependent modules whose
export surface state must be made resident for a given kernel
execution to successfully access each function resolved on different
modules.

- Expanded the Dynamic Link Black Box test to allow for testing either
simple linking and circular + chained linkage.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2022-03-11 21:15:08 +01:00
Mateusz Jablonski
3e8a6680e2 Allow undefined symbols in symbol table for OCL
Related-To: NEO-5081
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-03-09 10:32:15 +01:00
Kamil Kopryk
038d1d54fa Correct xe_hpc tests
Related-To: NEO-6631


Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-03-09 09:21:30 +01:00
Krystian Chmielewski
0ccce5a6d7 Zebin: set kernel barriers based on ext funcs
This change allows for modifying kernel's barrier count
based on called external functions metadata passed
via zeInfo section in zebin.

Added parsing external functions metadata.
Added resolving external functions call graph.
Added updating kernel barriers based on called external functions.
Added support for L0 dynamic link.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-03-04 14:21:50 +01:00
Kacper Nowak
38086029ed Zebin: Add support for querying device globals by host name
This commit adds support for querying global pointers via decorated
names passed in zeInfo.
Related-To: NEO-6734
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-03-03 13:13:22 +01:00
Mateusz Hoppe
be7c45bab0 Fix registering and unregistering module debug handle
- do not unregister module handle if not registered before

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-02-18 08:43:15 +01:00
Mateusz Hoppe
0e37f8c830 Register zebin module for all kernel allocations
Related-To: NEO-6637

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-02-15 16:58:04 +01:00
Compute-Runtime-Validation
c5c3e865f0 Revert "Fail build program on PVC with stateful accesses"
This reverts commit 9466113cef.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-02-14 18:55:14 +01:00
Kamil Kopryk
9466113cef Fail build program on PVC with stateful accesses
Related-To: NEO-6075

After this change driver will fail clBuildProgram/zeModuleCreate api calls
whenever stateful access is discovered on PVC.
This is required since in this case allocation greater than 4GB
will not work.
If user still wants to use stateful addressing mode,
-cl-opt-smaller-than-4GB-buffers-only / -ze-opt-smaller-than-4GB-buffers-only
build option should be passed as build option, but then user can not use
bufers greater than 4GB.


Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-02-14 13:44:22 +01:00
Mateusz Hoppe
e1758a2206 Register ELF for every kernel allocation for zebin format
- every isa allocation will have ELF linked
- fix for debug elf from patchtoken binary:
pass relocated ELF when exists
- simplify code

Related-To: NEO-5571

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-02-08 17:33:53 +01:00
Krystian Chmielewski
d49c5d6185 OCL: Set target device product family
In OCL product family of target device is not set
which leads to a fail on validating target device in
ZEBin path.
This change adds function that sets all
necessary fields based on provided hardware info.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-02-08 16:49:28 +01:00
Mateusz Hoppe
ad7f2f1f6e Notify kernel loads after copying fully linked ISA
- notify through make resident call

Related-To: NEO-6556

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-01-21 14:28:22 +01:00
Kacper Nowak
fc224202d6 Create debug zebin in OCL
This commit adds debug zebin creation in OCL.
- Added returning debug zebin in build/linking paths in OCL if
corresponding device binary format was detected.
- Refactored getZebinSegments() method - added common ctor for both
L0/OCL paths

Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-01-17 14:27:23 +01:00
Neil R Spruit
79bf9401ef Fallback to buildFromSpirV given < 2 static link targets
Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-01-14 02:17:52 +01:00
Igor Venevtsev
71746a2fff Register zebin binary in L0 debugger
Related-To: NEO-5571

Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2022-01-12 23:17:59 +01:00
Patryk Wrobel
3599e7aeda Add warning when device binary had to be recompiled
Introduced a new warning, which is printed to build log, when the
binary needs to be recompiled. Added a new flag -Wno-recompiled-from-ir
to allow suppression of that message. Removed a bug related to memcpy_s
from ModuleBuildLogImp::getString() and aligned it with specification.

Related-To: NEO-5819
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2021-12-23 16:13:59 +01:00
Mateusz Hoppe
17f82bbe12 Fix double ISA transfer for user kernels in L0
Related-To: NEO-6555

- ISA should only be copied once, after linking phase is complete

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-12-21 07:54:51 +01:00
Kacper Nowak
80ed37faf6 Return debug ZeBin on getDebugInfo in Level Zero
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2021-12-14 16:29:42 +01:00
Krystian Chmielewski
7e08e56d50 Zebin: allow undef symbols
Skip undefined symbols when decoding ELF symbol table
instead of treating them as error in zebin path in
order to support dynamic linking scenarios.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-12-13 15:31:56 +01:00
Compute-Runtime-Validation
b7cee61bde Revert "Fail build program in shared system USM + stateful access case"
This reverts commit 0ad8afc0b3.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-12-07 01:00:59 +01:00
Kamil Kopryk
0ad8afc0b3 Fail build program in shared system USM + stateful access case
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6075

After this change driver will fail clBuildProgram/zeModuleCreate api calls
whenever stateful access is discovered and device has shared system usm caps
enabled.This is required since in this case allocation greater than 4GB
will not work.
If user still wants to use stateful addressing mode,
-cl-opt-smaller-than-4GB-buffers-only / -ze-opt-smaller-than-4GB-buffers-only
build option should be passed as build option, but then user can not use
buffers greater than 4GB.
2021-12-06 15:10:16 +01:00
Mateusz Hoppe
b11d7cd7b0 Add debug key for compiler internal options injection
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-11-23 15:41:11 +01:00
Krystian Chmielewski
8e57e48695 L0: Pass debug zebin to SLD
Added passing debug zebin to SLD.
Added support for .const.data.strings section in debug zebin creation.
Refactored debug zebin creation code.

Resolves: NEO-6246
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-11-18 11:38:23 +01:00