Commit Graph
74 Commits
Author SHA1 Message Date
Maxim Shevtsov dcd6e3e961 removed unsed var and fixed mixup from code shuffling (#10492) 2022-02-18 10:05:23 +03:00
Maxim Shevtsov 317b956d2e fixed possible situation when auto-batching returns zero requests (#10388) 2022-02-15 15:13:25 +00:00
Maxim Shevtsov e3cc4833f4 Auto batch smart reshape strict testing (once we moved to dim tracking) (#10253)
* fixed perf-counters

* explicit auto-batching params that should guarantee the auto-batching is triggered ( to avoid fallback to no-batching when the selected batch1 size is just 1)

* makeConvPoolReluNoReshapes and using that whenever applicable to gaurantee the auto-batching is required (not important for things like plugin/executable-network config tests, but important for the inference-requests)

* getDefaultNGraphFunctionForTheDevice moved to the ov_behavior_test_utils.hpp
2022-02-12 02:00:34 +03:00
Sergey ShlyapnikovandMaxim Shevtsov 03566b4e4d [GPU] Fix outputs blobs allocation for U16/I16 data types (#10180)
* [GPU] Fix outputs blobs allocation for U16/I16 data types

* [GPU] Add U32, U64, FP64 data types support; add information about legacy fused activations to .info file

* Update auto_batch.cpp

fixed u64 inputs for the auto-batching

Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com>
2022-02-11 14:08:36 +03:00
Maxim Shevtsov e41e1f51a0 Auto batch smart reshape (relies on the dim tracking) (#9964) 2022-02-10 20:43:06 +03:00
Maxim Shevtsov c0a375f844 adding I64/U64 support to the auto-batching (#10234)
* adding I64/U64/etc support

* inputs precisions tests instantiations for the GPU and BATCH:GPU
2022-02-09 18:28:13 +03:00
Maxim Shevtsov 320c64de24 disabling auto-batching when batch<4 (as batch1 kernels are heavily optimized) (#10188) 2022-02-09 12:02:30 +03:00
Maxim Shevtsov 863c74471f Auto batch fix default val +test (#10169)
* default config value for the AUTO_BATCH_TIMEOUT

* test for default config value for the AUTO_BATCH_TIMEOUT

* default val for timeout var
2022-02-08 10:14:15 +03:00
Maxim Shevtsov 14fcd196a3 updated the mem_statistics ( since "current" is removed) and TOTAL_MEM as it is now types thru Any (and hence needs the as<>()) (#10135) 2022-02-07 17:31:12 +03:00
Maxim Shevtsov 8a85bfa312 fixed excessive outputs copying (in case when the fallback happened) and updated the test for that (#10110)
* fixed excessive outputs copying (in case when the fallback happened) and updated the test for that

* enum eExecutionFlavor to cover initial state
2022-02-04 16:58:37 +03:00
Ilya Lavrenov f2f281e60b Renamed ov_runtime => openvino, ov_ => openvino_ prefix (#10069)
* Renamed ov_runtime => openvino, ov_ => openvino_ prefix

* Coverage fix

* More fixes

* Fixed MO tests with custom FE
2022-02-03 20:03:41 +03:00
Anton Pankratov 8993c4c18a Deprecated ov::Any implicit cast to any types (#9409)
* Depricated Any implicit cast

* Fixed test

* fixed gna build

* Fixed warnings in benchmark_app

* Fixed test build

* ncc exception for PrintTo

* Error mesage in test

* Error mesage in test

* fixed build
2022-02-03 19:10:52 +03:00
Sergey Shlyapnikov ccf4f4e420 [GPU] Update config api 2.0 (#9649) 2022-02-03 13:04:36 +03:00
Ilya Churaev 03c38ca3fd Changed code which check newAPI flag from Core (#10080)
* Changed code which check newAPI flag from Core

* Fixed typo
2022-02-03 10:36:23 +03:00
Maxim Shevtsov 2b1bacaf6e fixing mem leak by avoiding cyclic ref (when shared_ptr was captured in lambda) (#9930) 2022-01-27 10:47:00 +03:00
Anton Pankratov f45991bd64 OV 2.0 c++ configuration API (#9870)
* New configuration API

* Review fix

* review coments

* fixed device name map

* fixed header

* code stile

* fixed optimization capabilities

* flatten properties

* dox fix

* doc

* merge conflicts

* fixed merge conflicts

* Fixed subobject linkage warning

* foramt fix

* Fixed unity test build

* Merge conflict fixes

* Fixed variadic
2022-01-25 12:43:56 +03:00
Alexander Zhogov 6c2d1e923c Revert "OV2.0 c++ configuration API (#9829)" (#9860)
This reverts commit 50da8c4aed.
2022-01-24 11:29:09 +03:00
Anton Pankratov 50da8c4aed OV2.0 c++ configuration API (#9829)
* New configuration API

* Review fix

* review coments

* fixed device name map

* fixed header

* code stile

* fixed optimization capabilities

* flatten properties

* dox fix

* doc

* merge conflicts

* fixed merge conflicts

* Fixed subobject linkage warning

* foramt fix
2022-01-21 18:44:41 +03:00
Alexander Zhogov 79ff926b6d Revert "OpenVINO runtime Configuration API (#7750)" (#9828)
This reverts commit 400e9ad916.
2022-01-21 13:30:39 +03:00
Anton Pankratov 400e9ad916 OpenVINO runtime Configuration API (#7750)
* New configuration API

* Review fix

* review coments

* fixed device name map

* fixed header

* code stile

* fixed optimization capabilities

* flatten properties

* dox fix

* doc

* merge conflicts

* fixed merge conflicts
2022-01-21 10:32:57 +03:00
Maxim Shevtsov 81685c8d21 Enabling auto batching for the GPU when tput hint is set (#9724)
* moving the HETERO logic to the Auto-Batch (WIP), reverting to the ALLOW_AUTO_BATCHING and using that in the GPU remote tests

* shortned the vars names in the ie_core and prevented recursive auto-batching calls by checking for exclusive requests and disabling further auto-batching in the plugin, when HETERO is involved

* checking for the batch-dim presence (this is still WA until the https://github.com/openvinotoolkit/openvino/pull/9559 is merged) - pls see CVS-75317
+clang for the ie_core.cpp

* moving the HETERO logic back to the ie_core.cpp, storing the _so internally for no-batch code-path
2022-01-19 14:05:13 +03:00
Alexey Suhov a79830cb55 Update year to 2022 in copyright notice (#9755) 2022-01-19 01:07:49 +03:00
Maxim Shevtsov 7ca9641ead Auto batch ov2.0 API support+tests (#9672)
* additional OV 2.0 tests for Auto-Batching

* adding 2.0 way of creating the requests

* performance counters support
2022-01-17 16:00:35 +03:00
49b5e5728b Auto Batching impl (#7883)
* auto-batching POC squashed (all commits from auto-batch-2021.3 branch)

(cherry picked from commit d7742f2c747bc514a126cc9a4d5b99f0ff5cbbc7)

* applying/accomodating the API changes after rebase to the master

* replaying modified version of actual batch selection

* eearly experiments with model mem footprint

* changes from rebasing to the latest master

* experimenting with DG1 on the batch size selection, also collecting the mem footprint

* WIP:moving the auto-batching to the icore to let the MULT/AUTO support that, ALLOW_AUTO_BATCHING as a conventional config key. still fials hot device swap

* quick-n-dirty batch footpint vs device total mem

* code style

* testing which models perform badly due to kernels and NOT (batched) footprint

* stub  pipeline task to comunicate the readiness rather than promise/future

* quick-n-dirty timeout impl

* explicit _completionTasks,reverting BA to use the timeout

* inputs outputs copies, works with AUTO and demo now

* accomodate the config per device-id, after rebase to the latest master

* allowing the auto-batching only with tput hint to let more conventional tests pass

* fix the pre-mature timeout restaring via waiting for batch1 requests completion

* moved the bacthed request statring ( along with input copies) to the dedicated thread

* [IE CLDNN] Disable bs_fs_yx_bsv16_fsv16 format for int8 convolution

* code style

* increasing the timeout to test the ssd_* models perf (timeout?) issues

* reducing number of output stuff in BA to avoid bloating the logs in experiments

* more aggressive batching for experiments, not limited to 32 and also 4 as a min

* more accurate timeout debugging info

* getting the reqs limitation from the plugin SetConfig as well

* refactor the reshape logic a bit to accomodate CPU for bathcing, also added remeote context

* let the benchamrk_app to consume specific batch values for the auto-batching such as BATCH:GPU(4)

* auto-batching functional test (with results check vs ref) and GPU instance for that

* fixed arithemtic on blobs ptrs

* clang

* handling possible batched network failure

* BATCH as the constants device name in test

* ENABLE_BATCH

* func tests for CPU, also DetectionOutput hetero tests (CPU and GPU)

* DetectionOutput hetero test for the CPU

* reenabling the Auto-Batching in the AUTO

* auto-batching device enabled in the test

* fixed the DO test

* improve the loading loop logic

* brushed the config keys

* allow hetero code-path for explicit device name like BATCH:GPU(4), used in the hetero code-path tests

* fix the test after refactoring

* clang

* moving ThreadSafeQueue to the ie_parallel, as it is re-used in the AUTO/MULTI and BATCH now

* auto-batching hetero test (subgraph with DetectionOutput)

* fixed minor changes that were result of experiments with impl

* code-style

* brushing, disabling CPU's HETERO tests until planned activity for 22.2

* removing home-baked MAX_BATCH_SZIE and swicthing to the official impl by GPU team

* remote blobs tests for the auto-batching (old API)

* brushed names a bit

* CreateContext and LoadNEtwork with context for the Auto-Batching plus remote-blobs tests

* fixed the ieUnitTests with adding CreateContext stub to the MockICore

* clang

* improved remote-blobs tests

* revert the back BA from exeprimenents with AB + device_use_mem

* conformance tests for BATCH, alos batch size 1 is default for BATCH:DEVICE

* remote blobs 2.0 tests, issue with context having the orig device name

* debugging DG1 perf drop (presumably due to non-fitting the device-mem)

* disbaling WA with batch/=2 for excesive mem footptint, leaving only streams 2

* remote blobs 2.0 tests for different tensor sharing types

* converting assert to throw to accomodate legacy API where the lock() was possible to be called

* revert the timeout back to avoid mixing the studies, fixed the footprint calc

* reverting to estimating the max batch by extrapolating from bacth1 size

* more conservative footptint etimation (with bacth1), graceful bacth 1 handling without duplication

* even graceful batch 1 handling without duplication

* WA for MAX_BATCH_SIZE failure, removing batch4 as a min for the auto-batching

* AutoBatchPlugin -> ov_auto_batch_plugin

* WA for gcc 4.8

* clang

* fix misprint

* fixed errors resulted from recent OV's Variant to Any transition

* skip auto-batching for already-batched networks

* AUTO_BATCH_TIMEOUT and tests

* GPU-specific L3

* switched to pure config, also improved ALLOW_AUTO_BATCHING config key handling logic

* debugging device info

* enabling the config tests for the GPU and fixing the Auto-batching tests to pass

* making the default (when not recognized the driver) cache size more aggressive, to accomodate recent HW with old drivers

* skip auto-batching for RNNs and alikes (e.g. single CHW input)

* fixed fallback to the bacth1 and moved HETERO path under condition to avoid bloating

* brushing

* Auto plugin GetMetric support gpu auto-batch

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* add test case

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* add comments on test

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* brushing the vars names, alos adding the excpetion handling

* disabling the auto-batching for the networks with non-batched outputs and faster-rcnn and alikes (CVS-74085) to minimize the of #failures

* add try catch

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* brushing the code changed in the GPU plugin

* Auto-Batch requests tests

* brushed varibles a bit (ref)

* cleaned debug output from the ie_core

* cleaned cmake for the Auto-Batch

* removed batchN estimation from batch1

* cleaned from debug printf

* comments, cleanup

* WA the mock test errors introduced with merging the https://github.com/myshevts/openvino/pull/13

* Adding back  removed batchN estimation from batch1 to debug degradations on DG1 (resulted from too optimistic MAX_BATCH_SIZE?). This partially reverts commit e8f1738ac1.

* brushing ie_core.cpp

* fix 32bit compilation

* Code review: ENABLE_AUTO_BATCH

* consolidate the auot-batching logic in ie_core.cpp into single ApplyAutoBAtching

* renamed brushed the OPTIMAL_BATCH (now with_SIZE) and mimicks the MAX_BATCH_SZIE  wrt MODEL_PTR

* default value for the OPTIMAL_BATCH_SIZE

* clang

* accomodate new func tests location

* fix shuffle of headers after clang + copyrights

* fixed misprint made during code refactoring

* moving the common therad-safe containers (like ThreadSafeQueue) to the dedicated dev_api header

* switch from the device name to the OPTIMAL_BATCH_SIZE metric presence as a conditin to consider Auto-Batching

* switching from the unsafe size() and minimizing time under lock

* code style

* brushed the ApplyAutoBatching

* brushed the netric/config names and descriptions

* completed the core intergration tests for the auto-batching

* ExecGraphInfo and check for incorrect cfg

* removed explicit dependencies from cmake file of the plugin

* disabling Auto-Batching thru the tput hint (to preserve current product default), only excplicit like BATCH:GPU used in the tests

Co-authored-by: Roman Lyamin <roman.lyamin@intel.com>
Co-authored-by: Hu, Yuan2 <yuan2.hu@intel.com>
2021-12-24 12:55:22 +03:00