Files
openvino/tools
Maxim Shevtsov 80f5fe953b Openvino hybrid awareness (#5261)
* change the deprecated method to the recent

* first ver of the hybrid cores aware CPU streams (+debug info)

* more debug and fixed sum threads

* disabled NUMA pinning to experiment with affinity via OS

* further brushing of stream to core type logic

* hybrid CPU-aware getNumberOfCPUCores

* adding check on the efficiency

* experimental TBB package (that cmake should pull from the internal server)

* iterating over core types in the reversed order (so the big cores are populated first in case user specified less than all #threads)

* adding back the NUMA affinity code-path for the full validation (incl 2 sockets Windows Server)

* cpplint fix and tabbing the #if clauses for the readbility

* pre-production TBB from internal server

* wrapping over #cores/types

* wrapping over #cores/types, ver 2

* wrapping over #streams instead

* disabling warnings as errors for a while (to unlock testing)

* accomodating new TBB layout for dependencies.bat

* next tbb ver (with debug binaries that probably can unlock the commodity builds, without playing product_configs)

* minor brushing for experiments (so that pinning can be disabled)

* minor brushing from code review

* Updating the SHA hash which appeared when rebasing to the master

* WIP refactoring

* Completed refactoring of the "config" phase of the cpu stream executor and on-the-fly streams to core types mapping

* making the benchmark_app aware about new pinning mode

* Brushing a bit (in preparation for the "soft" affinity)

* map to vector to simplify the things

* updated executors comparison

* more fine-grained pinning scheme for the HYBRID (required to allow all cores on 2+8 1+4, and other LITTLE-skewed scenarios)

TODO: seprate little to big ratio for the fp322 and int8 (and pass the fp32Only flag to the MakeDefaultMultiTHreaded)

* separating fp32 and int8 intensive cases for hybrid execution, also leveraging the HT if the #big_cores is small, refactored. also switched to the 2021.2 oneTBB RC package

* code style

* stripped tbb archives from unused folders and files, also has to rename the LICENSE.txt to the LICENSE to match existing OV packaging tools

* assigning nodeId regradless of pinning mode

* tests OpenCV builds with same 2021.2 oneTBB, ubuntu 18/20

* cmake install paths for oneTBB, alos a ie_parallel.cmake warning on older ver of TBB

* Updated latency case desc to cover multi-socket machines

* adding centos8 OCV with oneTBB build

updating TBB drops with hwloc shared libs added.

* enabled internal OCV from THIRD_PARTY_SERVER to test thru CI..
Added Centos7 notbb OCV build (until g-api get ready for onetbb) to unlock the Centos7 CI build

* separate rpath log to respect one-tbb specific paths

* fixed SEQ code-path

* fixed doc misprint

* allowing all cores in 2+8 for int8 as well

* cleaned from debug printfs

* HYBRID_AWARE pinning option for the Python benchmark_app

* OpenVINO Hybrid CPUs support

* Remove custom::task_arena abstraction layout

* Get back to the custom::task_arena interface

* Add windows.h inclusion

* Fix typo in macro name

* Separate TBB and TBBbind packages

* Fix compile-time conditions

* Fix preprocessors conditions

* Fix typo

* Fix linking

* make linking private

* Fix typo

* Fix target_compile_definitions syntax

* Implement CMake install logic, update sha hash for the tbbbind_2_4 package

* Add tbbbind_2_4 required paths to setup_vars

* Update CI paths

* Include ie_parallel.hpp to ie_system_conf.cpp

* Try to update dependencies scripts

* Try to fix dependencies.bat

* Modify dependencies script

* Use static tbbbind_2_4 library

* Remove redundant paths from CI

* Revert "cleaned from debug printfs"

This reverts commit 82c9bd90c5.

# Conflicts:
#	inference-engine/src/inference_engine/os/win/win_system_conf.cpp
#	inference-engine/src/inference_engine/threading/ie_cpu_streams_executor.cpp
#	inference-engine/src/mkldnn_plugin/config.cpp

* Update tbbbind package version

* fixed compilation

* removing the direct tbb::info calls from CPU plugin, to aggregate everything in the single module (that exposes the higher level APIs)

* Update tbbbind package version

(cherry picked from commit f66b8f6aa6)

* compilation fix

* brushing the headers a bit

* Make custom::task_arena inherited from tbb::task_arena

* change to the latest TBB API, and more debug printfs

* code-style

* ARM compilation

* aligned "failed system config" between OV and TBB (by using '-1')

* macos compilation fix

* default arena creation (to make sure all code-path have that fallback)

* Incapsulate all TBB versions related logic inside the custom namespace

* Move custom layer header to internal scope + minor improvements

* with all NUMA/Hybrid checks now consolidated in the custom_arena, cleaning the ugly ifdefs thta we had

* Introduce new ThreadBindingType + fix compilation

* fixing OMP compilation

* OpenVINO Hybrid CPUs support

* Remove custom::task_arena abstraction layout

* Get back to the custom::task_arena interface

* Add windows.h inclusion

* Fix typo in macro name

* Separate TBB and TBBbind packages

* Fix compile-time conditions

* Fix preprocessors conditions

* Fix typo

* Fix linking

* make linking private

* Fix typo

* Fix target_compile_definitions syntax

* Implement CMake install logic, update sha hash for the tbbbind_2_4 package

* Add tbbbind_2_4 required paths to setup_vars

* Update CI paths

* Include ie_parallel.hpp to ie_system_conf.cpp

* Try to update dependencies scripts

* Try to fix dependencies.bat

* Modify dependencies script

* Use static tbbbind_2_4 library

* Remove redundant paths from CI

* Update tbbbind package version

* Make custom::task_arena inherited from tbb::task_arena

* Incapsulate all TBB versions related logic inside the custom namespace

* Move custom layer header to internal scope + minor improvements

* Introduce new ThreadBindingType + fix compilation

* Fix compilation

* Use public tbbbind_2_4 package

* fixed macos build, corrected comments/desc

* reverted to the default binding selection logic ( to preserve the legacy beh)

* OpenVINO Hybrid CPUs support

* Remove custom::task_arena abstraction layout

* Get back to the custom::task_arena interface

* Add windows.h inclusion

* Fix typo in macro name

* Separate TBB and TBBbind packages

* Fix compile-time conditions

* Fix preprocessors conditions

* Fix typo

* Fix linking

* make linking private

* Fix typo

* Fix target_compile_definitions syntax

* Implement CMake install logic, update sha hash for the tbbbind_2_4 package

* Add tbbbind_2_4 required paths to setup_vars

* Update CI paths

* Include ie_parallel.hpp to ie_system_conf.cpp

* Try to update dependencies scripts

* Try to fix dependencies.bat

* Modify dependencies script

* Use static tbbbind_2_4 library

* Remove redundant paths from CI

* Update tbbbind package version

* Make custom::task_arena inherited from tbb::task_arena

* Incapsulate all TBB versions related logic inside the custom namespace

* Move custom layer header to internal scope + minor improvements

* Introduce new ThreadBindingType + fix compilation

* Fix compilation

* Use public tbbbind_2_4 package

* Apply review comments

* Fix compilation without tbbbind_2_4

* Fix compilation with different TBB versions

* code review remarks

* fix for the NONE pinning code-path under HYBRID_AWAR

* whitespace and cleaning the debug printfs (per review)

* code-review comments

* fixed code-style

Co-authored-by: Kochin, Ivan <ivan.kochin@intel.com>
Co-authored-by: Kochin Ivan <kochin.ivan@intel.com>
2021-04-28 17:42:58 +03:00
..
2020-11-19 16:56:47 +03:00

OpenVINO™ Python* openvino.tools package

General

openvino.tools package includes:

  • openvino.tools.benchmark

Please, refer to https://docs.openvinotoolkit.org for details.

Installation

Choose necessary Python* version and define PYTHONPATH environment variable.

Prerequisites

Install prerequisites first:

1. Python

openvino.tools is Python 3 library. Install it first:

sudo apt-get install python3 python3-dev python3-setuptools python3-pip

Python setuptools and python package manager (pip) install packages into system directory by default. There are several options:

  • work inside [virtual environment][virtualenv] (best solution).
  • use --user option for all pip commands.
  • install all dependencies with sudo permissions.

In order to use virtual environment you should install it:

python3 -m pip install virtualenv
python3 -m virtualenv -p `which python3` <directory_for_environment>

Before starting to work inside virtual environment, it should be activated:

source <directory_for_environment>/bin/activate

Virtual environment can be deactivated using command

deactivate

2. Install package prerequisites

The next step is installing package prerequisites.

python3 -m pip install -r benchmark/requirements.txt

Configuration

Each subpackage has specific configuration. Please, refer to specific subpackage documentation for details.