Commit Graph

80 Commits

Author SHA1 Message Date
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
Mateusz Jablonski
75a5aed81d Refactor patching implicit args relocation
Related-To: NEO-5081
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-11-15 17:09:36 +01:00
Krystian Chmielewski
d29148a73a Populate linkerInput before allocating globals
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-11-09 12:20:13 +01:00
Krystian Chmielewski
06eaef0352 Zebin: Use strings section for printf
Resolves: NEO-6143

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-11-07 19:10:47 +01:00
Maciej Plewka
38eab0e70f Return correct status when module is not fully linked
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2021-10-13 16:18:42 +02:00
Spruit, Neil R
12ab2961b1 L0 support for SPIRv static module linking
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2021-10-05 07:09:53 +02:00
Zbigniew Zdanowicz
25c71a6c13 Move kernel info to shared directory
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2021-09-29 23:49:49 +02:00
Compute-Runtime-Validation
e7a7a61b4e Revert "L0 support for SPIRv static module linking"
This reverts commit 479035c839.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-09-24 05:47:50 +02:00
Spruit, Neil R
479035c839 L0 support for SPIRv static module linking
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2021-09-22 23:38:50 +02:00
Mateusz Jablonski
0d1c8be447 Handle implicit arg relocation in L0 module
Related-To: NEO-5081
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-09-14 08:57:10 +02:00
Mateusz Jablonski
30f411de44 Make allocation writable for TBX and AUB when patching ISA
Related-To: NEO-5081
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-09-08 10:51:41 +02:00
Spruit, Neil R
3389c452c7 Added Link Log for L0 Dynamic Module Linking
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2021-08-24 07:19:23 +02:00
Spruit, Neil R
d119494854 L0 Support for Dynamic Module Linking for undefined symbols
- Support for L0 apps to handle undefined symbols reported by IGC
- Removed duplication of symbol in exported symbol list and relocation
for properly resolving the symbol during dynamic link
- Add export module's exported function surface state to the import
module's residency container during dynamic linkage to allow import
kernels to execute exported functions.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2021-08-13 19:26:41 +02:00
Compute-Runtime-Validation
5d49dedf00 Revert "L0 Support for Dynamic Module Linking for undefined symbols"
This reverts commit e602f4829d.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-08-13 10:33:13 +02:00
Spruit, Neil R
e602f4829d L0 Support for Dynamic Module Linking for undefined symbols
- Support for L0 apps to handle undefined symbols reported by IGC
- Removed duplication of symbol in exported symbol list and relocation
for properly resolving the symbol during dynamic link
- Add export module's exported function surface state to the import
module's residency container during dynamic linkage to allow import
kernels to execute exported functions.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2021-08-12 21:30:13 +02:00
Jaroslaw Chodor
7c6c45f5b5 Add option to allocate private mem per dispatch
Signed-off-by: Jaroslaw Chodor <jaroslaw.chodor@intel.com>
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-07-27 13:34:12 +02:00
Young Jin Yoon
4ba64d2530 Add ze-opt-level support
Related-To: LOCI-2315
Signed-off-by: Young Jin Yoon <young.jin.yoon@intel.com>
2021-07-20 20:34:57 +02:00
Krystian Chmielewski
1b2cfbbb1f Align per thread data size to GRF size
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-07-15 11:53:13 +02:00
Bartosz Dunajski
7c8fcb30ed Module: Force stateless compilation if system shared allocations allowed
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-06-29 13:54:40 +02:00
lgotszal
3bd4bca911 Copyright header update
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>
2021-05-17 20:38:19 +02:00
Mateusz Hoppe
8fd65cc6bf Do not append debugKernelEnable internal option
- module compilation does not need it when L0 debugger used

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-05-11 08:20:22 +02:00
Krystian Chmielewski
ef71915c71 Remove KernelArgInfo and use KernelDescriptor's args instead
Related-To: NEO-4729
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-04-23 15:12:09 +02:00
Mateusz Hoppe
ffc310858a Add DebugVariable to control opt-disable when debugger is used
Resolves: NEO-5760

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-04-19 16:41:14 +02:00
Mateusz Hoppe
0897f997d6 Fix zeModuleGetGlobalPointer()
- return size correctly
- check if pSize and pPtr is != nullptr

Resolves: NEO-5641

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-03-18 17:29:41 +01:00
Maciej Plewka
c1cabb505a Fix Get ConstSpecSize based on correlated ConstSpecID
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2021-03-02 12:11:08 +01:00
Compute-Runtime-Validation
c0268abc26 Revert "Take spec const value sizes from compiler"
This reverts commit da3805880b.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-02-26 16:22:10 +01:00
Maciej Plewka
da3805880b Take spec const value sizes from compiler
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2021-02-25 10:42:21 +01:00
Mateusz Hoppe
6dd0f0c728 Relocate debug data
Related-To: NEO-4769

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-02-16 14:59:30 +01:00
Mateusz Hoppe
718e4149a8 Add enable-kernel-debug option when debugger is used in L0
- correctly verify debug capabilites in Module

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-02-08 17:12:02 +01:00
Mateusz Hoppe
5d2ea72db6 Handle relocations from zeBin
Related-To: NEO-5323

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-01-21 13:16:38 +01:00
Jaime Arteaga
d7ea713c5f Revert "Initialize kernel immutable data when kernel is created"
This reverts commit a6ac10088c.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2021-01-04 11:11:39 +01:00
Jaime Arteaga
a6ac10088c Initialize kernel immutable data when kernel is created
This instead of when the associated module is created, to avoid
allocating memory for kernels that are never created nor used.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2020-12-29 19:29:10 +01:00
macabral
720ba46548 Register kernel Elf for debugging purpose
Signed-off-by: macabral <matias.a.cabral@intel.com>
2020-12-01 17:16:14 +01:00
Mateusz Hoppe
8cac8d4b51 Fix possible device nullptr dereference
- abort will be called if device is nullptr

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2020-11-26 22:51:44 +01:00
Young Jin Yoon
3e69b2084c Add support for zeModuleGetProperties
Signed-off-by: Young Jin Yoon <young.jin.yoon@intel.com>
2020-11-21 23:14:30 +01:00
Jaime Arteaga
905d59d7e3 Allow disabling statefull optimization in L0
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2020-11-18 22:33:05 +01:00
Maciej Plewka
28de4068c9 Read bindless offset from patch token
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2020-11-18 17:04:00 +01:00
Mateusz Hoppe
0f42ef1ed7 Differentiate between users ISA and internal ISA allocation
Related-To: NEO-5240

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2020-11-16 13:16:30 +01:00
Maciej Plewka
3f7af19c8f Pass bindless options to compiler when bindless enabled
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2020-11-10 11:30:56 +01:00
Krystian Chmielewski
9f08a60a20 KernelInfo Refactor
Using kernelDescriptor.kernelMetadata.kernelName instead of
kernelInfo.name

Change-Id: I11f5721d8072a3beccb573cec4bea56cf14cf0f9
2020-10-20 13:18:09 +02:00