Commit Graph

417 Commits

Author SHA1 Message Date
Mateusz Jablonski a75fcb6de0 fix: correct adjusting hw info for IGC, cover all cases
Related-To: NEO-8203
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-09-18 13:50:32 +02:00
Fabian Zwolinski b2ba1fbecf fix: enforce zebin format by default in Ocloc for ICL/TGL/RKL/ADL
Products for which zebin has been set as default format in OCLOC:
- ICELAKE_LP
- TIGERLAKE_LP
- ROCKETLAKE
- ALDERLAKE_S
- ALDERLAKE_P
- ALDERLAKE_N

The default format does not override `--format` parameter.

Related-To: NEO-8334
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-09-08 16:16:18 +02:00
Fabian Zwolinski 10675134e1 feature: Add process safety to Windows compiler cache
Related-To: NEO-8092

Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
Co-authored-by: Diedrich, Kamil <kamil.diedrich@intel.com>
2023-09-06 15:34:15 +02:00
Fabian Zwolinski 41914be8c3 fix: enforce zebin format by default in Ocloc
Related-To: NEO-8334
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-09-06 15:22:01 +02:00
Chodor, Jaroslaw 49edbc3b60 refactor: ocloc - folding error codes to lib api header
These error codes are used as return codes from ocloc api.
As such, it's useful to have them defined in the ocloc api header.

Signed-off-by: Chodor, Jaroslaw <jaroslaw.chodor@intel.com>
2023-09-05 20:28:11 +02:00
Chodor, Jaroslaw 8a66ac7097 fix: ocloc - remove undesired logs in ocloclib
Signed-off-by: Chodor, Jaroslaw <jaroslaw.chodor@intel.com>
2023-09-05 16:47:28 +02:00
Mateusz Jablonski 91b26277a4 feature: add method to adjust hw info for igc
Related-To: NEO-8203

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-09-04 11:58:13 +02:00
Kacper Kasper abfed5a762 fix: add specialization constants to cache hash in spirv path
Related-To: NEO-4262

Signed-off-by: Kacper Kasper <kacper.k.kasper@intel.com>
2023-09-01 14:04:59 +02:00
Kacper Kasper 996c261430 fix: OclocIgcFacade->getIgcRevision() could return nullptr
* Make sure igcRevision is always initialized.
* Improve coverage.

Signed-off-by: Kacper Kasper <kacper.k.kasper@intel.com>
2023-08-31 12:57:27 +02:00
Fabian Zwolinski 1369882b3c fix: ocloc - regenerate genHash after compilation
This PR ensures that the genHash will be the same
whether the cl_cache is re-used or just created.
So it has to be regenerated after compilation
to make sure it's created with non NULL irBinary.

It also allows to cache debugDataBinary.

Minor: Rename NEO_PERSISTENT_CACHE -> NEO_CACHE_PERSISTENT in FAQ,
since this version is used in code.

Related-To: NEO-8288, NEO-8092
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-08-28 13:11:49 +02:00
Mateusz Jablonski cac91dab20 fix: Move PVC device ids to common place
Related-To: NEO-8187
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-08-25 13:09:19 +02:00
Kacper Kasper 991febcdf4 fix: extend cache hash with compiler commit sha, lib size and mtime
Related-To: NEO-4262

Signed-off-by: Kacper Kasper <kacper.k.kasper@intel.com>
2023-08-22 15:28:57 +02:00
Mateusz Jablonski 02337bbbf8 refactor: remove not needed includes from ocloc sources
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-07-28 18:56:16 +02:00
Artem Gindinson 7afedd7a63 fix: Add OCL C extensions to empty device ext string for Clang 14 compatibility
Clang 13+ requires (1) that each enabled extension be accompanied by
corresponding OCL C extension macro definitions. Fix the extension string for
empty device cases to conform to that - pass the same language feature macros
as we would for regular image support.

(1) release/14.x/clang/lib/Basic/OpenCLOptions.cpp#L142-L149

