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 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
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>
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>
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
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>
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>
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
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>
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>
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>
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 introduces remaining ULTs for ocloc_arg_helper
to ensure, that its files are fully covered.
Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
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>
This change:
- implements mock for functions from IGA DLL
- implements ULTs for IgaWrapper
- implements RAII wrapper for GTEST's capture of stdout
- adds ASAN and TSAN flags to ocloc_tests
Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change:
- encapsulates initialization of IGC in a separate class
- removes code duplication from OfflineLinker and OfflineCompiler
- tests the new encapsulated class
Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change introduces unit tests related to
member functions of OfflineCompiler class.
OfflineCompiler::initialize() is not covered
and it will be added in a separate commit.
Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change contains ULTs, which improve the
coverage of BinaryEncoder and BinaryDecoder
classes.
Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change introduces ULTs for untested
parts of MultiCommand class. Furthermore,
it contains MockMultiCommand class, which
allows white-box testing.
Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change contains ULTs for OfflineCompiler::parseCommandLine()
method. The goal was to improve code coverage.
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change contains ULTs for buildFatBinaryForTarget().
They are intented to cover untested code. Moreover,
the function signature has been changed to avoid copying
of std::vector of arguments.
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change prevents embedding identical SPIR-V section for each
target requested in fatbinary build. Instead of duplicating SPIR-V,
a new file called 'generic_ir' is added to AR archive. It contains
SPIR-V, which was used to build fatbinary. Build fallback in runtime
has been also adjusted - if 'generic_ir' file is defined in fatbinary
and there is no matching binary, then this generic SPIR-V is used to
rebuild for the requested target.
Additionally, MockOclocArgumentHelper::loadDataFromFile() was adjusted
to ensure null-termination of returned strings.
This change also removes possible undefined behavior, which was
related to reading names of files from AR archive. Previously,
if filename was shorter than requested target name, we tried to
read more memory than allowed.
Related-To: NEO-6490
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
Aditionally fix:
- GivenSpecifiedOutputDirWithProductConfigValueWhenBuilding...
...MultiCommandThenSuccessIsReturned
- GivenArgsWhenBuildingWithDeviceConfigValueThenBuildSucceeds
tests which used files created by previously run tests.
Now both of these tests are a separate units.
Related-To: NEO-6606
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
Ocloc can dump gen file when we add -gen_file flag to cmd.
Otherwise gen is not generated
Signed-off-by: Mateusz Borzyszkowski <mateusz.borzyszkowski@intel.com>
Added 'link' option to ocloc CLI, which allows linking of
several IR files to single output file. Supported formats
of output file are ELF and LLVM BC.
Related-To: NEO-6163
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
Unifies usage of flags in case of IR exclusion from ocloc's output file.
When -exclude_ir parameter is active, then internal options passed to
IGC contain -exclude-ir-from-zebin to preserve consistency. Moreover,
when only -exclude-ir-from-zebin is present, then -exclude_ir is also set.
Related-To: NEO-6477
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
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>