Krystian Chmielewski
01a719cf33
Allow for zebin rebuild when IR is present
...
This commits adds rebuilding zebin binary.
If zebin is built for different device and has SPIRV, then new ze binary
will be built using SPIRV.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-04-12 08:05:25 +02: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
b62675290f
Refactor source level debugger notification in OCL. [2/2]
...
Refactor source level debugger notification about debug data in OCL
(build/link path).
- Share common code
- Remove unnecessary function(s)
- Zebin-related ULTs refactor
Related-To: NEO-6644
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-02-17 21:40:05 +01:00
Kacper Nowak
306775f7f1
Refactor debugData and debugDataSize in OCL.
...
This commits moves debugData and debugDataSize to buildInfos vector (per
root device).
- debug data is now stored per device instead of per cl_program
- added creation of debug data (incl. debug zebin) and its returning in
clGetProgramInfo (CL_PROGRAM_DEBUG_INFO_INTEL).
Related-To: NEO-6463
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-01-28 14:03:21 +01:00
Katarzyna Cencelewska
11fe5f33f5
Remove unused subgroupKernelInfoArray
...
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2022-01-19 15:39:37 +01:00
Katarzyna Cencelewska
5ca6d1047c
Remove device enqueue part 9
...
- remove parentKernelInfoArray
Related-To: NEO-6559
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2022-01-19 13:54:54 +01:00
Katarzyna Cencelewska
97765cd39f
Remove device enqueue part 7
...
- mainly remove BlockKernelManager and ReflectionSurfaceHelper
Related-To: NEO-6559
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2022-01-19 10:41:57 +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
Kamil Kopryk
0a4554ab23
Simplify internal options initialization
...
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6075
2022-01-13 11:03:04 +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
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
Compute-Runtime-Validation
faea7915c2
Revert "Fail build program in shared system USM + statefull access case OCL"
...
This reverts commit 9dabc2db0c
.
Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-11-05 20:31:47 +01:00
Kamil Kopryk
9dabc2db0c
Fail build program in shared system USM + statefull access case OCL
...
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6075
2021-11-05 14:55:05 +01:00
Filip Hazubski
28b37aea72
Correct handling unique_ptr in functions
...
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-10-21 18:17:14 +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
Sebastian Luzynski
95ba83c7e1
Fix ocl program creation on multi device contexts
...
Signed-off-by: Sebastian Luzynski <sebastian.jozef.luzynski@intel.com>
Related-To: NEO-5734
2021-05-10 12:30:09 +02:00
Mateusz Jablonski
722f693e0f
Set Context in program when using builtins
...
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-04-06 17:41:19 +02:00
Mateusz Hoppe
4191dfdb43
Prepend -s option when -cmc is not used
...
Related-To: NEO-5582
- "-s filename" is added to build options
based on filename returned from debugger
- when "-cmc" is passed as first option, do not
modify user options.
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-03-01 18:17:25 +01:00
Mateusz Jablonski
077ae2726e
Correct storing KernelInfos in multi device programs
...
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-01 16:15:37 +01:00
Mateusz Jablonski
2ee1d569c5
Store KernelInfo per root device in Program
...
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-01 11:38:23 +01:00
Mateusz Jablonski
52d96af5f0
Use device from API function in clGetKernelWorkGroupInfo/SubGroupInfo
...
store execution environment reference in Kernel class
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-24 17:45:59 +01:00
Mateusz Jablonski
8fdc35bb4b
Disallow compiling/building program if it has attached Kernels
...
allow for creating kernel if the program is built for at least one device
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-23 18:15:44 +01:00
Mateusz Jablonski
33a487e2cc
Create structure for per root device members in Kernel
...
make private surface per root device
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-18 17:36:05 +01:00
Filip Hazubski
4052525091
Update DestructorCallbacks helper
...
Move common logic to the helper.
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-11-16 13:08:53 +01:00
Mateusz Jablonski
61d61e8b1c
Remove Program::pDevice
...
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-10 11:25:41 +01:00
Mateusz Jablonski
0aec0bdde4
Store program binary type per device
...
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-04 15:01:11 +01:00
Mateusz Jablonski
e39af42137
Allow sub devices to reuse build status from root device
...
create DeviceBuildInfo struct for per-device info in program
Related-To: NEO-5001
Change-Id: I4048f3dd34240a4f937cc4a05935cba4f40a1872
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-03 14:44:47 +01:00
Mateusz Jablonski
75d1ebb811
Use all devices when building program
...
remove Program::internalOptions
internal options are calculated separately in compile, link and build methods
Related-To: NEO-5001
Change-Id: I85ea2d64c72edb9b0e3f23244b59b9af20e2d357
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-02 19:37:55 +01:00
Mateusz Jablonski
430cca3f4c
Use all passed devices when linking program
...
Related-To: NEO-5001
Change-Id: I3944375023b9cb3322df83e6e042ba8be2bd762c
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-30 10:24:16 +01:00
Mateusz Jablonski
20f4786423
Use all passed devices when compiling program
...
Related-To: NEO-5001
Change-Id: I852c6e57fb7c450ee4dae2d5ff59a206397b2390
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-29 16:02:23 +01:00
Mateusz Jablonski
4be05409a3
Handle program's callbacks on API level
...
Related-To: NEO-5001
Change-Id: Ic73601f874a972c9c3fe6cc1a04edd5d7915f16e
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-29 11:28:02 +01:00
Mateusz Jablonski
62709a6ddc
Store build status per cl device in program
...
Related-To: NEO-5001
Change-Id: I7d9521cb45324d89ec11f39f8b857cf1554340eb
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-27 12:00:42 +01:00
Mateusz Jablonski
495594142c
Improve Program::create functions
...
accept multiple devices in createFromGenBinary
remove redundant arguments
rename functions for creating built in program
Related-To: NEO-5001
Change-Id: Ic894fa3014d6eadce3747a6f7530e9848ae1f948
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-26 12:34:49 +01:00
Mateusz Jablonski
a5a5c94097
Correct clCreateProgramWithBuiltInKernels
...
create program for all provided devices
move OCL specific code from shared to opencl
Related-To: NEO-5001
Change-Id: Ic352b4e907ae75426634ae4b3c7048edecaf83e7
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-22 19:26:34 +02:00
Mateusz Jablonski
8afdb2d981
Correct clCreateProgramWithBinary
...
store proper devices
validate input devices, lengths and binary
return correct binaries
Related-To: NEO-5001
Change-Id: I3822c291a4430e64afe54f1486b0014f16de3d64
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-22 08:38:24 +02:00
Mateusz Jablonski
f7dcafc295
Pass ClDeviceVector to Program's ctor
...
Related-To: NEO-5001
Change-Id: Ie0e4395fd3ed9a5df81c7075ef039092a0687b9c
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-19 18:47:11 +02:00
Mateusz Jablonski
b77f9bf8d1
Remove Program::setDevice
...
device should be passed to constructor
Related-To: NEO-5001
Change-Id: If4c64ec405bdd3beaccc7c09644e22fc98a02249
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-12 20:22:45 +02:00
Filip Hazubski
da524fa03d
Correct Intermediate Language related implementation
...
Change-Id: Ib2bdd21c255245767df787797bb5cfe05482e489
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-10-09 16:00:56 +02:00
Mateusz Jablonski
fc090f74c6
Store device binary per root device in program
...
Related-To: NEO-5001
Change-Id: I9834f6894625031c734c68ebf210e6042c470ec7
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-08 19:05:04 +02:00
Filip Hazubski
60430d79ee
Update OpenCL C features reporting to the compiler
...
Pass features also with -cl-ext option.
Change-Id: I1a1c68b655a2108be51c7d57be771591ee0b14e7
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-10-05 10:27:30 +02:00
Filip Hazubski
d1e0768cf5
Remove unused code
...
Change-Id: I342f58dc72a6ed5a9b9d9d30d5c43a109da5ff5b
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-09-21 11:42:54 +02:00
Mateusz Jablonski
1f240862ce
Move surface allocations from Program to BuildInfo
...
Related-To: NEO-5001
Change-Id: Icf011698fc166285d049b052d59c709c7419e105
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-09-16 12:01:46 +02:00
Mateusz Jablonski
b52aec07dd
Move symbols and linkerInput from Program to BuildInfo
...
these members should be kept per root device
Related-To: NEO-5001
Change-Id: Ie5e06deed234706cc41943d3c5e932c7d877127b
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-09-11 08:01:25 +02:00
Filip Hazubski
d889c599b2
Correct callback API functions
...
Add implementation to clSetProgramReleaseCallback and
clSetContextDestructorCallback functions.
Resolves: NEO-4962, NEO-5051
Change-Id: Iad6fffc663665a3cf16b96aa90065140cf8c5477
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-09-08 14:08:50 +02:00
Mateusz Jablonski
9394f5755e
Create structure for per root device build info in program
...
define build log per root device
Related-To: NEO-5001
Change-Id: Id507485e7f2bdd4e0d96948450da49a9f67dd2a8
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-08-26 13:16:30 +02:00
Mateusz Jablonski
45665ae236
Remove dummy constructor for Program
...
Related-To: NEO-5001
Change-Id: I0a99b297a6a910a8a4e8c0bfcc8da2833755e187
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-08-21 19:24:20 +02:00
Filip Hazubski
38740c7b75
Use blit when patching data segments with Linker
...
Change-Id: I79e92add07f5bd7a68d4b03cf8069ed9c2cb907f
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-07-14 17:47:14 +02:00
Lukasz Jobczyk
38f53cab8a
Add type alias for spec const values map
...
Change-Id: I77c006f3b3953b108091914fec1f7ba040c7590b
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2020-03-23 12:11:44 +01:00
Lukasz Jobczyk
ab7a846514
Pass only updated spec const values
...
Change-Id: Idc9720fb700e7ce9745872e08038b31836300a38
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2020-03-20 13:44:37 +01:00
Mateusz Jablonski
9dbeeea18f
Clang-format: restore sorting includes
...
Change-Id: I34eb993b562c77f56d8fbd51a02ee266c1f76678
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-02-24 10:22:30 +01:00