Related-To: NEO-7003
Add L1CachePolicyHelper struct.
This struct is resposible for L1 cache policy
in build option, Surface State and stateless
caching. Currently default option for all
platforms is WBP (write by-pass)
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
Mock ProgramWithKernelDebugging ULTs.
This change is neccessary to ensure independence from binary format
after incoming switching to zebinary format.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Related-To: NEO-6646
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>
Instead of using data loaded from the compiled binary, ULTs testing elf
binary data processing will use mock elf created for this purpose.
This will ensure mentioned ULTs independence from binary format in the
context of incoming zebin switch.
Related-To: NEO-6646
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This change introduces detection of GPU hangs in flushBcsTask()
function. The new code has been covered with ULTs.
Related-To: NEO-6681
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
Define single .clang-tidy configuration with all used checks and use
NOLINT to selectively silence tool. That way cleanup should be easier.
third_part/ has its own configuration that disables clang-tidy for this
folder.
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@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>
This commit prevents a yaml parsing error in case a data type is passed
after empty vetor type data entry with the same indendation. In this
case, a parsing error will be returned.
- Corrected .ze_info section in valid empty program (zebin mock)
- Minor ults refactor in order to use mock zebin program with valid
.ze_info
Related-To: NEO-6735
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
feat(zebin): Use addend from RELA sections when performing relocations.
Resolves: NEO-6898
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
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>
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>
This change introduces detection of GPU hangs in
clFinish function as well as unit tests to cover
the new code.
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
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>
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>
In zebin type POINTER and address of strings
are written into print buffer.
This change allows the type to be POINTER=7,
before only STRING=5 type was accepted.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
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>
- 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>
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>