Refactored Linix GHA pipeline (#20021)

* Refactored Linix GHA pipeline

* Move ONNX tests to Unit

* Install tests together with openvino

* Added checks for GNA usage in docs python snippets

* Install openssl for working pip

* Disabled onnx_dyn_shapes_expand_1_dyn_shape ONNX test

* exclude dyn shapes from onnx

* Migrated samples tests

* Fixed ONNX tests

* caches for PT tests dependencies

* Build Contrib separately from main OpenVINO

* More fixes

* Added python install for samples stage

* Installed manifests for ONNX FE tests

* Try to avoid libgl1 dependency in tests

* Clean-up

* Fixed issue with manifests in ONNX tests
This commit is contained in:
Ilya Lavrenov 2023-09-25 17:00:30 +04:00 committed by GitHub
parent 6d3f94762e
commit 85145cd60c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 344 additions and 341 deletions

View File

@ -40,20 +40,16 @@ jobs:
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
CMAKE_BUILD_TYPE: 'Release'
CMAKE_GENERATOR: 'Ninja'
CMAKE_GENERATOR: 'Ninja Multi-Config'
CMAKE_CXX_COMPILER_LAUNCHER: ccache
CMAKE_C_COMPILER_LAUNCHER: ccache
GITHUB_WORKSPACE: '/__w/openvino/openvino'
OPENVINO_REPO: /__w/openvino/openvino/openvino
OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib
INSTALL_DIR: /__w/openvino/openvino/install
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests
SAMPLES_INSTALL_DIR: /__w/openvino/openvino/install/samples
LAYER_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/layer_tests
MODEL_HUB_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/model_hub_tests
BUILD_DIR: /__w/openvino/openvino/build
OV_TEMP: /__w/openvino/openvino/openvino_temp
PYTHON_STATIC_ARGS: -m "not dynamic_library"
INSTALL_DIR: /__w/openvino/openvino/openvino_install
INSTALL_TEST_DIR: /__w/openvino/openvino/tests_install
BUILD_DIR: /__w/openvino/openvino/openvino_build
OPENVINO_CONTRIB_BUILD_DIR: /__w/openvino/openvino/openvino_contrib_build
CCACHE_DIR: /mount/caches/ccache/ubuntu20_x86_64_Release
CCACHE_TEMPDIR: /__w/openvino/openvino/ccache_temp
CCACHE_MAXSIZE: 50G
@ -61,7 +57,7 @@ jobs:
- name: Install git
run: |
apt-get update
apt-get install -y git git-lfs
apt-get install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
@ -83,10 +79,12 @@ jobs:
- name: Install build dependencies
run: |
bash ${OPENVINO_REPO}/install_build_dependencies.sh
apt update
apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers
# openjdk-11-jdk - Java API
# libssl1.1 - 'python3 -m pip' in self-hosted runner
# unzip - to download ninja
apt install --assume-yes --no-install-recommends openjdk-11-jdk libssl1.1 unzip
wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip
wget https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip
unzip ninja-linux.zip
cp -v ninja /usr/local/bin/
@ -96,14 +94,9 @@ jobs:
- name: Install python dependencies
run: |
# For Python API
python3 -m pip install --upgrade pip
python3 -m pip install Scons
# For Python API: build and wheel packaging
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/requirements.txt
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/requirements_test.txt
# For running Python API tests
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt
# For running ONNX frontend unit tests
@ -112,18 +105,12 @@ jobs:
# For running TensorFlow frontend unit tests
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow/tests/requirements.txt
# For running TensorFlow Lite frontend unit tests
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow_lite/tests/requirements.txt
# For running Paddle frontend unit tests
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/paddle/tests/requirements.txt
- name: Install MO dependencies
run: |
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_mxnet.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_caffe.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_kaldi.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_onnx.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_tf2.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_dev.txt
#
# Build
#
@ -132,127 +119,66 @@ jobs:
run: |
mkdir -p $CCACHE_DIR
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v2
id: cpu-cores
- name: CMake configure
- name: CMake configure - OpenVINO
run: |
cmake \
-GNinja \
-G "${{ env.CMAKE_GENERATOR }}" \
-DENABLE_CPPLINT=OFF \
-DENABLE_NCC_STYLE=OFF \
-DENABLE_TESTS=ON \
-DENABLE_PYTHON=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DENABLE_ONEDNN_FOR_GPU=OFF \
-DENABLE_OV_ONNX_FRONTEND=ON \
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \
-DENABLE_STRICT_DEPENDENCIES=OFF \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DENABLE_SYSTEM_SNAPPY=ON \
-DENABLE_SYSTEM_TBB=ON \
-DENABLE_SYSTEM_OPENCL=ON \
-DENABLE_SYSTEM_PUGIXML=ON \
-DBUILD_nvidia_plugin=OFF \
-DENABLE_DEBUG_CAPS=ON \
-DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \
-DOPENVINO_EXTRA_MODULES=${OPENVINO_CONTRIB_REPO}/modules \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} \
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \
-S ${OPENVINO_REPO} \
-B ${BUILD_DIR}
- name: Clean ccache stats
run: ccache --zero-stats --show-config
- name: Build
run: cmake --build ${BUILD_DIR} --parallel ${{ steps.cpu-cores.outputs.count }} --config Release
- name: Cmake build - OpenVINO
run: cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }}
- name: Cmake & Build - OpenVINO Contrib
if: ${{ 'false' }}
run: |
cmake \
-G "${{ env.CMAKE_GENERATOR }}" \
-DBUILD_nvidia_plugin=OFF \
-DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \
-DOpenVINODeveloperPackage_DIR=${BUILD_DIR} \
-S ${OPENVINO_CONTRIB_REPO}/modules \
-B ${OPENVINO_CONTRIB_BUILD_DIR}
cmake --build ${OPENVINO_CONTRIB_BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }}
- name: Show ccache stats
run: ccache --show-stats
- name: Cmake Layer Tests
run: cmake -GNinja -S ${OPENVINO_REPO}/tests/layer_tests -B ${BUILD_DIR}/layer_tests
- name: Cmake Model Hub Tests
run: cmake -GNinja -S ${OPENVINO_REPO}/tests/model_hub_tests -B ${BUILD_DIR}/model_hub_tests
- name: Build Layer Tests
run: cmake --build ${BUILD_DIR}/layer_tests --parallel --config Release
- name: Build Model Hub Tests
run: cmake --build ${BUILD_DIR}/model_hub_tests --parallel --config Release
- name: Install wheel packages
run: cmake -DCOMPONENT=python_wheels -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake
- name: Install Layer Tests
run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/layer_tests/cmake_install.cmake
- name: Install Model Hub Tests
run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/model_hub_tests/cmake_install.cmake
- name: Install python wheels
run: python3 -m pip install openvino-dev --find-links=${INSTALL_DIR}/tools
- name: Install tests
run: cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCOMPONENT=tests -P ${BUILD_DIR}/cmake_install.cmake
- name: Install OpenVINO
run: cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake
- name: CMake Samples Tests
run: cmake -GNinja -S ${OPENVINO_REPO}/tests/samples_tests -B ${BUILD_DIR}/samples_tests
- name: Build Samples Tests
run: cmake --build ${BUILD_DIR}/samples_tests --config Release
- name: Install Samples Tests
run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/samples_tests/cmake_install.cmake
- name: Cmake install - OpenVINO
run: |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_TEST_DIR} -DCOMPONENT=tests -P ${BUILD_DIR}/cmake_install.cmake
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCOMPONENT=python_wheels -P ${BUILD_DIR}/cmake_install.cmake
- name: Pack Artifacts
run: |
pushd ${INSTALL_DIR}
tar -czvf ${BUILD_DIR}/openvino_package.tar.gz --exclude=tests *
tar -czvf ${BUILD_DIR}/openvino_package.tar.gz *
popd
pushd ${INSTALL_DIR}
tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz tests/
pushd ${INSTALL_TEST_DIR}
tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz *
popd
- name: Build cpp samples
run: ${SAMPLES_INSTALL_DIR}/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples
- name: Build c samples
run: ${SAMPLES_INSTALL_DIR}/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples
#
# Tests
#
- name: Samples tests
run: |
export WORKSPACE=${INSTALL_DIR}
export IE_APP_PATH=${INSTALL_DIR}/samples_bin
export IE_APP_PYTHON_PATH=${INSTALL_DIR}/samples/python
export SHARE=${INSTALL_TEST_DIR}/smoke_tests/samples_smoke_tests_data
python3 -m pip install --ignore-installed PyYAML -r ${INSTALL_TEST_DIR}/smoke_tests/requirements.txt
export LD_LIBRARY_PATH=${IE_APP_PATH}:$LD_LIBRARY_PATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest -sv ${INSTALL_TEST_DIR}/smoke_tests \
--env_conf ${INSTALL_TEST_DIR}/smoke_tests/env_config.yml \
--junitxml=${INSTALL_TEST_DIR}/TEST-SamplesSmokeTests.xml
# Present in the "Build" job due to the fact that these tests require build directory
- name: ONNX frontend tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ONNXFrontend.xml
#
# Upload build artifacts
#
@ -273,35 +199,28 @@ jobs:
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
if-no-files-found: 'error'
CXX_Unit_Tests:
Samples:
needs: Build
defaults:
run:
shell: bash
runs-on: aks-linux-4-cores
runs-on: ubuntu-20.04
container:
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04
volumes:
- /mount/caches:/mount/caches
image: ubuntu:20.04
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
INSTALL_DIR: /__w/openvino/openvino/install
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests
BUILD_DIR: /__w/openvino/openvino/build
steps:
- name: Create Directories
run: |
mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR}
run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR}
#
# Dependencies
# Initialize OpenVINO
#
- name: Install dependencies
run: |
apt update
apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers libsnappy-dev
- name: Download OpenVINO package
uses: actions/download-artifact@v3
with:
@ -323,6 +242,107 @@ jobs:
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1
popd
- name: Install 'actions/setup-python@v4' dependencies
run: apt-get update && apt-get install -y libssl1.1
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install OpenVINO dependencies
run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y
- name: Build cpp samples - GCC
run: ${INSTALL_DIR}/samples/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples
env:
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
- name: Build cpp samples - Clang
run: |
apt-get install -y clang
${INSTALL_DIR}/samples/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples_clang
env:
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
CC: clang
CXX: clang++
- name: Build c samples
run: ${INSTALL_DIR}/samples/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples
env:
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
#
# Tests
#
- name: Samples tests
run: |
export WORKSPACE=${INSTALL_DIR}
export IE_APP_PATH=${INSTALL_DIR}/samples_bin
export IE_APP_PYTHON_PATH=${INSTALL_DIR}/samples/python
export SHARE=${INSTALL_TEST_DIR}/smoke_tests/samples_smoke_tests_data
python3 -m pip install --ignore-installed PyYAML -r ${INSTALL_TEST_DIR}/smoke_tests/requirements.txt
export LD_LIBRARY_PATH=${IE_APP_PATH}:$LD_LIBRARY_PATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest -sv ${INSTALL_TEST_DIR}/smoke_tests \
--env_conf ${INSTALL_TEST_DIR}/smoke_tests/env_config.yml \
--junitxml=${INSTALL_TEST_DIR}/TEST-SamplesSmokeTests.xml
- name: Upload Test Results
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: test-results-cpp
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml
if-no-files-found: 'error'
CXX_Unit_Tests:
needs: Build
defaults:
run:
shell: bash
runs-on: aks-linux-4-cores
container:
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04
env:
INSTALL_DIR: /__w/openvino/openvino/install
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests
steps:
- name: Create Directories
run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR}
#
# Initialize OpenVINO
#
- name: Download OpenVINO package
uses: actions/download-artifact@v3
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Download OpenVINO tests package
uses: actions/download-artifact@v3
with:
name: openvino_tests
path: ${{ env.INSTALL_TEST_DIR }}
- name: Extract OpenVINO packages
run: |
pushd ${INSTALL_DIR}
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} && rm openvino_package.tar.gz || exit 1
popd
pushd ${INSTALL_TEST_DIR}
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1
popd
- name: Install OpenVINO dependencies
run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -c=gpu -y
#
# Tests
#
@ -370,14 +390,14 @@ jobs:
# ${INSTALL_TEST_DIR}/paddle_tests --gtest_print_time=1 --gtest_filter=*smoke* \
# --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-PaddleTests.xml
# Present in the "Build" job as these tests require build directory
# - name: ONNX frontend tests
# run: |
# source ${INSTALL_DIR}/setupvars.sh
# ${INSTALL_TEST_DIR}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \
# --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ONNXFrontend.xml
- name: ONNX frontend tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_onnx_frontend_tests --gtest_print_time=1 \
--gtest_filter=-*IE_GPU* \
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ONNXFrontend.xml
- name: TensorFlow Common tests
- name: TensorFlow Common frontend tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_tensorflow_common_tests --gtest_print_time=1 \
@ -395,7 +415,7 @@ jobs:
${INSTALL_TEST_DIR}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 \
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowLiteFrontend.xml
- name: Transformations Tests
- name: Transformations func tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_transformations_tests --gtest_print_time=1 \
@ -419,20 +439,13 @@ jobs:
${INSTALL_TEST_DIR}/ov_cpu_unit_tests --gtest_print_time=1 \
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-CPUUnitTests.xml
# Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L409
# - name: GNA plugin unit tests
# run: |
# source ${INSTALL_DIR}/setupvars.sh
# ${INSTALL_TEST_DIR}/ov_gna_unit_tests --gtest_print_time=1 \
# --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-GNAUnitTests.xml
- name: AUTO UT
- name: AUTO unit tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_auto_unit_tests --gtest_print_time=1 \
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_unit_tests.xml
- name: Template plugin tests
- name: Template plugin func tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_template_func_tests --gtest_print_time=1 \
@ -451,22 +464,22 @@ jobs:
${INSTALL_TEST_DIR}/ov_capi_test --gtest_print_time=1 \
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpenVINOCAPITests.xml
- name: AutoBatch FuncTests
- name: AutoBatch func tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_auto_batch_func_tests --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_batch_func_tests.xml
- name: Proxy Plugin Tests
- name: Proxy Plugin func tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_proxy_plugin_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVProxyTests.xml
- name: Hetero Unit Tests
- name: Hetero unit tests
run: |
source ${{ env.INSTALL_DIR }}/setupvars.sh
${{ env.INSTALL_TEST_DIR }}/ov_hetero_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroUnitTests.xml
- name: Hetero Func Tests
- name: Hetero func tests
run: |
source ${INSTALL_DIR}/setupvars.sh
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml
@ -487,29 +500,20 @@ jobs:
runs-on: aks-linux-4-cores
container:
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04
volumes:
- /mount/caches:/mount/caches
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
OPENVINO_REPO: /__w/openvino/openvino/openvino
OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib
INSTALL_DIR: /__w/openvino/openvino/install
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests
SAMPLES_INSTALL_DIR: /__w/openvino/openvino/install/samples
LAYER_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/layer_tests
MODEL_HUB_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/model_hub_tests
OV_TEMP: /__w/openvino/openvino/openvino_temp
PYTHON_STATIC_ARGS: -m "not dynamic_library"
steps:
- name: Create Directories
run: |
mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR}
run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR}
- name: Install git
run: |
apt update
apt --assume-yes install git git-lfs
apt install --assume-yes --no-install-recommends git ca-certificates
- name: Clone OpenVINO
uses: actions/checkout@v4
@ -517,47 +521,19 @@ jobs:
path: 'openvino'
#
# Dependencies
# Initilaize OpenVINO
#
- name: Install dependencies
run: |
apt update
apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers libsnappy-dev
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install python dependencies
- name: Install Python API tests dependencies
run: |
# For Python API
python3 -m pip install --upgrade pip
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/requirements.txt
# For running Python API tests
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt
# For running ONNX frontend unit tests
python3 -m pip install --force-reinstall -r ${OPENVINO_REPO}/src/frontends/onnx/tests/requirements.txt
# For running TensorFlow frontend unit tests
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow/tests/requirements.txt
# For running Paddle frontend unit tests
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/paddle/tests/requirements.txt
# For torchvision to OpenVINO preprocessing converter
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/openvino/preprocess/torchvision/requirements.txt
- name: Install MO dependencies
run: |
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_mxnet.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_caffe.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_kaldi.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_onnx.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_tf2.txt
# TODO: replace with Python API tests requirements
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_dev.txt
- name: Download OpenVINO package
@ -582,53 +558,46 @@ jobs:
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1
popd
- name: Install Python wheels
run: |
python3 -m pip install openvino-dev --find-links=${INSTALL_DIR}/tools
- name: Install OpenVINO Python wheels
run: python3 -m pip install openvino-dev[mxnet,caffe,kaldi,onnx,tensorflow2] --find-links=${INSTALL_DIR}/tools
#
# Tests
#
- name: nGraph and IE Python Bindings Tests
run: |
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest -s ${INSTALL_TEST_DIR}/pyngraph ${{ env.PYTHON_STATIC_ARGS }} \
python3 -m pytest -s ${INSTALL_TEST_DIR}/pyngraph \
--junitxml=${INSTALL_TEST_DIR}/TEST-Pyngraph.xml \
--ignore=${INSTALL_TEST_DIR}/pyngraph/tests/test_onnx/test_zoo_models.py \
--ignore=${INSTALL_TEST_DIR}/pyngraph/tests/test_onnx/test_backend.py
- name: Python API 2.0 Tests
run: |
# For python imports to import pybind_mock_frontend
# For python imports to import 'pybind_mock_frontend'
export PYTHONPATH=${INSTALL_TEST_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
# for 'template' extension
export LD_LIBRARY_PATH=${INSTALL_TEST_DIR}:$LD_LIBRARY_PATH
python3 -m pytest -sv ${INSTALL_TEST_DIR}/pyopenvino ${{ env.PYTHON_STATIC_ARGS }} \
python3 -m pytest -sv ${INSTALL_TEST_DIR}/pyopenvino \
--junitxml=${INSTALL_TEST_DIR}/TEST-Pyngraph.xml \
--ignore=${INSTALL_TEST_DIR}/pyopenvino/tests/test_utils/test_utils.py \
--ignore=${INSTALL_TEST_DIR}/pyopenvino/tests/test_onnx/test_zoo_models.py \
--ignore=${INSTALL_TEST_DIR}/pyopenvino/tests/test_onnx/test_backend.py
- name: Python API snippets
- name: Docs Python snippets
run: |
source ${INSTALL_DIR}/setupvars.sh
export PYTHONPATH=${INSTALL_TEST_DIR}:${OPENVINO_REPO}/docs/:$PYTHONPATH
# to find 'snippets' module in docs
export PYTHONPATH=${OPENVINO_REPO}/docs/:$PYTHONPATH
# for 'template' extension
export LD_LIBRARY_PATH=${INSTALL_TEST_DIR}:$LD_LIBRARY_PATH
python3 ${OPENVINO_REPO}/docs/snippets/main.py
- name: Model Optimizer UT
- name: Model Optimizer unit tests
run: |
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:${INSTALL_TEST_DIR}:${INSTALL_DIR}/python/python3.11:$PYTHONPATH
# TODO: figure out why they need to be reinstalled
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_mxnet.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_caffe.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_kaldi.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_onnx.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_tf2.txt
python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_dev.txt
source ${INSTALL_DIR}/setupvars.sh
export PYTHONPATH=${INSTALL_TEST_DIR}:$PYTHONPATH
# required for MxNet
apt-get install -y libgomp1 libquadmath0
python3 -m pytest -s ${INSTALL_TEST_DIR}/mo/unit_tests \
--junitxml=${INSTALL_TEST_DIR}/TEST-ModelOptimizer.xml
@ -636,8 +605,7 @@ jobs:
- name: PyTorch Layer Tests
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
export PYTHONPATH=${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/pytorch_tests -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-pytorch.xml
env:
@ -647,11 +615,8 @@ jobs:
- name: TensorFlow 1 Layer Tests - TF FE
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf_fe.xml
env:
TEST_DEVICE: CPU
@ -662,8 +627,6 @@ jobs:
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_fe.xml
env:
TEST_DEVICE: CPU
@ -674,8 +637,6 @@ jobs:
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/jax_tests/ -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-jax.xml
env:
TEST_DEVICE: CPU
@ -684,7 +645,6 @@ jobs:
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/test_tf_Roll.py --ir_version=10 --junitxml=${INSTALL_TEST_DIR}/TEST-tf_Roll.xml
@ -692,7 +652,6 @@ jobs:
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/test_tf2_keras_activation.py \
--ir_version=11 --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_Activation.xml -k "sigmoid"
@ -704,7 +663,6 @@ jobs:
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_lite_tests/ --junitxml=${INSTALL_TEST_DIR}/TEST-tfl_fe.xml
env:
@ -714,8 +672,10 @@ jobs:
- name: MO Python API Tests
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
export PYTHONPATH=${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
# TODO: remove setupvars.sh from here; currently, it's used for 'test_utils' installed in '<package>/python/openvino'
source ${INSTALL_DIR}/setupvars.sh
bash ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/mo_python_api_tests --junitxml=${INSTALL_TEST_DIR}/TEST-test_mo_convert.xml
env:
@ -726,15 +686,15 @@ jobs:
run: |
python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt
export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH
# to allow 'libtest_builtin_extensions.so' to find 'libopenvino_onnx_frontend.so'
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/py_frontend_tests --junitxml=${INSTALL_TEST_DIR}/TEST-test_py_fontend.xml
- name: Conversion UT
- name: OVC unit tests
run: |
# For python imports to import pybind_mock_frontend
# For python imports to import 'pybind_mock_frontend'
export PYTHONPATH=${INSTALL_TEST_DIR}:$PYTHONPATH
source ${INSTALL_DIR}/setupvars.sh
python3 -m pytest -s ${OPENVINO_REPO}/tools/ovc/unit_tests --junitxml=${INSTALL_TEST_DIR}/TEST-OpenVinoConversion.xml
@ -756,10 +716,7 @@ jobs:
runs-on: aks-linux-4-cores
container:
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04
volumes:
- /mount/caches:/mount/caches
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
INSTALL_DIR: /__w/openvino/openvino/install
INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests
PARALLEL_TEST_SCRIPT: /__w/openvino/openvino/install/tests/functional_test_utils/run_parallel.py
@ -769,11 +726,6 @@ jobs:
- name: Create Directories
run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR}
- name: Install dependencies
run: |
apt update
apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers libsnappy-dev
- name: Download OpenVINO package
uses: actions/download-artifact@v3
with:
@ -795,14 +747,18 @@ jobs:
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1
popd
- name: Install OpenVINO dependencies
run: bash ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y
- name: Install 'actions/setup-python@v4' dependencies
run: apt-get update && apt-get install -y libssl1.1
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install python dependencies
run: |
python3 -m pip install --upgrade pip
python3 -m pip install -r ${INSTALL_TEST_DIR}/functional_test_utils/requirements.txt
- name: Install python dependencies for run_parallel.py
run: python3 -m pip install -r ${INSTALL_TEST_DIR}/functional_test_utils/requirements.txt
- name: Restore tests execution time
uses: actions/cache/restore@v3
@ -852,8 +808,7 @@ jobs:
steps:
- name: Create Directories
run: |
mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }}
run: mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }}
- uses: actions/setup-python@v4
with:
@ -881,16 +836,17 @@ jobs:
tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz || exit 1
popd
- name: Install Python wheels
- name: Install OpenVINO Python wheels
run: |
python3 -m pip install openvino --find-links=${{ env.INSTALL_DIR }}/tools
- name: TensorFlow Hub Tests - TF FE
- name: Install TF Hub tests requirements
run: |
python3 -m pip install -r ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/tf_hub_tests/requirements.txt
- name: TensorFlow Hub Tests - TF FE
run: |
export PYTHONPATH=${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}:$PYTHONPATH
python3 -m pytest ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/tf_hub_tests/ -m ${{ env.TYPE }} --html=${{ env.INSTALL_TEST_DIR }}/TEST-tf_hub_tf_fe.html --self-contained-html
env:
TYPE: ${{ github.event_name == 'schedule' && 'nightly' || 'precommit'}}
@ -912,7 +868,6 @@ jobs:
shell: bash
runs-on: ${{ github.event_name == 'schedule' && 'ubuntu-20.04-8-cores' || 'ubuntu-20.04'}}
env:
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
INSTALL_DIR: ${{ github.workspace }}/install
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests
@ -925,9 +880,10 @@ jobs:
sudo rm -rf /opt/ghc
echo "Available storage:"
df -h
- name: Create Directories
run: |
mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }}
run: mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }}
- uses: actions/setup-python@v4
with:
python-version: '3.11'
@ -956,7 +912,7 @@ jobs:
run: |
python3 -m pip install openvino --find-links=${{ env.INSTALL_DIR }}/tools
- name: Install requirements
- name: Install PyTorch tests requirements
run: |
python3 -m pip install -r ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/torch_tests/requirements.txt
python3 -m pip install -r ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/torch_tests/requirements_secondary.txt
@ -964,6 +920,7 @@ jobs:
echo "Available storage:"
df -h
du -h -d0 ~/.cache ~/*
- name: PyTorch Models Tests
run: |
export PYTHONPATH=${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}:$PYTHONPATH
@ -973,7 +930,7 @@ jobs:
TEST_DEVICE: CPU
- name: Available storage after tests
run: |
run: |
echo "Available storage:"
df -h
du -h -d0 ~/.cache ~/*

View File

@ -263,7 +263,7 @@ jobs:
- name: ONNX frontend tests
run: |
export LD_LIBRARY_PATH=${{ env.INSTALL_TEST_DIR }}:$LD_LIBRARY_PATH
${{ env.INSTALL_TEST_DIR }}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \
${{ env.INSTALL_TEST_DIR }}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* \
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ONNXFrontend.xml
- name: TensorFlow frontend tests

View File

@ -123,7 +123,7 @@ function(openvino_developer_export_targets)
endfunction()
# add target with processed tests model zoo
if (ENABLE_TESTS)
if(ENABLE_TESTS)
include(cmake/test_model_zoo.cmake)
endif()
@ -135,15 +135,21 @@ if(ENABLE_SAMPLES OR ENABLE_TESTS)
endif()
# Enable interpreter backend for tests
if (ENABLE_TESTS OR ENABLE_TEMPLATE)
if(ENABLE_TESTS OR ENABLE_TEMPLATE)
add_subdirectory(src/plugins/template/backend)
endif()
include(cmake/extra_modules.cmake)
add_subdirectory(docs)
add_subdirectory(tools)
add_subdirectory(scripts)
add_subdirectory(licensing)
if(ENABLE_TESTS)
# layers and other more high-level / e2e tests
add_subdirectory(tests)
endif()
#
# CPack
#

View File

@ -72,23 +72,23 @@ function(ov_model_convert SRC DST OUT)
endfunction()
if(OV_GENERATOR_MULTI_CONFIG AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.20)
set(test_model_zoo_output_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>/test_model_zoo")
set(TEST_MODEL_ZOO_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>/test_model_zoo" CACHE PATH "")
else()
set(test_model_zoo_output_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo")
set(TEST_MODEL_ZOO_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo" CACHE PATH "")
endif()
ov_model_convert("${CMAKE_CURRENT_SOURCE_DIR}/src/core/tests"
"${test_model_zoo_output_dir}/core"
"${TEST_MODEL_ZOO_OUTPUT_DIR}/core"
core_tests_out_files)
set(rel_path "src/tests/functional/plugin/shared/models")
ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}"
"${test_model_zoo_output_dir}/func_tests/models"
"${TEST_MODEL_ZOO_OUTPUT_DIR}/func_tests/models"
ft_out_files)
set(rel_path "src/frontends/onnx/tests/models")
ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}"
"${test_model_zoo_output_dir}/onnx"
"${TEST_MODEL_ZOO_OUTPUT_DIR}/onnx"
onnx_fe_out_files)
if(ENABLE_TESTS)
@ -101,7 +101,7 @@ if(ENABLE_TESTS)
# add_dependencies(test_model_zoo paddle_test_models)
#endif()
install(DIRECTORY "${test_model_zoo_output_dir}"
install(DIRECTORY "${TEST_MODEL_ZOO_OUTPUT_DIR}"
DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL)
set(TEST_MODEL_ZOO "./test_model_zoo" CACHE PATH "Path to test model zoo")

View File

@ -7,12 +7,17 @@ import openvino as ov
from snippets import get_model
model = get_model()
def main():
model = get_model()
# TODO: no GNA properties to replace strings
#! [ov_gna_exec_mode_hw_with_sw_fback]
core = ov.Core()
compiled_model = core.compile_model(
model, device_name="GNA", config={"GNA_DEVICE_MODE": "GNA_HW_WITH_SW_FBACK"}
)
#! [ov_gna_exec_mode_hw_with_sw_fback]
core = ov.Core()
if "GNA" not in core.available_devices:
return 0
# TODO: no GNA properties to replace strings
#! [ov_gna_exec_mode_hw_with_sw_fback]
core = ov.Core()
compiled_model = core.compile_model(
model, device_name="GNA", config={"GNA_DEVICE_MODE": "GNA_HW_WITH_SW_FBACK"}
)
#! [ov_gna_exec_mode_hw_with_sw_fback]

View File

@ -8,20 +8,24 @@ from io import BytesIO
from snippets import get_model
model = get_model()
blob_path = "compiled_model.blob"
def main():
model = get_model()
blob_path = "compiled_model.blob"
core = ov.Core()
compiled_model = core.compile_model(model, device_name="GNA")
core = ov.Core()
if "GNA" not in core.available_devices:
return 0
#! [ov_gna_export]
user_stream = compiled_model.export_model()
with open(blob_path, "wb") as f:
f.write(user_stream)
#! [ov_gna_export]
compiled_model = core.compile_model(model, device_name="GNA")
# [ov_gna_import]
with open(blob_path, "rb") as f:
buf = BytesIO(f.read())
compiled_model = core.import_model(buf, device_name="GNA")
# [ov_gna_import]
#! [ov_gna_export]
user_stream = compiled_model.export_model()
with open(blob_path, "wb") as f:
f.write(user_stream)
#! [ov_gna_export]
# [ov_gna_import]
with open(blob_path, "rb") as f:
buf = BytesIO(f.read())
compiled_model = core.import_model(buf, device_name="GNA")
# [ov_gna_import]

View File

@ -7,22 +7,27 @@ import openvino as ov
from snippets import get_path_to_model
batch_size = 8
model_path = get_path_to_model([1, 32])
def main():
batch_size = 8
model_path = get_path_to_model([1, 32])
#! [ov_gna_read_model]
core = ov.Core()
model = core.read_model(model=model_path)
#! [ov_gna_read_model]
core = ov.Core()
if "GNA" not in core.available_devices:
return 0
#! [ov_gna_set_nc_layout]
ppp = ov.preprocess.PrePostProcessor(model)
for i in range(len(model.inputs)):
input_name = model.input(i).get_any_name()
ppp.input(i).model().set_layout("N?")
model = ppp.build()
#! [ov_gna_set_nc_layout]
#! [ov_gna_read_model]
core = ov.Core()
model = core.read_model(model=model_path)
#! [ov_gna_read_model]
#! [ov_gna_set_batch_size]
ov.set_batch(model, batch_size)
#! [ov_gna_set_batch_size]
#! [ov_gna_set_nc_layout]
ppp = ov.preprocess.PrePostProcessor(model)
for i in range(len(model.inputs)):
input_name = model.input(i).get_any_name()
ppp.input(i).model().set_layout("N?")
model = ppp.build()
#! [ov_gna_set_nc_layout]
#! [ov_gna_set_batch_size]
ov.set_batch(model, batch_size)
#! [ov_gna_set_batch_size]

View File

@ -7,7 +7,7 @@ import openvino as ov
import openvino.properties as props
device_name = 'GNA'
device_name = 'CPU'
model_path = get_path_to_model()
path_to_cache_dir = get_temp_dir()
# ! [ov:caching:part0]

View File

@ -6,6 +6,8 @@ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE OFF)
ov_try_use_gold_linker()
ov_deprecated_no_errors()
message(STATUS "ONNX frontend test enabled")
add_compile_definitions(
@ -13,7 +15,7 @@ add_compile_definitions(
ONNX_MODELS_DIR="${TEST_MODEL_ZOO}/onnx"
ONNX_TEST_MODELS="${TEST_MODEL_ZOO}/onnx/"
TEST_ONNX_MODELS_DIRNAME="${TEST_MODEL_ZOO}/onnx/"
MANIFEST="${CMAKE_CURRENT_SOURCE_DIR}/unit_test.manifest"
MANIFEST="${TEST_MODEL_ZOO}/onnx/unit_test.manifest"
SERIALIZED_ZOO="${TEST_MODEL_ZOO}")
list(APPEND ONNX_TESTS_DEPENDENCIES openvino_template_extension)
@ -102,12 +104,18 @@ foreach(src IN LISTS SRC MULTI_TEST_SRC)
endforeach()
ov_add_clang_format_target(ov_onnx_frontend_tests_clang FOR_SOURCES ${full_src_names})
foreach(BACKEND_NAME ${ACTIVE_BACKEND_LIST})
foreach(BACKEND_NAME IN LISTS ACTIVE_BACKEND_LIST)
string(TOLOWER ${BACKEND_NAME} BACKEND_DIR)
string(REGEX REPLACE "([a-z0-9]+):(.*)" "\\1" BACKEND_DIR ${BACKEND_DIR})
set(MANIFEST ${CMAKE_CURRENT_SOURCE_DIR}/runtime/${BACKEND_DIR}/unit_test.manifest)
set(SRC_MANIFEST ${CMAKE_CURRENT_SOURCE_DIR}/runtime/${BACKEND_DIR}/unit_test.manifest)
set(MANIFEST_RENAME "${BACKEND_DIR}_unit_test.manifest")
set(MANIFEST "${TEST_MODEL_ZOO}/onnx/${MANIFEST_RENAME}")
foreach(TEST_SRC ${MULTI_TEST_SRC})
list(APPEND custom_commands
COMMAND ${CMAKE_COMMAND} -E copy "${SRC_MANIFEST}"
"${TEST_MODEL_ZOO_OUTPUT_DIR}/onnx/${MANIFEST_RENAME}")
foreach(TEST_SRC IN LISTS MULTI_TEST_SRC)
string(REPLACE ":" "_" BACKEND_NAME ${BACKEND_NAME})
string(REPLACE ".in." "_${BACKEND_NAME}." TARGET_NAME ${TEST_SRC})
configure_file(${TEST_SRC} ${TARGET_NAME})
@ -123,7 +131,7 @@ set_property(TEST ov_onnx_frontend_tests PROPERTY LABELS OV ONNX_FE)
add_dependencies(ov_onnx_frontend_tests template_extension)
target_include_directories(ov_onnx_frontend_tests PRIVATE ".")
target_include_directories(ov_onnx_frontend_tests PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
target_compile_definitions(ov_onnx_frontend_tests
PRIVATE
@ -158,9 +166,13 @@ target_include_directories(ov_onnx_frontend_tests PRIVATE
$<TARGET_PROPERTY:openvino_onnx_frontend,INCLUDE_DIRECTORIES>)
install(TARGETS ov_onnx_frontend_tests
RUNTIME DESTINATION tests
COMPONENT tests
EXCLUDE_FROM_ALL)
RUNTIME DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL)
add_custom_command(TARGET ov_onnx_frontend_tests POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/unit_test.manifest"
"${TEST_MODEL_ZOO_OUTPUT_DIR}/onnx/unit_test.manifest"
${custom_commands}
COMMENT "Copy test manifest files to ${TEST_MODEL_ZOO}/onnx")
# process models
add_dependencies(ov_onnx_frontend_tests test_model_zoo)

View File

@ -23,7 +23,7 @@ using namespace ov;
using namespace ov::onnx_editor;
using namespace ngraph::test;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
namespace {
using InputTypePred = std::function<bool(const std::shared_ptr<ngraph::Node>)>;

View File

@ -16,7 +16,7 @@ using namespace ov;
using namespace ov::onnx_editor;
using namespace ngraph::test;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
OPENVINO_TEST(onnx_editor, topological_sort_two_nodes_swap) {
ONNXModelEditor editor{ov::util::path_join({ov::test::utils::getExecutableDirectory(),

View File

@ -47,7 +47,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START
using namespace ngraph;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), MANIFEST);
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
using Inputs = std::vector<std::vector<float>>;

View File

@ -25,7 +25,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START
using namespace ngraph;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
OPENVINO_TEST(${BACKEND_NAME}, onnx_model_bias_gelu) {

View File

@ -21,7 +21,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START
using namespace ngraph;
using namespace ngraph::onnx_import;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
namespace {
template <typename T>

View File

@ -20,7 +20,7 @@ using namespace ngraph::onnx_import;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
// ~~~~~~~~TERMINATION CONDITION/TRIP COUNT COMBINATIONS TESTS:~~~~~~~~

View File

@ -29,7 +29,7 @@ using namespace ngraph;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
using Inputs = std::vector<std::vector<float>>;

View File

@ -29,7 +29,7 @@ using namespace ngraph;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
OPENVINO_TEST(${BACKEND_NAME}, onnx_model_affine) {

View File

@ -31,7 +31,7 @@ using namespace ngraph::onnx_import;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
OPENVINO_TEST(${BACKEND_NAME}, onnx_dyn_shapes_onnx_dynamic_dims_to_ngraph_dynamic_dims) {

View File

@ -4,10 +4,12 @@
#include <onnx/onnx_pb.h>
#include "common_test_utils/file_utils.hpp"
#include "common_test_utils/test_control.hpp"
#include "gtest/gtest.h"
#include "ngraph/file_util.hpp"
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
OPENVINO_TEST(onnx, check_ir_version_support) {
// It appears you've changed the ONNX library version used by nGraph. Please update the value

View File

@ -44,7 +44,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START
using namespace ngraph;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
using Inputs = std::vector<std::vector<float>>;

View File

@ -25,7 +25,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START
using namespace ngraph;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
OPENVINO_TEST(${BACKEND_NAME}, onnx_model_adaptive_avg_pooling2d_nchw) {

View File

@ -29,7 +29,7 @@
using namespace ngraph;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
using Inputs = std::vector<std::vector<float>>;

View File

@ -28,7 +28,7 @@ using namespace ngraph;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
using Inputs = std::vector<std::vector<float>>;

View File

@ -29,7 +29,7 @@
using namespace ngraph;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
// ONNX LSTM tests (implemented by nGraph LSTMCell and LSTMSequence)

View File

@ -26,7 +26,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START
using namespace ngraph;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
OPENVINO_TEST(${BACKEND_NAME}, onnx_model_dft) {

View File

@ -23,7 +23,7 @@
using namespace ngraph;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
// ############################################################################ CORE TESTS

View File

@ -19,7 +19,7 @@ using namespace ov;
using namespace ov::onnx_editor;
using namespace ngraph::test;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
OPENVINO_TEST(ops_registration, check_importing_abs_in_all_opset_versions) {
ONNXModelEditor editor{

View File

@ -15,7 +15,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START
using namespace ngraph;
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
using Inputs = std::vector<std::vector<float>>;
using Outputs = std::vector<std::vector<float>>;

View File

@ -21,7 +21,7 @@
using namespace ngraph;
OPENVINO_SUPPRESS_DEPRECATED_START
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
static std::string s_device = backend_name_to_device("${BACKEND_NAME}");
// is there any benefit of running below tests on different backends?

View File

@ -9,7 +9,7 @@
#include "ngraph/file_util.hpp"
#include "onnx_test_util.hpp"
static std::string s_manifest = "${MANIFEST}";
static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}");
NGRAPH_SUPPRESS_DEPRECATED_START

View File

@ -6,14 +6,19 @@
#include "gtest/gtest.h"
#include "utils.hpp"
#include "common_test_utils/file_utils.hpp"
static const std::string manifest{
#include "ngraph/file_util.hpp"
OPENVINO_SUPPRESS_DEPRECATED_START
static const std::string s_manifest{
#ifdef MANIFEST
MANIFEST
ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), MANIFEST)
#endif
};
OPENVINO_SUPPRESS_DEPRECATED_END
int main(int argc, char** argv) {
printf("Running main() from %s:%d\n", __FILE__, __LINE__);
return FrontEndTestUtils::run_tests(argc, argv, manifest);
return FrontEndTestUtils::run_tests(argc, argv, s_manifest);
}

7
tests/CMakeLists.txt Normal file
View File

@ -0,0 +1,7 @@
# Copyright (C) 2018-2023 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
add_subdirectory(layer_tests)
add_subdirectory(model_hub_tests)
add_subdirectory(samples_tests)

View File

@ -7,7 +7,7 @@ numpy
pytest
py
scikit-build
opencv-python
opencv-python-headless
progress
nibabel
scipy