Related-To: HSD-18031230472

Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
2023-07-24 15:40:25 +02:00
Artur Harasimiuk 9524b65b51 refactor: remove unused code
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2023-07-19 12:00:40 +02:00
Maciej Plewka 3a9a835692 fix: encode options in elf file
Resolves: NEO-8035

Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2023-07-11 16:31:52 +02:00
Mateusz Hoppe eb2225e623 Revert "fix: no longer append .bin to binary name when "-output_no_suffix" ...
This reverts commit df62888efc.

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-07-05 12:21:55 +02:00
Daria Hinz a6fee8994d feature: Adding kernel sizes validation in ocloc
This commit adds a validation layer in ocloc,
which is designed to check if the data read from
the binary file does not exceed the size of the section.

Related-To: NEO-8062
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2023-06-30 10:39:31 +02:00
Filip Hazubski df62888efc fix: no longer append .bin to binary name when "-output_no_suffix" is passed
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2023-06-29 14:10:25 +02:00
Kacper Nowak 12f597bc72 fix(zebin): corrections related to IntelGT notes + bump ZEInfo version
- 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>
2023-06-22 15:41:01 +02:00
Mateusz Hoppe b600410af2 fix: ocloc - rename "-device_options" param
- ocloc param names use "_"
Related-To: NEO-8037

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-06-16 11:14:57 +02:00
Fabian Zwolinski bb16789fcd feature: Allow to pass multiple devices separated by commas in -device-options
Related-To: NEO-8037
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-06-14 17:23:35 +02:00
Fabian Zwolinski d00345d115 feature: Add ability to specify options per-device in Ocloc
Related-To: NEO-8037
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-06-06 19:33:48 +02:00
Daria Hinz 68b6cfebd2 feature: Add default ip version values to helper
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-8021
2023-06-02 12:10:21 +02:00
Kamil Kopryk 7d20449589 fix: Add release helper for dg2
Related-To: NEO-7786
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-05-16 12:04:03 +02:00
Daria Hinz 1d64b94f30 feature: Match config based on device & rev ID
This change matches the appropriate aot config
for the combination of device ID and revision ID.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7905
2023-05-10 08:22:09 +02:00
Mateusz Hoppe 252c5a99cf feature: ocloc - add new option for output binary filename
- new option "-o [filename]" allows to set output binary filename, ocloc
will not add any extension to the name
- no other files will be produced (.spv/.cpp/.dbg)
Related-To: NEO-7935

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-05-10 02:24:59 +02:00
Kamil Kopryk 171e97e71a feature: introduce release helper
Related-To: NEO-7786
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-04-27 21:38:08 +02:00
Fabian Zwolinski c441e9e971 refactor: Rename member variables to camelCase
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-04-26 16:05:07 +02:00
Diedrich, Kamil 26ca64bb28 Add process safety to cl_cache on Linux
Current flow will be to have one synchronization point
config.file. Read remains unblocking, only write(caching)
operation will be blocking (lock on config.file)

Related-To: NEO-4262

Signed-off-by: Diedrich, Kamil <kamil.diedrich@intel.com>
2023-04-25 17:35:40 +02:00
Daria Hinz a2bc1d82e4 fix: Improved reporting of incorrect device
We want to report unrecognized device only after verifying
all possible variants, including deprecated ones.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7903
2023-04-21 12:33:34 +02:00
Compute-Runtime-Validation d8e4b324ad Revert "refactor: Remove not needed ocloc message"
This reverts commit 86337dc2ee.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-04-21 06:22:03 +02:00
Daria Hinz 86337dc2ee refactor: Remove not needed ocloc message
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2023-04-20 17:04:55 +02:00
Daria Hinz a9798794b9 refactor: Add new device type to ocloc help
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7903
2023-04-20 16:59:13 +02:00
Daria Hinz 2647efc23c feat: Add support for ip version value in ocloc
Ocloc supports passing hw ip version value to -device arg in
the form of major.minor.revision.
This change adds support for directly passed value as uint32_t as well.
Support added for single and fat binary.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7903
2023-04-20 13:20:11 +02:00
Mateusz Hoppe 97a8f15fbd fix: cleanup memory leaks in ocloc
- enable memory leaks detection in ocloc tests

