### Details:
- Add new element into OpenVINO `f4e2m1`
- Add new type `float4_e2m1`
### Tickets:
- [CVS-141565](https://jira.devtools.intel.com/browse/CVS-141565)
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
### Details:
- *Merge first token and second token inference into one parallel loop*
- *~~Additional optimization: pre-transpose k-cache, pre-pack v-cache if
needed~~*
- *Additional optimization for first token: save q * k' upper triangle
matrix computation and (q * k') * v lower triangle matrix computation*
- *C++ pipeline can enable it:
https://github.com/ilya-lavrenov/openvino.genai/pull/9*
- *TODO(in another PR):*
- alibi support
- performance tuning
- testcase
### Tickets:
- *[138673](https://jira.devtools.intel.com/browse/CVS-138673)*
Compilation in Conan fails if compiler=clang and libstd=libstdc++
because conan defines _GLIBCXX_USE_CXX11_ABI=0 but openvino autodetects
the value and overwrites it with _GLIBCXX_USE_CXX11_ABI=1.
These changes make it honor the compile definitions generated by Conan.
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
### Details:
`CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION` is supposed to be set by
CMake when Windows SDK is installed in the system, but it works only for
Visual Studio generators. As we use Ninja, we set this variable
manually, trying to mimic the default behavior.
_ov_target_no_deprecation_error function extends
INTERFACE_COMPILE_OPTIONS of such targets as openvino::runtime with
-Wno-error=deprecated-declarations. It makes any target that links
against openvino::runtime (directly or through public interface of
target that linked directly to openvino::runtime) to compile with this
option. The fact that interface options are added to the end of the list
makes it impossible to override them for target-user of
openvino::runtime.
-Wno-error=deprecated-declarations doesn't disable the warning in
contrast to -Wno-deprecated-declarations, but merely enforces to treat
it as warning, not error. It means if a target tries to keep build log
clean (without warning messages) and uses things like -Werror for this
and links against openvino::runtime in any way, then it still will have
warning messages emitted.
To allow user-targets that linked against openvino::runtime to enforce
treatment of warnings as errors including deprecated-declarations
INTERFACE_COMPILE_OPTIONS is extended with generator expression instead,
so that user-target can set property
TREAT_DEPRECATED_DECLARATIONS_AS_ERRORS and get
-Wno-error=deprecated-declarations coming from OpenVINO removed from the
list of compile options.
If TREAT_DEPRECATED_DECLARATIONS_AS_ERRORS isn't set, the behavior is
unchanged and -Wno-error=deprecated-declarations is presented in
INTERFACE_COMPILE_OPTIONS.
Signed-off-by: Gladilov, Gleb <gleb.gladilov@intel.com>
### Details:
GNU compiler doesn't support
`-fsanitize-blacklist=${OpenVINO_SOURCE_DIR}/tests/asan/ignore.txt` and
doesn't require `-shared-libasan` flags. In this PR configurations for
the ASAN build for Clang and GCC are split.
### Details:
- Introduce new low precision types `u2`, `u3`, `u6`.
- Introduce `ov::element::Iterator` for low precision types like `u1,
u2, u3, u4, i4, u6`:
- Gives pointer like access to low precision values in Tensor,
containers etc.
- Can be used by STL algorithms to access data in unified algorithms for
data manipulation.
- Can be used in Constant, Convert operators to replace duplicate
implementations for accessing low precision data (bin-size reduction).
- Can be used for operator reference implementation or plugin if there
is no hardware specific solution.
### Tickets:
- [CVS-126998](https://jira.devtools.intel.com/browse/CVS-126998)
- Part of
[CVS-128024](https://jira.devtools.intel.com/browse/CVS-128024)
### Details:
- Enabled LTO for Linux ARM64, because now we use more fresh compiler
version from Ubuntu 20.04, while older ones have issues with LTO on
arm64
New PR due to merge
conflicts(https://github.com/openvinotoolkit/openvino/pull/22917)
Updated the copyright year from 2018-2023 to 2018-2024 in all openvino
files
Ref. to script: CVS-101144
Command used:
```bash
git grep -lz '2018-2023 Intel Corporation' | xargs -0 sed -i '' -e 's/2018-2023 Intel Corporation/2018-2024 Intel Corporation/g'
```
### Details:
Make ov_add_version_defines macro respect the original library type
(instead of implicit assumption based on BUILD_SHARED_LIBS).
Note adding objects into a library with $<TARGET_OBJECTS:> does not work
when mixing STATIC and OBJECT targets.
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>