Commit Graph

3576 Commits

Author SHA1 Message Date
Egor Duplenskii 7e6f6876cb
[CPU] Reduce overhead of moving to a numa node (#24037)
### Details:
 - By combining move and execute into single function, so
isExecutable() check is performed only once
- It turned out isExecutable() check is not that lightweight. For some
models it adds noticeable (about 5%+) latency overhead. So, the solution
is to group 'execute' and 'toNumaNode' into a single function and
perform the check only once.
 - fixes overhead introduced by another fix:
 https://github.com/openvinotoolkit/openvino/pull/23849

### Tickets:
 - 138220
2024-05-02 13:41:52 +00:00
Ivan Novoselov 748a751bf3
Dynamic kernel recompilation infrastructure (#24213)
### Details:
- *Calls to external binary kernels (e.g. Brgemm) are normally backed-in
on the code emission stage*
- *Here we create a mechanism that allows to substitute external kernels
in runtime after the code emission stage.*
- *This is a prerequisite for dynamic MHA, since it allows to recompile
required Brgemm blocks in runtime*

### Tickets:
 - *123273*
2024-05-01 14:38:39 +00:00
Attila Csok 1b5a6c49e9
[intel-npu] Adding property to query PCI information of npu device (#24111)
### Details:
- adding new struct for PCI information (aligned with GPU)
- adding new property to query PCI information (as a RO metric)
- implement query of pci information from driver in zero_device, with
backwards compatibility

### Tickets:
[ - *ticket-id*](https://jira.devtools.intel.com/browse/CVS-138767)
2024-05-01 11:16:50 +00:00
Taylor Yeonbok Lee ac27cd6fe7
[GPU] Fix transposed shape calculation for static model (#24329)
### Details:
- Fix transposed shape calculation for static model where the transposed
order is less then canonicalized shape

### Tickets:
 - 140091
2024-05-01 09:47:19 +00:00
Bogdan Pereanu 179fde64d8
[NPU] Return false in case backend is not available (#24322)
### Details:
- *Return false in case the backend is not available when using offline
compilation without having a backend*

### Tickets:
 - *ticket-id*
2024-04-30 19:39:37 +00:00
Mingyu Kim efd4456ecf
[GPU] Transfer to usm_device if GPU architecture has separate cache (#24237)
### Details:
- Recent iGPU has separate cache. In such case, it is necessary to use
usm_device if possible.

### Tickets:
 - 139455
2024-04-30 17:32:53 +00:00
Fang Xu f8311f33b4
store unreadable xml in model cache (#24202)
### Details:
 - *store unreadable xml in model cache*

### Tickets:
 - *CVS-138573*

---------

Co-authored-by: Chen Peter <peter.chen@intel.com>
2024-04-30 11:14:55 +00:00
Eddy Kim 6e9949de41
[GPU] smaller kernel batch size for dynamic models (#24190)
### Details:
- We found a performance issue when multiple `gemm_tiled_opt` kernels
are built as a single program.
- This PR adds a WA to lower the kernel batch size to four in the case
of dynamic models.
2024-04-30 09:09:59 +00:00
hyunback kim f09d1388f0
[GPU] Optimize Conv and Reorder pattern optimize in Unet (#23988)
### Details:
- *MVN with rank size 3 always requires Reorder and Reshape. Due to this
pattern, too many Reorder may occur when used with Convolution, which
may performance degradation. It stand out in Stable-Diffusion Unet and
Decoder*
 - *Convolution performance itself also has the gain in MTL.*

### Tickets:
 - *137360*

---------

Signed-off-by: hyunback <hyunback.kim@intel.com>
2024-04-30 01:18:14 +00:00
Razvan Apetroaie db6c35094f
[CVS-132132][NPU] Move the model transformations to the "CompiledModel" constructor (#24124)
### Details:
- The first requirement from the attached ticket: "Move call of
transformations to CompiledModel constructor. Since the CompiledModel
constructor requires input and output ports, such ports should be passed
before transformations are called, otherwise we can have issues when
transformation mistakenly changed names of tensors and we have issues
like https://jira.devtools.intel.com/browse/CVS-122932"
- Moving the compilation step inside the `intel_npu::CompiledModel`
constructor led to the divergence of the function signature required by
the two methods calling the constructor:
[`intel_npu::Plugin::compile_model`](60dec94dc4/src/plugins/intel_npu/src/plugin/src/plugin.cpp (L510-L516))
and
[`intel_npu::Plugin::import_model`](60dec94dc4/src/plugins/intel_npu/src/plugin/src/plugin.cpp (L582-L588)).
Thus, the current PR introduces an additional constructor.

### Tickets:
 - *CVS-132132*

### Extra Validation:
 - PR-10217, NPU plugin repository
2024-04-29 13:27:32 +00:00
Yury Gaydaychuk 55ff3aa3e4
[Commit slider] AC job improvements (#24002)
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*
2024-04-29 12:16:12 +00:00
Bogdan Pereanu 057f41c138
[NPU] Adding support for handling batching on the plugin (#23915)
### Details:
- *It adds support for handling batching on the plugin side only for
integrated platforms*
- *Handling batching by plugin means splitting batch size on the NPU
plugin side and using concurrent inferences for each size*
- *With this PR batching on the plugin is supported only when it is
found on the 0-th dimension and stateful models are also not supported
with batching on plugin*
- *BATCH_MODE is an internal property, we can choose which in which mode
we prefer to handle the batching. If AUTO is set it will try to handle
it on the plugin side but will fallback on the compiler if it doesn't
meet all the conditions for plugin batching. In the case of PLUGIN, it
will try to compile the networks(find batch and force it to 1 for the
compiler) for plugin batching. Otherwise, if COMPILER batching is used
it will work as until now. No other changes*

Diagram of the process flow:
![Screenshot 2024-03-14
172714](https://github.com/openvinotoolkit/openvino/assets/10560145/bf4a00bb-67a1-4c49-af94-5edaa37e9d57)

### Tickets:
 - *[E#103116]*
2024-04-29 07:40:04 +00:00
Wilson Seok 22d869dd97
[GPU] Fix syntax error of fully_connected_gpu_fb_io_block_fp16 kernel (#24261)
### Details:
 - Fix syntax error of fully_connected_gpu_fb_io_block_fp16 kernel
 - Add related func test

### Tickets:
 - 139622
2024-04-29 07:07:53 +00:00
Mingyu Kim 279908d925
[GPU] Windows build fix for DEBUG_CAPS (#24259)
### Details:
 - *item1*
 - *...*

### Tickets:
 - 138404
2024-04-29 07:02:44 +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
Daniel Bermond 4655dd6ce3
[intel-npu] Fix build when using specific Werror (#24250)
The commit eb025fad1e breaks the build
when `CXXFLAGS` or `CFLAGS` have a specific `-Werror` flag.

For example, when `CXXFLAGS` have `-Werror=format-security`, the build
fails with this message:

```
c++: warning: =format-security: linker input file unused because linking not done
c++: error: =format-security: linker input file not found: No such file or directory
```

That's because every occurrence of the `-Werror` string is being
replaced in the original `CXXFLAGS` and `CFLAGS` variables. So, if they
contain `-Werror=<something>`, it will become just `=<something>`, which
will be an unrecognized option.

The current commit fixes this by appending `-Wno-error` to `CXXFLAGS`
and `CFLAGS` to properly disable errors on warnings.
2024-04-26 23:10:21 +00:00
Vladimir Paramuzov e0f8b7a5b1
[GPU] Host code optimizations for dynamic flow (#24253)
### Details:
 - Simplify comparison operator for `layout` class
 - Return layout by reference in more cases instead of copy
- Initialize primitive_inst users once to avoid primitives map access in
some runtime optimizations
 - Up to 4ms host overhead reduction in some cases
 
### Tickets:
 - *133954*
2024-04-26 15:23:20 +00:00
Taylor Yeonbok Lee eaabd0a912
[GPU] Apply manual flush for in-order queue too (#24251)
### Details:
 - High perf gain was observed in dGPU too.

### Tickets:
 - 139931
2024-04-26 08:59:48 +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
Sun Xiaoxia 1867a270fd
Update executor config in all plugins (#21385)
### Details:
- *Updated initialization of StreamsExecutor configuration by changing
some parameters*
- *Change the call of ov::threading::IStreamsExecutor::Config() in all
plugins*

### Tickets:
 - *CVS-130373*

---------

Co-authored-by: Chen Peter <peter.chen@intel.com>
Co-authored-by: Wanglei Shen <wanglei.shen@intel.com>
2024-04-26 08:19:03 +00:00
hyunback kim 94057c6f2c
[GPU] Fix unintentional allow_new_shape_infer true in static model. (#24235)
SD1.5 weight compressed model's Perf issue in a770.
Even though static model, set formats likes dynamic mode. It cause huge
performance issues.


### Tickets:
 - *138632*

Signed-off-by: hyunback <hyunback.kim@intel.com>
2024-04-26 06:07:19 +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
Sungeun Kim 7631d7acc9
[GPU] integrate onednn/rls-v3.5-pc to master (#24229) 2024-04-26 05:25:17 +00:00
Paul Youngsoo Ahn 7ca4f07a3c
Increase memory reuse (#24212)
### Details:
 - *Change condition to set reusability of memory in realloc_if_needed*

### Tickets:
 - *138396*
2024-04-25 21:34:12 +00:00
Wang, Yang f4dced2e6e
[AUTO] Update the CPU resources for GPU compilation when using CPU as accelerator (#23974)
### Details:
- Update the usage of CPU resources for GPU compilation when CPU as
acceleration device
- Don't prioritize to load dynamic model to CPU, but follow the
device::priorities
 -  Add logs for compilation time and first inference time

### Tickets:
 - CVS-138196

---------

Co-authored-by: Chen Peter <peter.chen@intel.com>
2024-04-25 16:39:51 +00:00
Oleg Pipikin a25a476db2
Remove opset usages for transformations (#24220)
### Details:
 - Remove opset usages for transformations
 - Use operation versions instead of opsets


### Tickets:
 - CVS-118087
2024-04-25 14:46:01 +00:00
Vladislav Golubev 6f0e530bce
[Snippets] MHA: blocking by K and N for bf16/int8 precisions (#23292)
### Details:
- *Added brgemm blocking support for bf16 and int8 precisions: in this
case blocking loops are shared between BrgemmCopyB and BrgemmCPU nodes*
- *Reduced allocation shapes of input brgemm buffers in case of low
precision*

### Tickets:
 - *CVS-115165*
2024-04-25 12:48:00 +00:00
Ilya Lavrenov 7fe82c0c10
Migration to clang-format-15 (#24226)
### Details:
 - Migration to clang-format-15 which is available in Ubuntu 22.04
2024-04-25 08:28:05 +00:00
Piotr Kowalczyk 4387e8bf15
[Op]: ROIAlignRotated ref implementation (#23607)
### Details:
 - added reference impl of ROIAlignRotated.

### Tickets:
 - *[CVS-135725]*

---------

Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2024-04-25 07:08:33 +00:00
Xuejun Zhai 2d8ac08bf1
Move HETERO/BATCH tests to HETERO/BATCH test binaries (#23823)
### Details:
 - Move remaining BATCH/HETERO test cases out of CPU/GPU tests

### Tickets:
 - *CVS-133977*

---------

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>
Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>
Co-authored-by: Chen Peter <peter.chen@intel.com>
2024-04-25 02:33:06 +00:00
Taylor Yeonbok Lee 683e0a799a
[GPU] Fix crash in fc tiled kernel (#24228)
### Details:
- tile_ofm should be set as 1 only when the weight layout is
os_is_yx_osv32_isv2

### Tickets:
 - *ticket-id*
2024-04-25 01:43:47 +00:00
Tomasz Jankowski e9c5fd471d
[Tmpl test] Proposal, PSROIPooling: enable whole Tensor comparison (#24218)
### Details:
- Added actual shape to expected output tensor in Proposal and
PSROIPooling tests.


### Tickets:
 - CVS-137194, CVS-137196
2024-04-24 18:51:43 +00:00
Milind Walekar f1dcc4c310
[EISW-112824] Register missing compiler option (#24136)
### Details:
 - Register BACKEND_COMPILATION_PARAMS in properties

### Tickets:
- *[EISW-112824](https://jira.devtools.intel.com/browse/EISW-112824)*
The option was added to compiler as part of this ticket. But we also
need this option registered to properties in order to start using it
with single image test
2024-04-24 12:10:02 +00:00
Zhang Yi 96f6251c21
[CPU]mha_2nd_token improvement (#23726)
### Details:
 - *Improve 2nd token latency*

### Tickets:
 - *CVS-136566*
2024-04-24 09:43:03 +00:00
Attila Csok 08c3b7ff6e
[intel-npu] Adding f32 to supported values of INFERENCE_PRECISION_HINT (#24166)
### Details:
 - Adding f32 to supported values of INFERENCE_PRECISION_HINT

### Tickets:
[ - *ticket-id*](https://jira.devtools.intel.com/browse/CVS-138219)
2024-04-24 08:09:36 +00:00
Andrew Kwangwoong Park 81a4e3f2bd
[GPU] Update UnsqueezeBroadcastReshapeMatmulFusion pass for non-constant input pattern support (#24157)
### Details:
- Generalize `UnsqueezeBroadcastReshapeMatmulFusion` pass for non-const
broadcast's input support
 - Update test case for `UnsqueezeBroadcastReshapeMatmulFusion` pass

### Tickets:
 - 136386
2024-04-24 03:27:26 +00:00
hyunback kim ca1e698595
[GPU] Hotfix dgpu unit-test failure. (#24207)
Dynamic convolution with padding run cldnn NOT onednn. cldnn test run
with onednn and it caused can't find kernel selection issue.

### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*

Signed-off-by: hyunback <hyunback.kim@intel.com>
2024-04-23 20:53:57 +00:00
Yuan Hu 7846ecc15d
[CPU] fix pooling pad calculate issue (#23813)
### Details:
- *the issue happen when src - (1 + (krn - 1) * dil) + pad_l < 0 && (src
- (1 + (krn - 1) * dil) %stride != 0* && ceil mode

### Tickets:
-
*[issues-23528](https://github.com/openvinotoolkit/openvino/issues/23528)*

---------

Signed-off-by: HU Yuan2 <yuan2.hu@intel.com>
2024-04-23 12:30:55 +00:00
Alexandra Sidorova 2ae2382ba4
[Snippets] Refactored Loop related classes (#23710)
### Details:
- *Splitted `loop_manaher.hpp` to several files: `loop_info.hpp`,
`loop_port.hpp`, `specific_loop_iter_handlers.hpp`, - to make easier
development and code writing in `LoopManager` class*
 - *Removed nested class definition and declarations in `LoopManager`*

### Tickets:
 - *N/A*

#### Should be merged after the following PRs to avoid merge conflicts:
- https://github.com/openvinotoolkit/openvino/pull/22210
- https://github.com/openvinotoolkit/openvino/pull/23180
- https://github.com/openvinotoolkit/openvino/pull/21751
2024-04-23 09:08:13 +00:00
Aleksandr Voron 4d4809f32a
[CPU][ARM] Add fp16 capability check (#24164) 2024-04-23 08:58:15 +00:00
Mingyu Kim e08c039a0b
[GPU][Doc] documentation to explain more about debug_config (#24179) 2024-04-23 08:24:46 +00:00
hyunback kim da517f584c
[GPU] Fix wrong dynamic convolution selection in SD1.5 dynamic dpas platform (#24082)
_Dynamic convolutions with explicit padding run planar bfyx format in
clDNN.
But this limitation is only for clDNN NOT oneDNN. Because unexpected
format selection in dynamic convolution, SD1.5 in platform used dpas
always run clDNN and it caused bad performance._

### Tickets:
 - *138632*

---------

Signed-off-by: hyunback <hyunback.kim@intel.com>
2024-04-23 04:48:54 +00:00
Oleg Pipikin 9a46013f0f
Fix and enable nms op tests for cpu and gpu (#23980)
### Details:
 - Fix and enable nms op tests for cpu and gpu


### Tickets:
 - CVS-125165
 - CVS-105838
2024-04-22 14:58:26 +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
Luo Cheng e46b912f78
[CPU] PagedAttention support u8 kv cache (#23908)
### Details:
 - *Support u8 precision of kv cache*
 - *Depend on https://github.com/ilya-lavrenov/vllm/pull/28*

### Tickets:
 - *[137493](https://jira.devtools.intel.com/browse/CVS-137493)*
2024-04-22 10:39:50 +00:00
Wang, Yang 1d8e27c61e
[AUTO] Fix the mismatch issue between AUTO tensor shape and HW tensor shape (#23827)
### Details:
- Correct tensor shape of AUTO before setting it to selected HW infer
request.
- Remove CPU shape.compatible checks when setting output tensor with
dynamic shape

### Tickets:
 - CVS-136756
2024-04-22 09:52:03 +00:00
Zhang Yi 147cf78079
[CPU]Fix profile graph (#23699)
### Details:
 - *Fix profile graph construction*

### Tickets:
 - *CVS-136859*
 - https://github.com/openvinotoolkit/openvino.genai/issues/327
2024-04-22 09:09:27 +00:00
Vitaliy Urusovskij 254296e4a0
Remove skip of `RNNSequenceTest` CPU test (#23836)
### Tickets:
 - CVS-123321
2024-04-21 20:42:42 +00:00
Taylor Yeonbok Lee 170a8781a4
[GPU] Optimize FC kernels for INT4 vector * matrix with short output size (#24040)
### Details:
- Currently, in dynamic shape, ofm size is fixed as 2 because it is is
tightly coupled by weight layout (i.e., tile_ofm == 2 requires
os_iyx_osv32 weight format)
- For Vec*Mat case (b==1, used for 2nd+ token generation in LLMs) with
small output size N, this configuration is not good because of the
limited # of gpu threads.
- To increase GPU threads, needed to 1) reduce the ofm size to 1 2) But
still share the weight format with first token case where ofm=2 is good.
- Previously the os_iyx_osv32 weight format was packing int4 weight with
the following order:
k0_f0f16 | k0_f1f17 | .... | k0_f15f31 || k1_f0f16 | k1_f1f17 | ... |
k1_f15f31
- To use common weight format for ofm=1 and ofm=2, implemented a new
weight format for int4 dtype, where the weight is stored int the
following order:
f0_k0k1 | f1_k0k1 | .... | f15_k0k1|| f16_k0k1 | f17_k0k1 | ... |
f31_k0k1

### Tickets:
 - 138296
2024-04-19 23:45:13 +00:00
Mateusz Mikolajczyk 0360b2e737
[Op][Core] Change ScatterNDUpdate-14 to opset15 (#24094)
### Details:
 - *Upgrade opset for ScatterNDUpdate from 14 to 15*
 - *...*

### Tickets:
 - *138734*
2024-04-19 15:21:49 +00:00