Related-To: NEO-7467

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-04-19 13:48:49 +02:00
Kacper Nowak e19e006370 feat(zebin): Add debug flag for logging ZE Info
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>
2023-04-14 17:14:07 +02:00
Mateusz Hoppe 5576b9e074 fix: ocloc - remove memory leaks
Related-To: NEO-7467

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-04-06 16:58:18 +02:00
Mateusz Hoppe 1498ae30bd fix: do not append .bin extension when -output filename has .out/exe
- effective only when -output_no_suffix is also passed
- this change allows to keep backwards compatibility before:
0c5264dfeb

Related-To: NEO-7474

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-04-03 10:01:28 +02:00
Filip Hazubski 3cfba5b73d refactor(cmake): check images support per platform instead of per core
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2023-03-13 16:14:39 +01:00
Mateusz Jablonski 553dd7f21f refactor: return thread per eu from compiler product helper
Related-To: NEO-7442
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-03-08 16:25:20 +01:00
Mateusz Hoppe 0c5264dfeb Ocloc - fix binary output filename with "-output_no_suffix"
- .bin extension should be added to produced binary file when
"-output_no_suffix" flag is passed

Related-To: NEO-7474

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-03-08 15:51:20 +01:00
Mateusz Jablonski 2e872c1871 fix ocloc: don't fail when help parameter is passed to ocloc compile
https://github.com/intel/compute-runtime/issues/621

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-03-06 10:08:00 +01:00
Krystian Chmielewski 58d3f892a9 refactor(zebin): move files to seperate directory
* 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>
2023-03-03 21:48:19 +01:00
Compute-Runtime-Validation 84a7438ff2 Revert "refactor(zeInfo): move zeinfo to seperate file"
This reverts commit e3ce887662.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-03-03 11:56:52 +01:00
Krystian Chmielewski e3ce887662 refactor(zeInfo): move zeinfo to seperate file
* Moved zebin related files to zebin directory.
* Separated zeInfo from zebin elf.
* Seperated zeInfo decoding from zebin decoder.
* Refactored populateKernelPayloadArgument function.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2023-03-02 12:46:56 +01:00
Krystian Chmielewski 9f7f2318bd fix(ocloc): fallback to deprecated acronyms
When revision_id argument is passed fallback to using
initHardwareInfoForDeprecatedAcronyms.
* initHardwareInfoForProductConfig returns INVALID_DEVICE if device
acronym and revision id is passed.
* initHardwareInfoForDeprecatedAcronyms sets aot config revision
to revisionId.

Resolves: NEO-7738

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2023-03-02 11:43:34 +01:00
Mateusz Jablonski bd32b21f7c refactor: add method to get hw config from CompilerProductHelper
Related-To: NEO-7622

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-03-02 08:25:50 +01:00
František Zatloukal beaff2b735 Include cstdint to fix GCC 13 build
Signed-off-by: František Zatloukal <fzatlouk@redhat.com>
2023-02-22 08:02:49 +01:00
Warchulski, Jaroslaw b485c025d0 Cleanup includes 57
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-17 11:19:59 +01:00
Warchulski, Jaroslaw 0556d543a3 Cleanup includes 56
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-16 14:42:44 +01:00
Warchulski, Jaroslaw 8c17313c8b Cleanup includes 53
Cleaned up files:
opencl/source/mem_obj/image.inl
shared/offline_compiler/source/decoder/zebin_manipulator.h
shared/source/aub_mem_dump/aub_alloc_dump.h
shared/source/compiler_interface/intermediate_representations.h
shared/source/helpers/blit_commands_helper_base.inl
shared/source/utilities/debug_file_reader.h
shared/source/utilities/software_tags.h
shared/source/xe_hpc_core/hw_cmds_pvc.h

Related-To: NEO-5548

Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-15 13:21:14 +01:00
Krystian Chmielewski 7982e26ae7 feat(ocloc concat): allow device binary
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>
2023-02-10 17:45:00 +01:00
Daria Hinz 59109a08bb Switch device ID support to product config helper
This commit switches the device ID logic from the deprecated
to the new one, so that if the user passes a hex value to the -device
parameter, ocloc will use the new implementation in the product config
helper. The change also introduces a fix for setting the values in the
correct order to configure the hwIfno correctly.

