Commit Graph

146 Commits

Author SHA1 Message Date
Aleksandr Voron 4dfca61bd2
[CPU][ARM] Remove `acl_dw_convolution` from oneDNN (#24636)
This change was reverted by
https://github.com/openvinotoolkit/oneDNN/pull/230 because performance
degradation.

Degradation happens because ACL kernel was not selected due to
convolution check.
It was discussed with ACL team that this check could be removed and ACL
team removed this check in oneDNN.
Then I deleted this check in oneDNN fork:
https://github.com/openvinotoolkit/openvino/pull/24422

Since the check does not prevent us from selecting ACL kernel, we may
remove custom kernel again.

oneDNN PR: https://github.com/openvinotoolkit/oneDNN/pull/251

CVS-142130

TODO:
- [x] do performance check
2024-05-29 09:48:15 +00:00
Tingqian Li d8f5d7bdd3
[CPU] Support weight-compression dt s8 (#24457)
### Details:
- FC with symmetrically quantized/compressed weight may have i8 (instead
of u8) as weight data type (it saves the zero-point subtraction cost),
this change added support to such weight dt.
 - oneDNN fork PR: https://github.com/openvinotoolkit/oneDNN/pull/249

### Tickets:
 - *CVS-131042*
2024-05-22 05:37:03 +00:00
Tingqian Li e6667f3bb9
[CPU] Fc support float16 weight (#24155)
### Details:
 - *Add support for (src_f32, weight_f16) case in FC*

oneDNN-fork PR: https://github.com/openvinotoolkit/oneDNN/pull/246

### Tickets:
 - *CVS-133453*
 - *CVS-139274*
2024-05-21 06:44:04 +00:00
Aleksandr Voron 3b54cce8ef
[CPU][ARM] Upgrade ACL to 24.04 (#24491) 2024-05-17 13:59:11 +00:00
Luwei Zhou 9a80d31c6b
[CPU] brgconv on AVX2 enabling and switch OV deconv implement to ONEDNN deconv OP from conv_backward_data (#23596)
### Details:
- *Re-enable conv with brgemm implement on avx2 platform with fp32 ,
also heuristic cause by wavernn-upsampler regression*
- *Switch OV cpu deconv implement from ONEDNN convbackward_data
primitive to deconv primitive. Support const and non-const weight;
Always expose planar weight layout to cpu graph; weight cache to save
blocked const weight ; runtime reorder for none-const weight*
 - *enable bias fusing for fp32 to replace legacy depthwise fusing*
 - *enable deconv brgconv for fp32 and INT8 deconv*
 - *update test case*

### About test case/WA update:
- *OV has feature to set the output shape of conv_backward_data. Which
would cause pad_r < 0 && pad_r + dil < 0, so applied the WA in onednn to
create deconv OP*
- *Deconv only has one ref entry(CPU_INSTANCE(ref_deconvolution_fwd_t)
for JIT,gemm and c++ reference implement. So one layout can't use RTinfo
to filter implement. Update test cases with 1x1 related or SSE related.
     For example:  backward data has 2 entries when input is nChw16C :
       jit_avx512_common_1x1_convolution_bwd_data_f32_t 
      jit_avx512_common_convolution_bwd_data_t<f32> to support
So OV filter can work to get desired implement type. However, deconv
only has only, it means that nChw16C would only get one implement type.
So filter would not work.*
 - *Change stride to 1 unit because of brgemm limitation*
- *subgraph concat deconv test can't hit ref implement because the gemm
and ref share one entry implement.*
- *Conformance test conv related failed, but can pass when merging 3.3
with brg. Failed caused by
![PR22972](https://github.com/openvinotoolkit/openvino/pull/22972).
Seems threshold changes. Also AMX and avv512 core would fail on these
conformance test but not enabled on Azure platforms. Guess the expected
result is based on avx2 jit. So current just remove these test*

### Tickets:
 - *CVS-133120, CVS-122688*
2024-05-16 05:19:27 +00:00
Aleksandr Voron 8e388761f6
[CPU][ARM] Remove redundant dw conv check in oneDNN (#24422)
oneDNN PR: https://github.com/openvinotoolkit/oneDNN/pull/248
2024-05-09 07:44:21 +00:00
Maksim Kutakov ad22945a55
[CPU] Refactor binary PReLU avx2 post op (#24102)
### Details:
Refactor binary PReLU avx2 post op in order to reduce the amount of
instructions for avx2 and fix the conflicting register indices issue for
both avx2 and sse41. This is more advanced version of the previous fix
ported only to the LTS branch
https://github.com/openvinotoolkit/openvino/pull/23910. Also dedicated
SL tests were introduced.

OneDNN fork PR https://github.com/openvinotoolkit/oneDNN/pull/242

### Tickets:
 - CVS-137492
2024-05-03 08:04:17 +00:00
Ilya Lavrenov c121e896da
Intel compiler support (#24217)
### Details:
 - Initial version of Intel compiler support
 - Only Linux is covered
- Current PR is a prerequisite for
https://github.com/openvinotoolkit/openvino/pull/23534
2024-04-27 14:03:28 +00:00
Luwei Zhou b886fa5d10
[CPU]Cherry-pick from onednn to fix brgemm memory leak. (#24104)
### Details:
Cherry pick ONENN fix on brgemm memory leak.

### Tickets:
 - *CVS-129803, CVS-131566*
2024-04-26 08:54:42 +00:00
Fang Xu ff826fdcda
enable cmake compile warning as error for crosscompile (#23951)
### Details:
 - *enable CMAKE_COMPILER_WARNING_AS_ERROR for cross compile*

### Tickets:
 - *CVS-134950*

---------

Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2024-04-26 05:54:59 +00:00
Ivan Novoselov e56310999c
[Snippets] TPP FP32 MHA support (#22210)
### Details:
 - *Enable FP32 MHA lowering using TPP backend*
- *This PR is a productization of the [TPP integration
POC](https://github.com/openvinotoolkit/openvino/pull/20956)*
### Prerequisites:
- https://github.com/openvinotoolkit/openvino/pull/21303
- https://github.com/openvinotoolkit/openvino/pull/21672

Branch to Branch PR in to review the changes before the Prerequisites
are merged: https://github.com/IvanNovoselov/openvino/pull/18

---------

Co-authored-by: egeorgan <evangelos.georganas@intel.com>
2024-04-22 14:52:42 +00:00
Ilya Lavrenov eb025fad1e
Supported Ubuntu 24.04 (#23905)
### Details:
 - Supported Ubuntu 24.04
2024-04-16 14:26:41 +00:00
Gorokhov Dmitriy d3846624e8
[CPU] Fixed dynamic quantization accuracy issue (#23792)
### Details:
- *This PR fixes dynamic quantization accuracy for MatMuls with
unaligned src and weights group sizes*
 - *OneDNN fork PR: https://github.com/openvinotoolkit/oneDNN/pull/239*
2024-04-01 13:28:13 +00:00
Bo Liu b364b7a78a
[CPU] Add binary post op check to jit_gemm prim desc (#23340)
### Details:
- *cpu pp_kernel creation will fail for some gemm_convolution + binary
post_op cases*
 - *OneDNN fork pr: https://github.com/openvinotoolkit/oneDNN/pull/236* 

### Tickets:
 - *134839*
2024-03-26 16:05:25 +00:00
Aleksandr Voron cda5a0239f
[CPU][ARM] Enable both f16 and f32 kernels for aarch64 and introduce runtime f16 support check (#22992)
Inherited from https://github.com/openvinotoolkit/openvino/pull/22437

---------

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2024-03-25 10:22:00 +00:00
Aleksandr Voron a47e3f6bdb
[CPU][ARM] Upgrade to ACL v24.02.1 (#22598)
oneDNN PR: https://github.com/openvinotoolkit/oneDNN/pull/227
2024-03-22 09:23:12 +00:00
Jacek Pawlak 239466ca5d
copyright year update (#23370)
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'
```
2024-03-14 09:37:02 +00:00
Aleksandr Voron 5c7a4bc51f
[CPU][ARM] Enable f16 eltwise fusing in ACL (#23117)
oneDNN PR: https://github.com/openvinotoolkit/oneDNN/pull/234
2024-03-04 06:31:33 +00:00
Maksim Kutakov 0474cf7d90
[CPU] Introduce gemm conv post op checks (#23059)
### Details:
Gemm convolution supports binary post ops only in the `jit_pp_kernel`,
while `ref_pp_kernel` doesn't support such functionality. More over,
even supporting binary post ops, the `jit_pp_kernel` doesn't perform all
the necessary checks to ensure proper functioning and memory
consistency. This PR introduces all the necessary checks to avoid any
runtime errors caused by improper post ops configurations being applied
unconditionally.

### Tickets:
2024-02-27 08:59:05 +00:00
Mang Guo 84400513d5
Fix register conflict in jit_avx512_dw_f32 primitive (#22693)
### Details:
- *Fix register conflict in jit_avx512_dw_f32 primitive to solve a
segmentation fault in deconvolution*

### Tickets:
 - *[22343](https://github.com/openvinotoolkit/openvino/issues/22343)*
2024-02-23 08:43:22 +00:00
Gorokhov Dmitriy e28c8dd193
[CPU] Dynamic quantization for compressed FullyConnected (#22738)
### Details:
- *This PR adds activations dynamic quantization support for compressed
FullyConnected*
 - OneDNN PR: https://github.com/openvinotoolkit/oneDNN/pull/229

### Tickets:
 - *[CVS-128361](https://jira.devtools.intel.com/browse/CVS-128361)*
2024-02-14 17:31:59 +00:00
Nesterov Alexander 64d0673613
[ARM CPU] Fix group convolution degradation (#22761)
onednn pr: https://github.com/openvinotoolkit/oneDNN/pull/230
2024-02-14 05:19:26 +00:00
Vladislav Golubev 851bdb404c
[CPU] gemm conv fix for avx2 platforms (#22710)
### Tickets:
 - *CVS-98385*

OneDNN PR: https://github.com/openvinotoolkit/oneDNN/pull/231
2024-02-12 14:19:23 +00:00
Vitaliy Urusovskij dfe0699503
Rename IE to OV (#22733) 2024-02-09 13:36:41 +00:00
Luwei Zhou d311e6512a
Migrate to ONEDNN 3.3 release. (#21853)
### Details:
 - *Migrate to onednn 3.3*
- *Enable brgconv on avx2. Fall back on jit legacy zp when having input
zp(even per-tenson) to fix perf regression*

### Tickets:
 - *129816*
2024-02-02 09:47:30 +00:00
Zhang Yi eac1b29ef1
[CPU][MLAS]Fix mlas threading with odd threads (#22205) 2024-01-19 13:32:10 +04:00
Aleksandr Voron 03a5be788a
[CPU][ARM] Added acl_depthwise_convolution support for f16 convolution (#21817) 2024-01-03 13:31:59 +04:00
Ilya Lavrenov dc79c41fb8
Updated xbyak_aarch64 in onednn (#21762) 2023-12-20 00:13:17 +04:00
Gorokhov Dmitriy 058d488083
[CPU] FullyConnected acceleration with 4bit weights decompression on SPR (#21723) 2023-12-18 23:16:45 +04:00
Gorokhov Dmitriy 32b6362076
[CPU] Improve first token latency for 4bit compressed models (#21547) 2023-12-14 09:06:09 +00:00
Ilya Lavrenov 02dec1c2d9
Added more exclude markers for install rules (#21561) 2023-12-11 17:05:09 +04:00
Zhang Yi 09a45bceae
[CPU][MLAS]Apply lower bound protection for K stride (#20873) 2023-11-09 15:14:27 +04:00
Anton Voronov d90e23fc30
[CPU] Sparse weights decompression feature: changed comp_tile_len data type from int16_t to int (#20707) 2023-10-31 09:34:27 +04:00
Gorokhov Dmitriy 63299ec217
[CPU] FullyConnected acceleration with 4bit weights decompression (#20607) 2023-10-26 01:08:07 +04:00
Zhang Yi d490ab68d1
[CPU][MLAS] FC uses L2 cache for thread partition (#20436) 2023-10-24 09:31:03 +04:00
Ilya Lavrenov 8349849e1c
Use FindPython3.cmake (#19847)
* Use FindPython3.cmake

* Fixed compilation on macOS 14 with new core development tools

* Try to use Python3_SOABI instead of PYTHON_MODULE_EXTENSION

* Use Development.Module

* Keep specifying only Python3_EXECUTABLE

* Print PYTHON_MODULE_EXTENSION

* Added check for minimal cmake version for python API

* Returned Python3_INCLUDE_DIR for cross-compilation case

* Try to allow cmake older than 3.18

* Use build python interpreter to check cython dependency

* revert changes in .ci/openvino-onnx/Dockerfile

* removed unused code

* Fixed issue with variables scope

* Experiment: remove include dirs

* Corrected docs

* Use pybind11 function to set extension

* Revert "Experiment: remove include dirs"

This reverts commit 6f7f90211c.

* Refactor ConvolutionBackpropDataLayerTest, ConvolutionLayerTest, DeformableConvolutionLayerTest (#19810)

* Refactor ConvolutionBackpropDataLayerTest

* Refactor ConvolutionLayerTest

* Refactor DeformableConvolutionLayerTest

* Apply comments

* Apply comments

* Fix

* Updated minimum cmake version for Windows

* Simplified check

* Removed useless message status

* Use puiblic option

---------

Co-authored-by: Oleg Pipikin <oleg.pipikin@intel.com>
2023-09-26 20:57:29 +02:00
Anton Voronov 3ce48fc3d6
Fixed OV static build issues (#19976) 2023-09-26 10:23:00 +04:00
Nesterov Alexander 194b9f5c38
[ARM CPU] Migration Arm Compute Library to 23.08 version (#19523) 2023-09-21 14:30:38 +04:00
Luwei Zhou 9dcd66c695
[CPU] Unify oc block to optimize peak memory. (#19575) 2023-09-21 09:54:55 +04:00
Ilya Lavrenov 253ca8c746
Fixed GPU plugin static build with oneDNN (#19811)
* Fixed GPU plugin static build with oneDNN

* Fixed issue with absolute paths inside installed OpenVINOConfig.cmake

* Fixed absolute paths in installed OpenVINOConfig.cmake

* Changed components for installation
2023-09-18 13:58:20 +04:00
Ilya Lavrenov ba67db66ae
Properly enable CMAKE_COMPILE_WARNING_AS_ERROR (#19828)
* Properly enable CMAKE_COMPILE_WARNING_AS_ERROR_DEFAULT

* Properly enable CMAKE_COMPILE_WARNING_AS_ERROR
2023-09-15 01:20:00 +04:00
Ilya Lavrenov 35a0706dff
Replaced several cmake utilities with new ov_ prefix (#19819)
* Replaced several cmake utilities with new ov_ prefix

* Replaced several cmake utilities with new ov_ prefix
2023-09-14 16:22:50 +04:00
Ilya Lavrenov 58546b2ecb
Use ov_mark_target_as_cc in CPU oneDNN (#19766) 2023-09-12 12:20:49 +04:00
Ilya Lavrenov a1cc5e6692
Resolve ARM CPU plugin illegal instruction on older Linux systems (like Ubuntu 18.04) (#19717) 2023-09-11 17:15:42 +04:00
Ilya Lavrenov 46d05cc820
Fixed CPU plugin compilation (#19629) 2023-09-06 10:48:26 +04:00
Anton Voronov 49c4c922ff
[CPU][OneDNN] Fix zero pad perf issues (#19417) 2023-08-29 16:55:45 +00:00
Anton Voronov 59d58b2296
[CPU][ONEDNN] jit_uni_dw_conv_row_f32: fixed post ops start index (#19126) 2023-08-23 15:52:09 +04:00
Zhang Yi 53c47aaa91
[CPU]Fix mlas threadpool of MlasExecuteThreaded (#19292) 2023-08-22 12:49:38 +04:00
Gorokhov Dmitriy 2bdb7bd23e
[CPU] FullyConnected acceleration with 8bit weights decompression on SPR (#19111) 2023-08-11 14:14:32 +04:00
Ilya Lavrenov a251346031
[CPU] Give different output name for dnnl (#19136)
* Give different output name for dnnl

* Apply suggestions from code review

added prefix to library name
2023-08-11 13:54:44 +04:00