it is easy to capture when there are 2 app-level inference requests, but only single worker (MULTI) request
main thread | callback thread
___________________________________________________________________________
| <in the callback, the worker request>
| <the request returns itself to the "idle" queue>
| 1) idleGuard.Release()->try_push(workerRequestPtr)
2)<notified on vacant worker arrived via callback> |
3) starts another request with StartAsync | ...
4) <in the ThisRequestExecutor::run()> |
workerInferRequest->_task = std::move(task); | if (_inferPipelineTasks.try_pop(workerRequestPtr->task))
the last line introduces DATA RACE (sporadically manifested in the bad_function_call exception), the fix is in this commit
* remove power op from layer creator
* remove prelu op from layer creator
* remove tile op from layer creator
* remove relu op from layer creator
* remove selu op from layer creator
* remove softmax op from layer creator
* remove tanh op from layer creator
* remove split op from layer creator
* remove reshape op from layer creator
* remove reverse sequence op from layer creator
* remove proposal op from layer creator
* remove priorbox op from layer creator
* remove roipooling op from layer creator
* remove priorboxclustered op from layer creator
* style fix
* utility function to parse bool-containing strings
* align priorbox scale_all_sizes parameter to specification
* change location of getBoolStrParamAsIntStr function
* align prelu creator to new constant op changes
* adjust priorbox tests to align with scale_all_sizes default value
* adjust priorbox python tests to align with scale_all_sizes default value
* align priorboxclustered attributes initlialization to specification
* fix checking wrong container's end iterator for opset name search
* improve comment on roipooling parameters
* Apply review suggestion 1
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
* Apply review suggestion 2
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
* align priorbox step initial value to specification
* align roipooling method attribute to specification
* remove roipooling specific creator
* align with review comments
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
* create MaxPoolLayer test
* Create single layer tests for MaxPool for cpu plugin
* create max_pool_2d_ceil unit test
* Update MaxPool spec
* add comments describing AUTO and NOTSET types
* create unit test for MaxPool
* add type_prop test for default values
* add MaxPool unit tests to CMakeList
* Remove second constructor and change the first one so it has default values for rounding_type and auto_pad
* style-apply
* Update the spec
* add max pool single layer test instances for different pad type
* add 5D input max pool single layer test instance for cpu plugin
* Remove max pool single layer tests files
* add more test instances for max pool single layer tests for cpu plugin
* add newline characters
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* - fix install paths for onnx_reader and ir_reader
- remove static lib installation for plugins on plugins
- 97-myriad-usbboot.rules is installed only for Linux
* added new line
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* [MO] Add CMake install for Model Optimizer
* [MO] Update test for version.py
* export TBB_DIR in setupvars
* faster implementation of gather_nd operator for reference implementations
* remove old impl and time measurements
* exclude test for gather_nd for IE_CPU (output mismatch)
* apply review comments and rename variables for clarify
* rename variables according to PR comments
* try to apply all PR suggestions
* fix indices calcualtions
Co-authored-by: Patryk Elszkowski <patryk.elszkowki@intel.com>
* Comment layer creator and node converter for Elu and Clamp ops.
* Add deserialization for GRN, HardSigmoid, GatherTree.
* Add implementation for Interp, GRN, GatherTree.
* Remove layer creation from ie_ir_parser.cpp
* Remove header files from cnn builder.
* Change op's type in elu functional test, remove name transformtion for this op from ir_parser.
* Remove empty lines.
* Restore compilaltion with tbb 2017u7
Signed-off-by: Alexander Peskov <alexander.peskov@intel.com>
* Fix unsupported arg for tbb deterministic_reduce
Signed-off-by: Alexander Peskov <alexander.peskov@intel.com>
Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
* Fixed documentation build when paths contain spaces
* ops math formula fix
* Fixed typo in
* Added more dependencies for openvino_docs
* Improvements
Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com>
* Remove unnecessary code from the reshape operator shape deduction
* Add new tests to cover cornercases after documentation update
* Fix typo in test name
* Fix codestyle issues
* Fix tests naming
Introduce vpu ngraph transformation that decomposes Mish layer with the following formula: mish(x) = x * tanh(ln(exp(x) + 1)). It is needed to fix the accuracy drop of Yolo-v4 public model that happened due to Mish implementation in the myriad plugin is not accurate enough. It is just a workaround and will be removed when Mish layer will be improved.
map: 70.97% (ref: 70.96%)
coco_precision: 73.50% (ref 73.49%)
* Optimized Infer Request Scheduling
* Fixed misprint
* Brushing the code and comments a bit
* further brushing of the ScheduleToWorkerRequest: moving the task execution directly into the loop over devices (avoids pointers and 'else' clause)
* 1) zero-copy (assuming determenistic app-level scheduling) for the multi-device, via "borrowing" the corresponding device-specific blobs and letting the app to implicitly use these
2) Initial MULTI section in the opt guide (primarily to document a tip on helping the MULTI to keep the zero-copy path)
Co-authored-by: apankratovantonp <anton.pankratov@intel.com>