Signed-off-by: Daria Hinz daria.hinz@intel.com
Related-To: NEO-7487
2023-02-03 16:55:41 +01:00
Kamil Kopryk cab4b956eb refactor: rename compiler product helper files
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-03 09:03:24 +01:00
Daria Hinz 14f5a61993 Fatbinary optimization for -device release target
This commit is to introduce optimizations in ocloc when building
targets for release and family.
Instead of building fatbinary after all available targets in
the RTL ID table, we introduce optimizations when there is an
acronym available for the platform in the DEVICE table,
we limit to them only.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7582
2023-02-01 16:19:13 +01:00
Kamil Kopryk 7487d1450e Move CompilerProductHelper ownership to RootDeviceEnvironment and Ocloc
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-01 13:09:12 +01:00
Warchulski, Jaroslaw fe8a6d98ad Cleanup includes 45
Cleaned up files:
opencl/source/api/api.h
shared/source/command_stream/csr_deps.h
shared/source/helpers/engine_node_helper.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-26 11:12:15 +01:00
Rafal Maziejuk 67ebc5d7fe Delete redundant adjustHwInfoForIgc method
Signed-off-by: Rafal Maziejuk <rafal.maziejuk@intel.com>
2023-01-24 15:08:21 +01:00
Daria Hinz 4d359b5eef fix: Support multiple option settings in ocloc
If ocloc is given -options several times, the variable is overwritten.
This change allows the user to add additional options multiple times.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2023-01-20 12:10:21 +01:00
Warchulski, Jaroslaw 4794648978 Cleanup includes 26
Cleaned up files:
opencl/source/command_queue/csr_selection_args.h
opencl/source/event/event.h
shared/source/helpers/engine_control.h
shared/source/sku_info/definitions/sku_info.h

Related-To: NEO-5548

Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-11 09:10:45 +01:00
Mateusz Jablonski 43b790957d style: format code using clang-format 15.0.6
Related-To: NEO-7500
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-01-05 10:33:47 +01:00
Mateusz Jablonski 4647180c76 refactor: remove platform type string
this property is no longer needed as we compile kernels per product family

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-01-04 13:48:16 +01:00
Compute-Runtime-Validation 5a6d358166 Revert "refactor: remove platform type string"
This reverts commit 58b443ecf1.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-01-04 11:08:51 +01:00
Mateusz Jablonski 58b443ecf1 refactor: remove platform type string
this property is no longer needed as we compile kernels per product family

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-01-04 09:26:29 +01:00
Warchulski, Jaroslaw d793f37dd8 Cleanup includes 20
Cleaned up files:
opencl/source/cl_device/cl_device.h
opencl/source/helpers/properties_helper.h
opencl/source/program/program.h
shared/source/device_binary_format/debug_zebin.h
shared/source/device_binary_format/elf/zebin_elf.h
shared/source/program/program_info.h
shared/source/utilities/heap_allocator.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-03 14:42:08 +01:00
Warchulski, Jaroslaw 0eac749fcc Cleanup includes 19
Cleaned up files:
opencl/source/api/cl_types.h
shared/source/compiler_interface/external_functions.h
shared/source/compiler_interface/linker.h
shared/source/device_binary_format/elf/elf.h
shared/source/helpers/preamble.h
shared/source/memory_manager/definitions/storage_info.h
shared/source/memory_manager/memory_manager.h
shared/source/memory_manager/os_agnostic_memory_manager.h
shared/source/program/program_info.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-03 11:02:05 +01:00
Patryk Wrobel 59a4017cb6 Improve error handling in offline linker
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-12-21 12:10:04 +01:00
Kamil Kopryk 924eb23c90 Split hwInfoConfig and CompilerProductHelper enablers
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-12-13 13:14:37 +01:00
Mateusz Jablonski 470c6d4660 Extend compiler interface,
add mocks for Platform version 2
create wrapper to populate IGC platform depending on interface version

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-12-13 07:53:59 +01:00
Rafal Maziejuk 336c8c10d5 Add adjustHwInfoForIgc support
Signed-off-by: Rafal Maziejuk <rafal.maziejuk@intel.com>
2022-12-09 15:58:54 +01:00
Kamil Kopryk 6993ed5c52 Reduce binaries sizes 2/n
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>
2022-12-08 16:14:38 +01:00
Mateusz Jablonski 23fd280334 Unify definition of hardware ip version
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-12-06 17:22:24 +01:00
Kamil Kopryk 785b9eeece Rename CompilerHwInfoConfig -> CompilerProductHelper
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-12-05 11:25:49 +01:00
Warchulski, Jaroslaw bf6dfa6b94 Fix for '-q' option in ocloc
Related-To: NEO-6425
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-12-02 11:37:00 +01:00
Warchulski, Jaroslaw 4100e1aa72 Cleanup includes 7
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-28 17:01:48 +01:00
Kamil Diedrich 6f14e8414e Add wddm ult for Linux build [1/n]
Related-To: NEO-6066
Signed-off-by: Kamil Diedrich <kamil.diedrich@intel.com>
2022-11-25 12:01:42 +01:00
Daria Hinz 31deb4fd63 Add support for new acronyms in disasm
The "disasm" option in ocloc was not validate new acronyms.
despite handling them in "compile".
This PR is fixing the issue - ocloc disasm supports new & deprecated
acronyms.

