- global and const buffer may have BTI index allocated, ssh template
must be allocated with size for all stateful args
Related-To: NEO-7063
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Temporarily opt-out from additional compatibility checks
on DG2 and MTL for Blender and its derivatives AOT-compiled kernels.
This prevents a long kernel recompilation.
Additionally, same behavior can be enforced for other applications
manually via NEO debug key named DoNotUseProductConfigForValidationWa.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Related-To: NEO-9240
- stateful samplers do not require SSH slots in bindless mode
- fixes abort when sampler used in bindless mode
Related-To: NEO-7063
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Temporarily opt-out from additional compatibility checks
on DG2 for Blender AOT-compiled kernels.
This prevents a long kernel recompilation.
Additionally, same behavior can be enforced for other applications
manually via NEO debug key named DoNotUseProductConfigForValidationWa.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Related-To: NEO-9240
- Value correction: IntelGTSectionType::ProductConfig to 6, add new type
IntelGTSectionType::vISAAbiVersion = 5 - currently ignored by the
runtime
- For zebin manipulator: allow to extract PRODUCT_FAMILY from AOT
productConfig - required by IGA wrapper for binary encoding/decoding +
add tests
- Bump ZEInfo version to the latest: 1.32
Related-To: IGC-6300
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
- allow bindless kernels to execute
- bindless addressing kernels are using private heaps mode
- do not differentiate bindful and bindless surface state base addresses
Related-To: NEO-7063
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6075
Ngen binaries contain stateful information, however they are
not used in isa on Pvc. Therefore, we can just ignore them.
- when bindless adressing is set in zeinfo, kernel attributes should
reflect that.
Related-To: NEO-7063
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Add "DumpZEBin" debug flag. When this flag is enabled, Zebin will be
dumped to a .elf file (with appropiate suffix, in case such file has
been dumped before).
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Related-To: NEO-7895
Add debug key LogZEInfo for logging ZE Info from zebin elf.
ZE Info will be dumped to a file (default igdrcl.log)
Related-To: NEO-7895
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
IGC will add "invalid_kernel: uses-fp64-math" into kernel binary for fp64
unsupported platform. "uses-fp64-math" will be truncated to "uses" due to "-"
is not a valid identifier. It makes application can't get "uses-fp64-math"
through zeKernelGetSourceAttributes.
Related-To: NEO-7794
Signed-off-by: Pan Zhenjie <zhenjie.pan@intel.com>
* Moved zebin related files to zebin directory.
* Moved zebin related code to Zebin namespace.
* Separated zeInfo from zebin elf.
* Seperated zeInfo decoding from zebin decoder.
* Refactored populateKernelPayloadArgument function.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Allow for use of device binary in ocloc concat. Previously only
AR files could be concatenated.
This feature only works for zebin with AOT Product Config note.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
This commit adds support for decoding SHT_ZEBIN_GTPIN_INFO type
sections. For each section, passed data will be stored in kernel info
(for corresponding kernel).
Related-To: NEO-7689
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit adds support for parsing SHT_NOBITS zebin's ELF sections
(containing global/constant zero-initialized data).
- Correction: in CTNI path, do not add related symbol if surface has not
been allocated.
Related-To: NEO-7196
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
When validating zebin for target device. If AOT config (device
identification number) is present then use it for device validation,
and skip old checks (Core Family, Product Family).
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Provide minimalistic arg info metada when provided native binary is missing
kernels_misc_info section.
- For args passed by value and by pointer (-images/samplers), do not
specify type name - instead, return an opaque* type name with size.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
- Provide minimalistic arg info metada when provided native binary is missing
kernels_misc_info section.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Add support for kernel payload arguments describing data const and
data global buffers in zeInfo.
Argument contains:
* Offset in cross thread data where buffer's address should be written to.
To be removed later. Relocations should be used instead.
* Index in binding table where corresponding Surface State should be present.
Required for bindful access to data buffers.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Observed about 50MB reduction in overall binaries size (directory build))
when building all targets
with MSVC (Visual Studio 2022 17.3.0 preview 6)
using Debug 64 configuration.
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Previous implementation was missing crucial part.
When ray tracing global buffer argument is passed set
hasRTCalls to true.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Handle misaligned access when aplying debug relocations in zebin.
Debug relocations entries have offsets which are not of natural
alignment, and need to be specificialy handled.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Add support in zeInfo for "is_ptr" payload argument describing if field
of structure (argument passed by value) is a pointer.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Read intel_reqd_sub_group_size attribute and return it for
CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL getSubgroupInfo.
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
Pipe qualifier must be set (known) on kernel initialization in order
to properly chose kernel arg handler. A new attribute is_pipe has been
introduced; this commit adds support for it.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
Fix given scenarios in yaml parsings:
- Correct reading string containing multiple words separated by a
whitespace (space/tab) on token value retrieving
- Remove any unnecessary whitespaces from the end of a string on token
value retrieving
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
OpenCL expects args type names without additional information (type size).
- Use only the part up to the delimiter, without quotes
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
- Set initial value for ArgIndexT index in
KernelArgMiscInfoT struct
- Add check for arg index in extended metadata in order to avoid OOB
accesses
- Fix missing: populating ArgTypeTraits + refactor ULTs in order to
check it
- Add missing ULTs for Program::callPopulateZebinExtendedArgsMetadataOnce
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>