This change prevents embedding identical SPIR-V section for each
target requested in fatbinary build. Instead of duplicating SPIR-V,
a new file called 'generic_ir' is added to AR archive. It contains
SPIR-V, which was used to build fatbinary. Build fallback in runtime
has been also adjusted - if 'generic_ir' file is defined in fatbinary
and there is no matching binary, then this generic SPIR-V is used to
rebuild for the requested target.
Additionally, MockOclocArgumentHelper::loadDataFromFile() was adjusted
to ensure null-termination of returned strings.
This change also removes possible undefined behavior, which was
related to reading names of files from AR archive. Previously,
if filename was shorter than requested target name, we tried to
read more memory than allowed.
Related-To: NEO-6490
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
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>
If kernel has no stateless indirect accesses don't set the
kernelHasIndirectAccess flag.
Don't make resident or migrate if kernel has no indirect accesses.
Changed initial values in KernelAttributes.
Related-To: NEO-6597
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
- ELF type is EXEC
- Absolute GPU addresses in program headers as load addresses
- All relocations are applied (not only for debug info as before)
- Default section alignment for debug zebin is set to 4,
this fix the problem with .notes section parsing
Related-To: NEO-5571
Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
If kernel has no stateless indirect accesses don't set the
kernelHasIndirectAccess flag.
Don't make resident or migrate if kernel has no indirect accesses.
Changed initial values in KernelAttributes.
Related-To: NEO-6597
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
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>
When encoding ELF binary sort program headers by
virtual addresses incrementally.
This change is needed for compatibility with GDB.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
If a kernel has ray tracing calls, we allocate and initialize
per-device RTDispatchGlobals if needed, and hand off pointer to
the same into a running kernel via an implicit parameter.
Related-To: NEO-5384
Signed-off-by: Jim Snow <jim.m.snow@intel.com>
Added test checking population of Kernel Descriptor with default
execution environment values.
Sorting.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Creates copy of zebinary with program headers containing
addresses of segments and applies debug relocations.
Related-To: NEO-6071
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Add support for decoding required work group size and work gorup walk
order dimensions in zebin.
Related-To: NEO-6088
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Change LinkerInput::RelocationInfo::Type to be compliant with zebin
relocation types.
Add support for setting relocation type if zebin relocation
type is set.
Continue supporting R_AMD64_64 and R_AMD64_32 relocation types for
backward compatibility
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Add extraction of IntelGT note section in zebin decoder.
Add target validation based on intelGT notes in zebin decoder.
Add check in unpacking (unpackSingleDeviceBinary) for e_machine,
and validate target device accordingly.
Related-To: NEO-5658
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@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>