https://github.com/intel/compute-runtime/issues/582

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7509
2022-11-23 16:53:54 +01:00
Matt Turner 40ff655e08 Fix typos
Signed-off-by: Matt Turner <mattst88@gmail.com>
2022-11-18 23:37:50 +01:00
Daria Hinz ab6e989eb3 Refactor product config helper
This commit brings order to the product config helper
code and corrects the naming

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-11-17 16:20:09 +01:00
Compute-Runtime-Validation ef9a4fffcd Revert "Fix for '-q' option in ocloc"
This reverts commit e9f0cb30e7.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-11-16 06:27:31 +01:00
Warchulski, Jaroslaw e9f0cb30e7 Fix for '-q' option in ocloc
Related-To: NEO-6425
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-14 15:04:08 +01:00
Compute-Runtime-Validation 4d2948d312 Revert "Use device ID from ProductConfigHelper"
This reverts commit 60a8bcb3d7.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-11-11 10:56:33 +01:00
Mateusz Jablonski 10c12bb3a7 Reduce creating files when running ocloc tests
Add a new listener to track created files

Related-To: NEO-7126

Co-authored-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-11-10 15:58:29 +01:00
Warchulski, Jaroslaw e4d10e5460 Cleanup includes 4
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-10 14:22:18 +01:00
Daria Hinz 60a8bcb3d7 Use device ID from ProductConfigHelper
This commit switches the device ID logic from the deprecated
to the new one, so that if the user passes a hex value to the -device
parameter, ocloc will use the new implementation in the product config
helper.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7487
2022-11-08 12:40:54 +01:00
Daria Hinz 0b3edc662e Remove unnecessary platform name translation
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-11-08 00:33:39 +01:00
Kamil Kopryk bf64769807 Remove not needed std::vector copies
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-11-07 23:25:14 +01:00
Warchulski, Jaroslaw fb25f96081 Cleanup includes 2
Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-07 10:36:50 +01:00
Compute-Runtime-Validation 83f63e0008 Revert "Ocloc - fix binary output filename with "-output_no_suffix""
This reverts commit 3ca628c388.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-11-03 21:28:39 +01:00
Mateusz Hoppe 3ca628c388 Ocloc - fix binary output filename with "-output_no_suffix"
Resolves: NEO-7474

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-11-03 18:27:02 +01:00
Warchulski, Jaroslaw f0a9533c83 Improve error reporting in ocloc
Related-To: NEO-6425
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-11-03 09:29:46 +01:00
Dunajski, Bartosz 7ff37cd5fd Ftr/WA flags cleanup
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-26 12:11:31 +02:00
Mateusz Hoppe 8980b2b817 Ocloc: Remove unneeded code from generated cpp file
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-10-25 11:21:09 +02:00
Mateusz Hoppe 9c237d99ec Ocloc - Do not add "kernel-debug-enable" when "-g" is passed
Resolves: NEO-7436

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-10-25 08:55:55 +02:00
Krystian Chmielewski 0ef6b9b64c Zebin manipulator - create dump directory fix
This commit fixes problem in zebin manipulator when dump was not
created.
* Explicitly create dump directory.
* Add slash to dump argument.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-10-24 20:44:27 +02:00
Krystian Chmielewski 4f0d19628e Ocloc asm/disasm support for zebin
This commit adds option to disassemble and assemble zebinary.

