Remove code duplication. Parsing zebin elf for relocations and symbols
is moved to decodeSingleDeviceBinary.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
- Enabled default setting of Program & Global Symbols to be generated by
IGC when building L0 Modules with the ability to fallback to previous
behavior thru build failure checks.
- Enabled selective disable of default program or global symbol
generation thru debug variables.
Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
This commits add support for relocating
symbols with local binding and of functional type
(STB_LOCAL, STT_FUNC).
Related-To: NEO-7299
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
- Enabled default setting of Program & Global Symbols to be generated by
IGC when building L0 Modules with the ability to fallback to previous
behavior thru build failure checks.
- Enabled selective disable of default program or global symbol
generation thru debug variables.
Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
With compiler LSC WAs this gives better performance.
If debugger is active, policy will not be changed ie.
will be WBP.
Related-To: NEO-7003
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
- notify module allocation for (sub)device used to create module,
makeResident called within (sub)device contexts
- access ISA with vmHandle specific to device index
Related-To: NEO-5784
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This change:
- removes redundant copying of std::vector
- removes unneeded includes from the header file
and introduces usage of forward declaration
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
With compiler LSC WAs this gives better performance.
If debugger is active, policy will not be changed ie.
will be WBP.
Related-To: NEO-7003
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
We have to always generate module create/destroy events to give
debugger a chance to insert bp, read/write debuggee memory etc
even there is no debug data was generated. In this case ELF will not be
reported to debugger, just ISA GpuVA
Related-To: NEO-6723
Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
- Check that the Image Format is valid for the image
argument to a SPIRv module. If the Image is invalid
return ZE_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT.
Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
- 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>
- 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>
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>
- 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>
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>
- 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>
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>
feat(zebin): Use addend from RELA sections when performing relocations.
Resolves: NEO-6898
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
- 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>
- use MemoryTransferHelper::transferMemoryToAllocation function
to copy ISA to allocation
Related-To: NEO-6862
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
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>
- 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>