Disasm disassembles zebinary into sections. Text sections are
translated to assembly, relocations and symbols are
translated into human readable format.

Asm assembles zebinary from files generated by disasm.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-10-10 14:48:55 +02:00
Dunajski, Bartosz ad2d3d0289 Remove not used method
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-10-05 17:10:51 +02:00
Kacper Nowak 65f7ff2027 Ocloc: Add -s to options string for non-spirv input with -g option passed
Automatically add "-s" (source path) option if -g flag is present.
This applies only to non-spirv input.
- Due to conflict, do not automatically append source path when
CMC compiler is used.
- Minor code refactor: use defined compiler options instead of local
strings; wrap filename in quotes (in case of space-separated filename
string).

Related-To: NEO-7285
Signed-off-by: Kacper Nowak kacper.nowak@intel.com
2022-10-04 14:49:53 +02:00
Compute-Runtime-Validation ab8579a6c2 Revert "Ocloc: Add -s to options string for non-spirv input with -g option pa...
This reverts commit 963930925a.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-09-30 13:11:46 +02:00
Baj, Tomasz 0eab93501c Add cl_cache mechanism to ocloc
Related-To: NEO-6476

Signed-off-by: Baj, Tomasz <tomasz.baj@intel.com>
2022-09-30 12:03:02 +02:00
Kacper Nowak 963930925a Ocloc: Add -s to options string for non-spirv input with -g option passed
Automatically add "-s" (source path) option if -g flag is present.
This applies only to non-spirv input.
- Due to conflict, do not automatically append source path when
CMC compiler is used.

Related-To: NEO-7285
Signed-off-by: Kacper Nowak kacper.nowak@intel.com
2022-09-29 18:48:09 +02:00
Krystian Chmielewski af57d2bd38 refactor ocloc interface
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-09-29 13:25:58 +02:00
Krystian Chmielewski 596e9f815c 32bit zebin support
This commit adds support for 32 bit zebinary in NEO runtime and in
ocloc validate.

Resolves: NEO-7288

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-09-27 11:12:05 +02:00
Krystian Chmielewski 311b0b0020 Create input for linker during zebin decoding
Remove code duplication. Parsing zebin elf for relocations and symbols
is moved to decodeSingleDeviceBinary.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-09-22 11:12:39 +02:00
Krystian Chmielewski 09bf464327 Add option to disable zebin in ocloc
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-09-13 14:36:54 +02:00
Compute-Runtime-Validation 417746182c Revert "Ocloc: Add -s to options string for non-spirv input with -g option pa...
This reverts commit 301be3c21b.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-09-09 05:42:13 +02:00
Kacper Nowak 301be3c21b Ocloc: Add -s to options string for non-spirv input with -g option passed
Automatically add "-s" (source path) option if -g flag is present.
This applies only to non-spirv input.
Related-To: NEO-7285
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-09-08 15:19:05 +02:00
Dunajski, Bartosz 16d9000429 Add option to change GRF mode
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-09-06 13:00:17 +02:00
Wrobel, Patryk 334802c9ba Use correct format string in ocloc_validator
Signed-off-by: Wrobel, Patryk <patryk.wrobel@intel.com>
2022-09-06 12:25:19 +02:00
Warchulski, Jaroslaw 57da7ad307 Don't generate gen file by default
Related-To: NEO-6613
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2022-09-05 15:00:48 +02:00
Dominik Dabek 8cc0177f1c Change DG2 l1 cache policy to WB
With compiler LSC WAs this gives better performance.

If debugger is active, policy will not be changed ie.
will be WBP.

Related-To: NEO-7003

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2022-08-31 14:31:23 +02:00
Compute-Runtime-Validation 2621460e80 Revert "Change DG2 l1 cache policy to WB"
This reverts commit a820e73dd7.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-08-27 08:04:19 +02:00
Patryk Wrobel c0342a0ab5 Optimize binaries' size by adjusting linkage of constants in headers
When header is included for the first time in translation unit,
then preprocessor simply copy-pastes its content. If we define a
constant in a header file and this constant has internal linkage
then each and every translation unit, which includes this header
will have its own copy of this constant.

C++17 introduces inline variables, which are meant to allow creation
of variables in header files, which do not cause multiple instances.

The inline variable has a single instance when:
- constexpr is used without static (constexpr implicitly implies inline)
- inline is used without static
- inline const is used without static (const does not imply internal linkage
when used with inline)

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-08-26 22:52:04 +02:00
Dominik Dabek a820e73dd7 Change DG2 l1 cache policy to WB
With compiler LSC WAs this gives better performance.

If debugger is active, policy will not be changed ie.
will be WBP.

Related-To: NEO-7003

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2022-08-26 12:58:45 +02:00
Dunajski, Bartosz 9763d42379 Fix type redefinition
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2022-08-24 09:45:13 +02:00
Daria Hinz ccb855de32 Add ids command info to ocloc
New ocloc ids <acronym> cmd has been added in NEO-7159,
but the addition of info has been omitted.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-08-22 16:31:24 +02:00
Patryk Wrobel 44e1f1ba4b Remove redundant copying of std::vectors
Usage of initializer list in for loop to iterate over heavy types
has bad consequences. std::initialize_list is only a view and its
data is silently created as T[N]. Therefore, if someone uses
std::vector with it, it will cause deep-copying of the elements.

This change introduces usage of pointers on std::initializer_list
to perform a shallow-copy of an addresses. Furthermore, it adds
const references in few places, where copy is not needed.

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-08-16 09:27:16 +02:00
Kacper Nowak d213a8e8cd Ocloc: Enhance platforms support for disasm option
- Extend support for existing platforms [disasm option].
- Do not use deprecated core acronyms.
Related-To: NEO-7235
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-08-12 14:38:33 +02:00
Andrey Alekseenko cb18657cb8 Slightly improve "ocloc ids" output
- Add trailing newline, so the output looks nice in the terminal.
- "Uknown" -> "Unknown".

Signed-off-by: Andrey Alekseenko <al42and@gmail.com>
2022-07-28 11:48:58 +02:00
Daria Hinz 91a97dfaea Restore old device id design in ocloc
This change removes some of the logic related to
passing device id as an argument in ocloc introduced in
"Setting default device id for acronym".

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-07-19 15:55:13 +02:00
Kamil Kopryk aed26ec51d Add DisableForceToStateless debug flag
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-07-19 14:08:28 +02:00
Daria Hinz 01af53b63c Setting default device id for acronym
This PR includes:
- Move product config implementation from
ocloc arg helper to product config helper.
- Add default device id setting for each platform configuration.
- Add & move hw info config tests from opencl to shared

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7112
2022-07-15 12:28:58 +02:00
Kamil Kopryk 7c538b956a Correct typo
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-07-14 10:13:12 +02:00
Daria Hinz ea2edbef3d Add ids command to ocloc
New command usage: ocloc ids <acronym>.
It will allow the user to query all matched
<major>.<minor>.<revision> for the specified acronym.
E.g.
ocloc ids dg1
Matched ids:
12.10.0

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7159
2022-07-07 11:18:36 +02:00
Daria Hinz 789dd1900e Add -config flag to ocloc
Addition of a -config parameter that will allow
the user to set the number of EUs, slices etc.
Knowing these values during AOT can translate into performance.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-07-05 11:36:01 +02:00
Daria Hinz c9246d085d Support for AOT version in fat binary
AOT version (major.minor.revision) is one of
the supported variants for -device arg in ocloc.
In this change, version support has been added
when passing specific targets to -device using ",".

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-07-04 14:21:07 +02:00
Szymon Morek 76e023b941 Link build option with L1 cache policy helper
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>
2022-07-04 11:49:55 +02:00
Artur Harasimiuk 4dff4e165c includes simplification
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2022-06-27 15:08:46 +02:00
Daria Hinz 74bca7f12e Support the uppercase device deprecated acronyms
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-06-27 13:15:38 +02:00
Krystian Chmielewski 0c523b412f feat(ocloc): concatenate multiple fat binaries
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-06-27 13:08:51 +02:00
Szymon Morek 9a26e505a8 Pass LSC policy to IGC in build options
Related-To: NEO-7003


Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-06-21 11:51:56 +02:00
Daria Hinz 5745c3d99d Change AOT enums type & use forward declaration
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-06-20 13:40:29 +02:00
Daria Hinz 2637ae5816 Ocloc: Support for various variants of acronyms
In addition to supporting the official -device acronyms
(e.g. xe-hpg), support for shorter and deprecated acronyms
has also been added.
An example of supported variances:
- xehpg
- xe_hpg
- xe_hpg_core

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-6910
2022-06-14 22:49:01 +02:00
Daria Hinz 6d365cbfc3 Ocloc: New AOT design implementation
Ocloc will handle any new values that may be
passed to the -device argument.

Supported acronyms are available under cmd:
ocloc compile --help

Supported patterns:
- device acronym
- release acronym
- family acronym
- version (major.minor.revision)

Fatbinary will no longer handle major.minor.revision variances,
only acronyms allowed.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-06-14 13:20:45 +02:00
Bartosz Dunajski 5510dc7daa Add adjustHwInfoForIgc support
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-06-13 14:31:53 +02:00
Compute-Runtime-Validation cca1dbecbc Revert "Ocloc: New AOT approach implementation"
This reverts commit a44f1b43aa.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-06-12 21:27:08 +02:00
Daria Hinz a44f1b43aa Ocloc: New AOT approach implementation
Ocloc will handle any new values that may be
passed to the -device argument.

Supported acronyms are available under cmd:
ocloc compile --help

Supported patterns:
- device acronym
- release acronym
- family acronym
- version (major.minor.revision)

Fatbinary will no longer handle major.minor.revision variances,
only acronyms allowed.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-06-10 09:24:13 +02:00
Daniel Chabrowski c303c218be Add missing pragma once in header files
Signed-off-by: Daniel Chabrowski <daniel.chabrowski@intel.com>
2022-06-07 16:19:11 +02:00
Daniel Chabrowski 7463e1970b Cleanup headers
Make TUs and headers self-contained, remove unused headers

Signed-off-by: Daniel Chabrowski <daniel.chabrowski@intel.com>
2022-05-18 11:42:06 +02:00
Artur Harasimiuk 819e0f5515 style: configure readability-identifier-naming.LocalVariableCase
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2022-05-16 12:39:44 +02:00
Daria Hinz de74becdb8 Base hwInfo values setup for AOT
In most cases, there was code redundancy, which was minimized in this change.
The setupHardwareInfoBase extraction will also be used for ocloc.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-6910
2022-05-13 09:40:37 +02:00
Krystian Chmielewski b4b1fb97bd Add default initializers for DeviceMapping members
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2022-05-12 15:04:33 +02:00
Daria Hinz 5ba56690f5 Revert "Set only base values in GT_SYSTEM_INFO for AOT"
This reverts commit b1f622d700.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
2022-05-09 12:42:09 +02:00
Daria Hinz b1f622d700 Set only base values in GT_SYSTEM_INFO for AOT
In most cases, there was code redundancy, which was minimized in this change.
The setupHardwareInfoBase extraction will also be used in ocloc.

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-6910
2022-05-04 10:36:26 +02:00
Kacper Nowak dd393d11a2 Ocloc: allow enforcing binary format specified by user
This commit adds ocloc option for specifying binary format.
When a --format flag is passed, the internal options will be changed
accordingly to the format specified (zebin/patchtokens) or a warning
will be printed if an unknown format will be passed.
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2022-04-29 15:30:19 +02:00
Patryk Wrobel e3b1d8b43c Improve code coverage of BinaryDecoder
This change contains ULTs for BinaryDecoder.
It is intended to improve code coverage.

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-27 11:35:12 +02:00
Patryk Wrobel 1d7b99140c Test buildFatBinary()
This change introduces ULTs for buildFatBinary() function.
It is intended to improve code coverage.

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-26 14:55:24 +02:00
Bartosz Dunajski 9959896957 Add RT calls support to Kernel descriptor
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-04-22 16:33:59 +02:00
Patryk Wrobel 35a04e5915 Refactor and test initialization of FCL in ocloc
This change:
- extracts FCL to a separate class called OclocFclFacade
- tests the new class
- tests its usage in offline compiler

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-22 10:25:16 +02:00