Compare commits
166 Commits
dependabot
...
master
| Author | SHA1 | Date |
|---|---|---|
|
|
43de73cbd6 | |
|
|
1d226d4edc | |
|
|
0908908227 | |
|
|
4e6ee7f15e | |
|
|
f5c3fc3330 | |
|
|
8eaa65e026 | |
|
|
91b3977169 | |
|
|
00f4c99074 | |
|
|
5393b8a77a | |
|
|
deb5e63ff2 | |
|
|
395d6b7e09 | |
|
|
6e2286086f | |
|
|
1a5776e8ef | |
|
|
964c1e677b | |
|
|
ca34e4f07e | |
|
|
4be6025fae | |
|
|
73a2d13721 | |
|
|
9465604223 | |
|
|
29a4239707 | |
|
|
5291ecc11c | |
|
|
3f47ab6d73 | |
|
|
a9cceb31b2 | |
|
|
8646aff9e0 | |
|
|
79fc6bf79b | |
|
|
1863f58a82 | |
|
|
921e7c07b6 | |
|
|
90711b667a | |
|
|
72500f3e85 | |
|
|
bb75829a88 | |
|
|
1144a66a9b | |
|
|
aaa634874c | |
|
|
f5463512c6 | |
|
|
a42da25019 | |
|
|
6e67110da1 | |
|
|
f6e6f2af56 | |
|
|
45147aefa0 | |
|
|
beb37eb4e1 | |
|
|
d996280d5e | |
|
|
2893f2fc7c | |
|
|
ba5c45a4ee | |
|
|
bb179c69d1 | |
|
|
c542405470 | |
|
|
5faf95018d | |
|
|
852878162d | |
|
|
7f1ddd55ac | |
|
|
236e1062b2 | |
|
|
d286268a85 | |
|
|
faa19e6121 | |
|
|
00510e69fd | |
|
|
416c4ffb7e | |
|
|
0cc051debb | |
|
|
b8ced3dfc7 | |
|
|
4fcfaf24b3 | |
|
|
b9e1ef7486 | |
|
|
11ad74dcda | |
|
|
e922edf299 | |
|
|
b1bc59e72d | |
|
|
9d208241f0 | |
|
|
a156b69ccc | |
|
|
00d525f5a2 | |
|
|
13922e7515 | |
|
|
c87cf86489 | |
|
|
de4d00a597 | |
|
|
41d460f7ac | |
|
|
9e662351e8 | |
|
|
aa04a9bcfa | |
|
|
cf22524dcb | |
|
|
dd0846b8d5 | |
|
|
f952f73d6b | |
|
|
adb590d5f4 | |
|
|
c45a46edca | |
|
|
52d0a44d3f | |
|
|
65b5b8e1b7 | |
|
|
1a70c4002c | |
|
|
d954a80161 | |
|
|
a23c9d5b5a | |
|
|
1a6ddfff60 | |
|
|
f1862e4d20 | |
|
|
df6a25800d | |
|
|
ba8d6c5de5 | |
|
|
cea8e1f5e4 | |
|
|
142114ccbc | |
|
|
56d184dbb1 | |
|
|
f859992efe | |
|
|
3497133dc4 | |
|
|
fc0b82c1be | |
|
|
5a8d75d076 | |
|
|
5ea0e96fc2 | |
|
|
3ffac369f1 | |
|
|
ee0a025ca0 | |
|
|
b86fbf8951 | |
|
|
5f446b5ebb | |
|
|
33bbfd1883 | |
|
|
b669e232c8 | |
|
|
cf08511954 | |
|
|
2d0e0366f7 | |
|
|
5104769953 | |
|
|
817a835f0a | |
|
|
ce7db95d8a | |
|
|
a5e9737bab | |
|
|
10177bfb89 | |
|
|
522a3c6a7d | |
|
|
48f64b6086 | |
|
|
be5fd8b6d4 | |
|
|
830f56e343 | |
|
|
ed09df8adf | |
|
|
cb9c5216ab | |
|
|
bcd96048b3 | |
|
|
cfb5d4ee84 | |
|
|
45e219b450 | |
|
|
b16108df27 | |
|
|
8e0a646eed | |
|
|
ae01c973d5 | |
|
|
feb0c7eff0 | |
|
|
4dfca61bd2 | |
|
|
84cd71a71b | |
|
|
229ce5839b | |
|
|
2ec64af350 | |
|
|
3e3bea8985 | |
|
|
b66c43a11d | |
|
|
60b2068c36 | |
|
|
4b7deb2366 | |
|
|
485686dbbb | |
|
|
cbeac47383 | |
|
|
5f03621cfa | |
|
|
cc68c6f5e1 | |
|
|
eededc2a3a | |
|
|
1fe36a26c8 | |
|
|
31fccc801f | |
|
|
38ce1fff0f | |
|
|
8265a986d5 | |
|
|
4dde282a95 | |
|
|
e2b8bf4fc7 | |
|
|
0b349bffb5 | |
|
|
63a13d4931 | |
|
|
e6496dbbb8 | |
|
|
4cf2ae0192 | |
|
|
000b9f7058 | |
|
|
47415bcdf9 | |
|
|
0a1a233555 | |
|
|
c2c6fa7d1d | |
|
|
b0dfa6ac7f | |
|
|
9ce97d1560 | |
|
|
9732d4ac17 | |
|
|
94f287a051 | |
|
|
883211e483 | |
|
|
438f4dca84 | |
|
|
ebf43011d7 | |
|
|
afc7b8e4c9 | |
|
|
30d6e85505 | |
|
|
dc523beb3e | |
|
|
af88a206eb | |
|
|
00a95994aa | |
|
|
e91c8bc099 | |
|
|
72028b7bbc | |
|
|
0fe524bcbe | |
|
|
33c786cb2c | |
|
|
6de997ac4e | |
|
|
da360846ed | |
|
|
66093834e3 | |
|
|
8682e5e4c9 | |
|
|
0297faca9f | |
|
|
cfb05bf7e3 | |
|
|
87631e33d1 | |
|
|
cb85ddcb46 | |
|
|
17f8e86e5f |
|
|
@ -33258,7 +33258,7 @@ async function save() {
|
|||
|
||||
// remote cache directory may not be created yet
|
||||
if (!(await checkFileExists(cacheRemotePath))) {
|
||||
await fs.mkdir(cacheRemotePath);
|
||||
await fs.mkdir(cacheRemotePath, { recursive: true });
|
||||
}
|
||||
|
||||
core.info('Copying cache...');
|
||||
|
|
|
|||
|
|
@ -33258,7 +33258,7 @@ async function save() {
|
|||
|
||||
// remote cache directory may not be created yet
|
||||
if (!(await checkFileExists(cacheRemotePath))) {
|
||||
await fs.mkdir(cacheRemotePath);
|
||||
await fs.mkdir(cacheRemotePath, { recursive: true });
|
||||
}
|
||||
|
||||
core.info('Copying cache...');
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ async function save() {
|
|||
|
||||
// remote cache directory may not be created yet
|
||||
if (!(await checkFileExists(cacheRemotePath))) {
|
||||
await fs.mkdir(cacheRemotePath);
|
||||
await fs.mkdir(cacheRemotePath, { recursive: true });
|
||||
}
|
||||
|
||||
core.info('Copying cache...');
|
||||
|
|
|
|||
|
|
@ -23,7 +23,19 @@ runs:
|
|||
using: 'composite'
|
||||
steps:
|
||||
|
||||
- if: ${{ runner.os == 'Linux' && inputs.self-hosted-runner == 'true' }}
|
||||
- name: Check if Python is already installed (Linux)
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
shell: bash
|
||||
id: check_python
|
||||
run: |
|
||||
PYTHON_INSTALLED=$(python${{ inputs.version }} -V) || true
|
||||
if [[ $PYTHON_INSTALLED ]]; then
|
||||
echo "installed=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "installed=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- if: ${{ runner.os == 'Linux' && inputs.self-hosted-runner == 'true' && steps.check_python.outputs.installed == 'false' }}
|
||||
name: Install 'actions/setup-python@v4' dependencies
|
||||
shell: bash
|
||||
run: apt-get update && apt-get install -y ca-certificates software-properties-common gpg-agent tzdata
|
||||
|
|
@ -31,18 +43,18 @@ runs:
|
|||
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
|
||||
TZ: "Europe/London" # to prevent tzdata from waiting user input
|
||||
|
||||
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' }}
|
||||
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' && steps.check_python.outputs.installed == 'false' }}
|
||||
name: Setup sudo and python3
|
||||
shell: bash
|
||||
run: apt-get update && apt-get install -y sudo python3 # Needed for the deadsnakes action
|
||||
|
||||
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' }}
|
||||
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' && steps.check_python.outputs.installed == 'false' }}
|
||||
name: Setup Python ${{ inputs.version }}
|
||||
uses: akashchi/deadsnakes-action@92417281055a5878a0450f240a5b95883eb2d7e2
|
||||
with:
|
||||
python-version: ${{ inputs.version }}
|
||||
|
||||
- if: ${{ runner.os == 'macOS' || runner.os == 'Windows' || (runner.os == 'Linux' && runner.arch != 'ARM64') }}
|
||||
- if: ${{ runner.os == 'macOS' || runner.os == 'Windows' || (runner.os == 'Linux' && runner.arch != 'ARM64' && steps.check_python.outputs.installed == 'false' ) }}
|
||||
name: Setup Python ${{ inputs.version }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
pr-24573
|
||||
pr-24878
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ RUN apt-get update && \
|
|||
python3.11-dev \
|
||||
python3.11-venv \
|
||||
python3.11-distutils \
|
||||
libhdf5-dev \
|
||||
# For Java API
|
||||
default-jdk \
|
||||
# Compiler
|
||||
|
|
|
|||
|
|
@ -0,0 +1,89 @@
|
|||
FROM openvinogithubactions.azurecr.io/dockerhub/nvidia/cuda:11.8.0-runtime-ubuntu20.04
|
||||
|
||||
USER root
|
||||
|
||||
# APT configuration
|
||||
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf
|
||||
|
||||
ENV DEBIAN_FRONTEND="noninteractive" \
|
||||
TZ="Europe/London"
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install software-properties-common && \
|
||||
add-apt-repository --yes --no-update ppa:git-core/ppa && \
|
||||
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
|
||||
apt-get update && \
|
||||
apt-get install \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
ca-certificates \
|
||||
gpg-agent \
|
||||
tzdata \
|
||||
# Pythons
|
||||
python3.8-dev \
|
||||
python3.8-venv \
|
||||
python3.8-distutils \
|
||||
python3.11-dev \
|
||||
python3.11-venv \
|
||||
python3.11-distutils \
|
||||
# For Java API
|
||||
default-jdk \
|
||||
# Compiler \
|
||||
gcc-10 \
|
||||
g++-10 \
|
||||
&& \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install build dependencies
|
||||
ADD install_build_dependencies.sh /install_build_dependencies.sh
|
||||
RUN chmod +x /install_build_dependencies.sh && \
|
||||
/install_build_dependencies.sh && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Set gcc-10 as a default compiler
|
||||
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 30 && \
|
||||
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 30
|
||||
|
||||
# Install sscache
|
||||
ARG SCCACHE_VERSION="v0.7.5"
|
||||
ENV SCCACHE_HOME="/opt/sccache" \
|
||||
SCCACHE_PATH="/opt/sccache/sccache"
|
||||
|
||||
RUN mkdir ${SCCACHE_HOME} && cd ${SCCACHE_HOME} && \
|
||||
SCCACHE_ARCHIVE="sccache-${SCCACHE_VERSION}-x86_64-unknown-linux-musl.tar.gz" && \
|
||||
curl -SLO https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/${SCCACHE_ARCHIVE} && \
|
||||
tar -xzf ${SCCACHE_ARCHIVE} --strip-components=1 && rm ${SCCACHE_ARCHIVE}
|
||||
|
||||
# Install CUDA
|
||||
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin && \
|
||||
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
|
||||
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub && \
|
||||
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
|
||||
RUN apt update && apt install -y \
|
||||
libcudnn8=8.9.4.*-1+cuda11.8 \
|
||||
libcudnn8-dev=8.9.4.*-1+cuda11.8 \
|
||||
libcudnn8-samples=8.9.4.*-1+cuda11.8 \
|
||||
cuda-runtime-11-8 \
|
||||
cuda-11-8 \
|
||||
libcutensor1=1.6.1.5-1 \
|
||||
libcutensor-dev=1.6.1.5-1 \
|
||||
cuda-drivers=520.61.05-1 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Setup pip
|
||||
ENV PIP_VERSION="24.0"
|
||||
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
|
||||
python3.8 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
|
||||
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
|
||||
rm -f get-pip.py
|
||||
|
||||
# Use Python 3.11 as default instead of Python 3.8
|
||||
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
|
||||
RUN python3.11 -m venv venv
|
||||
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"
|
||||
|
||||
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
|
||||
|
|
@ -26,6 +26,7 @@ RUN apt-get update && \
|
|||
python3.11-dev \
|
||||
python3.11-venv \
|
||||
python3.11-distutils \
|
||||
libhdf5-dev \
|
||||
&& \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
|
@ -47,3 +48,4 @@ RUN python3.11 -m venv venv
|
|||
ENV PATH="/venv/bin:$PATH"
|
||||
|
||||
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
|
||||
ENV PIP_INSTALL_PATH=/venv/lib/python3.11/site-packages
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
FROM openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04
|
||||
|
||||
USER root
|
||||
|
||||
# APT configuration
|
||||
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf
|
||||
|
||||
ENV DEBIAN_FRONTEND="noninteractive" \
|
||||
TZ="Europe/London"
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install software-properties-common && \
|
||||
add-apt-repository --yes --no-update ppa:git-core/ppa && \
|
||||
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
|
||||
apt-get update && \
|
||||
apt-get install \
|
||||
curl \
|
||||
git \
|
||||
ca-certificates \
|
||||
gpg-agent \
|
||||
tzdata \
|
||||
# Python
|
||||
python3.11-dev \
|
||||
python3.11-venv \
|
||||
python3.11-distutils \
|
||||
libhdf5-dev \
|
||||
&& \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install build dependencies
|
||||
ADD install_build_dependencies.sh /install_build_dependencies.sh
|
||||
RUN chmod +x /install_build_dependencies.sh && \
|
||||
/install_build_dependencies.sh && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Setup pip
|
||||
ENV PIP_VERSION="24.0"
|
||||
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
|
||||
python3.8 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
|
||||
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
|
||||
rm -f get-pip.py
|
||||
|
||||
# Use Python 3.11 as default instead of Python 3.8
|
||||
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
|
||||
RUN python3.11 -m venv venv
|
||||
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"
|
||||
|
||||
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
|
||||
ENV PIP_INSTALL_PATH=/venv/lib/python3.11/site-packages
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
FROM openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04
|
||||
|
||||
USER root
|
||||
|
||||
# APT configuration
|
||||
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
|
||||
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf
|
||||
|
||||
ENV DEBIAN_FRONTEND="noninteractive" \
|
||||
TZ="Europe/London"
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install software-properties-common && \
|
||||
add-apt-repository --yes --no-update ppa:git-core/ppa && \
|
||||
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
|
||||
apt-get update && \
|
||||
apt-get install \
|
||||
curl \
|
||||
git \
|
||||
ca-certificates \
|
||||
gpg-agent \
|
||||
tzdata \
|
||||
# Python
|
||||
python3.11-dev \
|
||||
python3.11-venv \
|
||||
python3.11-distutils \
|
||||
libhdf5-dev \
|
||||
&& \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install build dependencies
|
||||
ADD install_build_dependencies.sh /install_build_dependencies.sh
|
||||
RUN chmod +x /install_build_dependencies.sh && \
|
||||
/install_build_dependencies.sh && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Setup pip
|
||||
ENV PIP_VERSION="24.0"
|
||||
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
|
||||
python3 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
|
||||
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
|
||||
rm -f get-pip.py
|
||||
|
||||
# Use Python 3.11 as default
|
||||
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
|
||||
RUN python3.11 -m venv venv
|
||||
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"
|
||||
|
||||
ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
|
||||
ENV PIP_INSTALL_PATH=/venv/lib/python3.11/site-packages
|
||||
|
|
@ -50,5 +50,13 @@
|
|||
{
|
||||
"error_text": "The requested URL returned error: 500",
|
||||
"ticket": 139384
|
||||
},
|
||||
{
|
||||
"error_text": "Unable to fetch some archives",
|
||||
"ticket": 130965
|
||||
},
|
||||
{
|
||||
"error_text": "status_string: \"Timeout was reached\"",
|
||||
"ticket": 142653
|
||||
}
|
||||
]
|
||||
|
|
@ -13,6 +13,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-android-arm64-vcpkg
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Smart_CI:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
@ -21,7 +23,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -75,7 +77,7 @@ jobs:
|
|||
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
|
||||
|
|
@ -90,7 +92,7 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Clone vcpkg
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'microsoft/vcpkg'
|
||||
# Keep in sync with <root>/vcpkg.json <builtin-baseline>
|
||||
|
|
@ -130,7 +132,7 @@ jobs:
|
|||
echo "yes" | ./cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_TOOLS} --install "ndk-bundle" "platform-tools" "platforms;android-${{ env.ANDROID_SDK_VERSION }}"
|
||||
|
||||
- name: Install sccache
|
||||
uses: mozilla-actions/sccache-action@v0.0.4
|
||||
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4
|
||||
with:
|
||||
version: "v0.7.5"
|
||||
|
||||
|
|
@ -182,7 +184,7 @@ jobs:
|
|||
# Upload build logs
|
||||
#
|
||||
- name: Upload build logs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: build_logs
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ on:
|
|||
- created
|
||||
- edited
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
take-issue:
|
||||
name: Take issue
|
||||
|
|
@ -15,7 +17,7 @@ jobs:
|
|||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: take an issue
|
||||
uses: bdougie/take-action@v1.6.1
|
||||
uses: bdougie/take-action@1439165ac45a7461c2d89a59952cd7d941964b87 # v1.6.1
|
||||
with:
|
||||
message: Thank you for looking into this issue! Please let us know if you have any questions or require any help.
|
||||
issueCurrentlyAssignedMessage: Thanks for being interested in this issue. It looks like this ticket is already assigned to a contributor. Please communicate with the assigned contributor to confirm the status of the issue.
|
||||
|
|
|
|||
|
|
@ -10,23 +10,25 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Build_Doc:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
lfs: 'true'
|
||||
|
||||
- name: Install apt-get dependencies
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.4.2
|
||||
uses: awalsh128/cache-apt-pkgs-action@a6c3917cc929dd0345bfb2d3feaf9101823370ad # v1.4.2
|
||||
with:
|
||||
packages: graphviz texlive liblua5.2-0 libclang1-9 libclang-cpp9
|
||||
version: 3.0
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
|
||||
id: cp310
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
|
@ -56,7 +58,7 @@ jobs:
|
|||
|
||||
- name: Cache documentation
|
||||
id: cache_sphinx_docs
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
with:
|
||||
path: build/docs/_build/.doctrees
|
||||
key: sphinx-docs-cache
|
||||
|
|
@ -70,13 +72,13 @@ jobs:
|
|||
echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV
|
||||
|
||||
- name: 'Upload sphinx.log'
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: sphinx_build_log_${{ env.PR_NUMBER }}.log
|
||||
path: build/docs/sphinx.log
|
||||
|
||||
- name: 'Upload docs html'
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_docs_html_${{ env.PR_NUMBER }}.zip
|
||||
path: build/docs/openvino_docs_html.zip
|
||||
|
|
@ -93,7 +95,7 @@ jobs:
|
|||
|
||||
- name: 'Upload test results'
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_docs_pytest
|
||||
path: build/docs/_artifacts/
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
name: PR Commits
|
||||
on: [pull_request]
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Checks:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Install dependencies
|
||||
run: python3 -m pip install -r ./.github/github_org_control/requirements.txt
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ on:
|
|||
# at 00:00 on the 1st day of every month
|
||||
- cron: '0 0 1 * *'
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Cleanup_PIP:
|
||||
runs-on: aks-linux-2-cores-8gb
|
||||
|
|
@ -42,7 +44,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout cach action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/cache
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Build:
|
||||
strategy:
|
||||
|
|
@ -25,12 +27,12 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
- name: Install OpenCL
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.4.2
|
||||
uses: awalsh128/cache-apt-pkgs-action@a6c3917cc929dd0345bfb2d3feaf9101823370ad # v1.4.2
|
||||
if: runner.os == 'Linux'
|
||||
with:
|
||||
packages: ocl-icd-opencl-dev opencl-headers
|
||||
|
|
|
|||
|
|
@ -5,13 +5,15 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
clang-format:
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
|
|
@ -29,7 +31,7 @@ jobs:
|
|||
|
||||
- name: suggester / clang-format
|
||||
if: startsWith(github.event_name, 'pull_request')
|
||||
uses: reviewdog/action-suggester@v1
|
||||
uses: reviewdog/action-suggester@9e1cd88b79ba3c0023c94e44accd72344f032093 # v1.13.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
level: warning
|
||||
|
|
@ -40,7 +42,7 @@ jobs:
|
|||
permissions:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
|
|
@ -58,7 +60,7 @@ jobs:
|
|||
# always provide suggestions even for skipped scripts in ov_shellcheck tagret
|
||||
- name: ShellCheck action
|
||||
if: always()
|
||||
uses: reviewdog/action-shellcheck@v1
|
||||
uses: reviewdog/action-shellcheck@6e3a862f231c6895fbd335b70adef8f9243d5762 # v1.21.0
|
||||
with:
|
||||
level: style
|
||||
reporter: github-pr-review
|
||||
|
|
@ -71,7 +73,7 @@ jobs:
|
|||
NamingConventionCheck:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Coverage:
|
||||
runs-on: ${{ matrix.config.os }}
|
||||
|
|
@ -16,19 +18,19 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Setup python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
|
||||
with:
|
||||
python-version: '3.10.10'
|
||||
architecture: 'x64'
|
||||
|
||||
|
||||
- name: Setup ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
|
||||
with:
|
||||
max-size: 50G
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
|
|
@ -55,7 +57,7 @@ jobs:
|
|||
python3 -m pip install -r ${{ github.workspace }}/tools/mo/requirements_dev.txt
|
||||
|
||||
- name: Build OpenVINO with CMake
|
||||
uses: ashutoshvarma/action-cmake-build@master
|
||||
uses: ashutoshvarma/action-cmake-build@ade188313bc7eaa6f14349569a64d8bc716342ff # master
|
||||
with:
|
||||
build-dir: ${{ github.workspace }}/build
|
||||
cc: ${{ matrix.config.cc }}
|
||||
|
|
@ -112,7 +114,7 @@ jobs:
|
|||
run: ${{ github.workspace }}/bin/intel64/Release/ov_tensorflow_frontend_tests --gtest_filter=-*IE_GPU*
|
||||
|
||||
- name: Build coverage with CMake
|
||||
uses: ashutoshvarma/action-cmake-build@master
|
||||
uses: ashutoshvarma/action-cmake-build@ade188313bc7eaa6f14349569a64d8bc716342ff # master
|
||||
with:
|
||||
build-dir: ${{ github.workspace }}/coverage
|
||||
cc: ${{ matrix.config.cc }}
|
||||
|
|
@ -135,6 +137,6 @@ jobs:
|
|||
lcov --capture --directory ${{ github.workspace }}/. --output-file coverage.info
|
||||
genhtml coverage.info --output-directory coverage-report
|
||||
- name: Collect coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c # v4.4.1
|
||||
with:
|
||||
verbose: true
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-coverity
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -44,14 +46,14 @@ jobs:
|
|||
apt-get install --assume-yes --no-install-recommends git ca-certificates
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
ref: ${{ inputs.openvinoRef }}
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: ${{ env.OPENVINO_CONTRIB_REPO }}
|
||||
|
|
@ -137,7 +139,7 @@ jobs:
|
|||
run: ${COVERITY_TOOL_DIR}/cov-analysis*/bin/cov-configure -c ${COVERITY_TOOL_DIR}/cov-analysis-linux64-2023.6.2/config/coverity_config.xml -lscc text
|
||||
|
||||
- name: Upload Coverity build log
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: coverity_logs
|
||||
|
|
@ -145,7 +147,7 @@ jobs:
|
|||
if-no-files-found: 'error'
|
||||
|
||||
- name: Upload Coverity build archive
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: coverity_archive
|
||||
|
|
|
|||
|
|
@ -1,18 +1,17 @@
|
|||
name: 'Dependency Review'
|
||||
on: [pull_request, merge_group]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
dependency-review:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Dependency Review
|
||||
uses: actions/dependency-review-action@v4.3.2
|
||||
uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3
|
||||
with:
|
||||
config-file: './.github/dependency_review.yml'
|
||||
base-ref: ${{ github.pull_request.base.sha || github.event.merge_group.base_ref }}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-fedora33
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Smart_CI:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
@ -21,7 +23,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -71,7 +73,7 @@ jobs:
|
|||
run: yum update -y && yum install -y git
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
|
|
@ -91,7 +93,7 @@ jobs:
|
|||
run: bash ${OPENVINO_REPO}/install_build_dependencies.sh
|
||||
|
||||
- name: Install sccache
|
||||
uses: mozilla-actions/sccache-action@v0.0.4
|
||||
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4
|
||||
with:
|
||||
version: "v0.7.5"
|
||||
|
||||
|
|
@ -170,7 +172,7 @@ jobs:
|
|||
# Upload build artifacts and logs
|
||||
#
|
||||
- name: Upload build logs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: build_logs
|
||||
|
|
@ -179,7 +181,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
||||
|
|
@ -187,7 +189,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino RPM packages
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_rpm_packages
|
||||
path: ${{ env.BUILD_DIR }}/*.rpm
|
||||
|
|
@ -195,7 +197,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
||||
|
|
@ -215,7 +217,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Download OpenVINO RPM packages
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_rpm_packages
|
||||
path: ${{ env.RPM_PACKAGES_DIR }}
|
||||
|
|
|
|||
|
|
@ -5,11 +5,13 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Check_Files_Size:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: git ls-tree
|
||||
run: git ls-tree -r -t -l --full-name HEAD | sort -n -r -k 4
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ on:
|
|||
required: false
|
||||
default: null
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
CPU_Functional_Tests:
|
||||
name: CPU functional tests
|
||||
|
|
@ -30,18 +32,14 @@ jobs:
|
|||
PARALLEL_TEST_SCRIPT: ${{ github.workspace }}/install/tests/functional_test_utils/layer_tests_summary/run_parallel.py
|
||||
PARALLEL_TEST_CACHE: ${{ github.workspace }}/install/tests/test_cache.lst
|
||||
steps:
|
||||
- name: Set apt retries
|
||||
if: runner.os == 'Linux'
|
||||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -64,12 +62,8 @@ jobs:
|
|||
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
|
||||
- name: Install OpenVINO dependencies (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -87,7 +81,7 @@ jobs:
|
|||
run: python3 -m pip install -r ${INSTALL_TEST_DIR}/functional_test_utils/layer_tests_summary/requirements.txt
|
||||
|
||||
- name: Restore tests execution time
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
with:
|
||||
path: ${{ env.PARALLEL_TEST_CACHE }}
|
||||
key: ${{ runner.os }}-${{ runner.arch }}-tests-functional-cpu-stamp-${{ github.sha }}
|
||||
|
|
@ -107,14 +101,14 @@ jobs:
|
|||
timeout-minutes: 25
|
||||
|
||||
- name: Save tests execution time
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
if: github.ref_name == 'master'
|
||||
with:
|
||||
path: ${{ env.PARALLEL_TEST_CACHE }}
|
||||
key: ${{ runner.os }}-${{ runner.arch }}-tests-functional-cpu-stamp-${{ github.sha }}
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: test-results-functional-cpu
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
CXX_Unit_Tests:
|
||||
name: C++ unit tests
|
||||
|
|
@ -32,18 +34,14 @@ jobs:
|
|||
INSTALL_DIR: ${{ github.workspace }}/install
|
||||
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
|
||||
steps:
|
||||
- name: Set apt retries
|
||||
if: runner.os == 'Linux'
|
||||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -63,10 +61,6 @@ jobs:
|
|||
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
|
||||
- name: Install OpenVINO dependencies (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
|
||||
|
||||
#
|
||||
# Tests
|
||||
#
|
||||
|
|
@ -261,7 +255,7 @@ jobs:
|
|||
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-cpp
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ on:
|
|||
required: false
|
||||
default: null
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Debian_Packages:
|
||||
name: Debian Packages
|
||||
|
|
@ -31,7 +33,7 @@ jobs:
|
|||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO debian packages
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_debian_packages
|
||||
path: ${{ env.DEBIAN_PACKAGES_DIR }}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,134 @@
|
|||
name: GPU
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
test_type:
|
||||
description: 'Type of tests to execute'
|
||||
type: string
|
||||
required: true
|
||||
device:
|
||||
description: 'Device name (igpu or dgpu)'
|
||||
type: string
|
||||
required: true
|
||||
runner:
|
||||
description: 'Runner labels by which the runner will be chosen. Example: [ "self-hosted", "igpu" ]'
|
||||
type: string
|
||||
required: true
|
||||
container:
|
||||
description: 'JSON to be converted to the value of the "container" configuration for the job'
|
||||
type: string
|
||||
required: false
|
||||
default: '{"image": null}'
|
||||
|
||||
jobs:
|
||||
GPU:
|
||||
timeout-minutes: 80
|
||||
runs-on: ${{ fromJSON(inputs.runner) }}
|
||||
container: ${{ fromJSON(inputs.container) }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
|
||||
INSTALL_DIR: ${{ github.workspace }}/install
|
||||
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
|
||||
GTEST_PARALLEL_SCRIPT: ${{ github.workspace }}/gtest_parallel.py
|
||||
steps:
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: 'openvino_package'
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: 'openvino_tests'
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
||||
# Needed as ${{ github.workspace }} is not working correctly when using Docker
|
||||
- name: Setup Variables
|
||||
run: |
|
||||
echo "INSTALL_DIR=$GITHUB_WORKSPACE/install" >> "$GITHUB_ENV"
|
||||
echo "INSTALL_TEST_DIR=$GITHUB_WORKSPACE/install/tests" >> "$GITHUB_ENV"
|
||||
echo "GTEST_PARALLEL_SCRIPT=$GITHUB_WORKSPACE/gtest_parallel.py" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Extract OpenVINO packages
|
||||
run: |
|
||||
pushd $INSTALL_DIR
|
||||
tar -xzf openvino_package.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
pushd $INSTALL_TEST_DIR
|
||||
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
|
||||
- name: Install dependencies (Linux)
|
||||
run: |
|
||||
$INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
|
||||
|
||||
apt-get update && apt-get install -y wget software-properties-common ca-certificates gpg-agent tzdata clinfo
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
|
||||
TZ: "Europe/London" # to prevent tzdata from waiting user input
|
||||
- name: Setup Python ${{ env.PYTHON_VERSION }}
|
||||
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
|
||||
- name: Get gtest-parallel script
|
||||
run: wget https://raw.githubusercontent.com/google/gtest-parallel/master/gtest_parallel.py
|
||||
|
||||
- name: Install compute runtime drivers
|
||||
run: |
|
||||
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-core_1.0.15985.7_amd64.deb
|
||||
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-opencl_1.0.15985.7_amd64.deb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu-dbgsym_1.3.28454.6_amd64.ddeb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu_1.3.28454.6_amd64.deb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd-dbgsym_24.05.28454.6_amd64.ddeb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd_24.05.28454.6_amd64.deb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/libigdgmm12_22.3.11_amd64.deb
|
||||
dpkg -i *.deb
|
||||
|
||||
- name: Install media & display runtimes
|
||||
if: ${{ inputs.device == 'dgpu' }}
|
||||
run: |
|
||||
apt-get update && apt-get install -y \
|
||||
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
|
||||
libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm11 libxatracker2 mesa-va-drivers \
|
||||
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all
|
||||
|
||||
- name: Verify devices
|
||||
run: clinfo
|
||||
|
||||
#
|
||||
# Tests
|
||||
#
|
||||
|
||||
- name: OpenVINO GPU ${{ inputs.test_type }} Tests
|
||||
id: run_tests
|
||||
run: |
|
||||
source ${INSTALL_DIR}/setupvars.sh
|
||||
|
||||
TEST_RESULTS_DIR="${{ inputs.device }}_${{ inputs.test_type }}_tests"
|
||||
echo "test_results_dir=$TEST_RESULTS_DIR" >> $GITHUB_OUTPUT
|
||||
|
||||
rm -rf ${INSTALL_TEST_DIR}/${TEST_RESULTS_DIR} && mkdir -p ${INSTALL_TEST_DIR}/${TEST_RESULTS_DIR}
|
||||
|
||||
test_filter=''
|
||||
if [[ "${{ inputs.test_type }}" == "unit" ]]; then
|
||||
# Ticket: 138018
|
||||
test_filter='-*scatter_nd_update_gpu.dynamic_padded_output*:*border_gpu.basic_zero_input*:*bicubic_zeros_no_align_data1x1*:*bicubic_border_align_batches*:*bilinear_zeros_no_align_data1x1*:*non_zero_gpu.empty_input*:*mark_shape_of_subgraphs.concat_with_empty_tensor_inputs*:*concat_cpu_impl.dynamic_4d_f*:*border_gpu.basic_zero_input_dynamic*:*network_test.model_with_empty_input_is_not_dynamic*:*bicubic_zeros_align_data1x1*'
|
||||
else
|
||||
test_filter='*smoke*'
|
||||
fi
|
||||
python3 ${GTEST_PARALLEL_SCRIPT} ${INSTALL_TEST_DIR}/ov_gpu_${{ inputs.test_type }}_tests --dump_json_test_results=${INSTALL_TEST_DIR}/${TEST_RESULTS_DIR}/ov_gpu_${{ inputs.test_type }}_tests.json -- --report_unique_name --gtest_filter=$test_filter
|
||||
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: test-results-${{ inputs.test_type }}-${{ inputs.device }}
|
||||
path: ${{ env.INSTALL_TEST_DIR }}/${{ steps.run_tests.outputs.test_results_dir }}
|
||||
if-no-files-found: 'error'
|
||||
|
|
@ -13,6 +13,8 @@ on:
|
|||
required: false
|
||||
default: '{"image": null}'
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
ONNX_Models_tests:
|
||||
name: ONNX Models tests
|
||||
|
|
@ -35,18 +37,14 @@ jobs:
|
|||
ONNX_MODEL_ZOO_SHA: "5faef4c33eba0395177850e1e31c4a6a9e634c82"
|
||||
if: ${{ github.event_name != 'merge_group' }}
|
||||
steps:
|
||||
- name: Set apt retries
|
||||
if: runner.os == 'Linux'
|
||||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -70,27 +68,14 @@ jobs:
|
|||
tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR}
|
||||
popd
|
||||
|
||||
- name: Fetch setup_python action and model_zoo_preprocess script
|
||||
uses: actions/checkout@v4
|
||||
- name: Fetch model_zoo_preprocess script
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
src/frontends/onnx/tests/tests_python/model_zoo_preprocess.sh
|
||||
sparse-checkout-cone-mode: false
|
||||
path: 'openvino'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
# install git (required to build pip deps from the sources)
|
||||
apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates git-lfs
|
||||
|
||||
- name: Setup Python 3.11
|
||||
uses: ./openvino/.github/actions/setup_python
|
||||
with:
|
||||
version: '3.11'
|
||||
should-setup-pip-paths: 'false'
|
||||
self-hosted-runner: ${{ contains(inputs.runner, 'aks') }}
|
||||
|
||||
- name: Update Models
|
||||
run: bash ${OPENVINO_REPO}/src/frontends/onnx/tests/tests_python/model_zoo_preprocess.sh -d ${MODELS_SHARE_PATH} -o -s "${{ env.ONNX_MODEL_ZOO_SHA }}"
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
ONNX_Runtime:
|
||||
name: ONNX Runtime Integration
|
||||
|
|
@ -41,7 +43,7 @@ jobs:
|
|||
ONNX_RUNTIME_BUILD_DIR: ${{ github.workspace }}/onnxruntime/build
|
||||
steps:
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ on:
|
|||
required: false
|
||||
default: '{"image": null}'
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
JS_API:
|
||||
name: OpenVINO JS API
|
||||
|
|
@ -29,7 +31,7 @@ jobs:
|
|||
NODE_VERSION: 20
|
||||
steps:
|
||||
- name: Fetch OpenVINO JS sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
src/bindings/js
|
||||
|
|
@ -42,13 +44,13 @@ jobs:
|
|||
echo "OPENVINO_JS_LIBS_DIR=$GITHUB_WORKSPACE/openvino/src/bindings/js/node/bin" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Download OpenVINO JS package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_js_package
|
||||
path: ${{ env.OPENVINO_JS_LIBS_DIR }}
|
||||
|
||||
- name: Setup Node ${{ env.NODE_VERSION }}
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -37,18 +39,15 @@ jobs:
|
|||
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
|
||||
LAYER_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/layer_tests
|
||||
steps:
|
||||
- name: Set apt retries
|
||||
if: runner.os == 'Linux'
|
||||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -70,12 +69,8 @@ jobs:
|
|||
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
|
||||
- name: Install OpenVINO dependencies (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y -c=gpu
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -275,7 +270,7 @@ jobs:
|
|||
|
||||
- name: Clone API snippets
|
||||
if: runner.os != 'macOS'
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: docs/snippets
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
|
|
@ -291,7 +286,7 @@ jobs:
|
|||
python3 ${OPENVINO_REPO}/docs/snippets/main.py
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-python
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
PyTorch_Models_Tests:
|
||||
name: PyTorch Models tests
|
||||
|
|
@ -47,19 +49,19 @@ jobs:
|
|||
fi
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tokenizers extension
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tokenizers_wheel
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -83,7 +85,7 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -140,18 +142,29 @@ jobs:
|
|||
USE_SYSTEM_CACHE: False
|
||||
OP_REPORT_FILE: ${{ env.INSTALL_TEST_DIR }}/TEST-torch_unsupported_ops.log
|
||||
|
||||
- name: PagedAttention Test
|
||||
if: always()
|
||||
run: |
|
||||
export PYTHONPATH=${MODEL_HUB_TESTS_INSTALL_DIR}:$PYTHONPATH
|
||||
python3 -m pytest ${MODEL_HUB_TESTS_INSTALL_DIR}/pytorch/test_pa_transformation.py -m ${TYPE} --html=${INSTALL_TEST_DIR}/TEST-torch_pagedattention_tests.html --self-contained-html -v --tb=short
|
||||
env:
|
||||
TYPE: ${{ inputs.event == 'schedule' && 'nightly' || 'precommit'}}
|
||||
TEST_DEVICE: CPU
|
||||
USE_SYSTEM_CACHE: False
|
||||
OP_REPORT_FILE: ${{ env.INSTALL_TEST_DIR }}/TEST-torch_unsupported_ops.log
|
||||
|
||||
- name: Reformat unsupported ops file
|
||||
if: '!cancelled()'
|
||||
run: |
|
||||
python3 ${MODEL_HUB_TESTS_INSTALL_DIR}/pytorch/scripts/process_op_report.py ${INSTALL_TEST_DIR}/TEST-torch_unsupported_ops.log
|
||||
|
||||
|
||||
- name: Available storage after tests
|
||||
run: |
|
||||
echo "Available storage:"
|
||||
df -h
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-torch-models
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Samples:
|
||||
runs-on: ${{ inputs.runner }}
|
||||
|
|
@ -31,18 +33,14 @@ jobs:
|
|||
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
|
||||
BUILD_DIR: ${{ github.workspace }}/build
|
||||
steps:
|
||||
- name: Set apt retries
|
||||
if: runner.os == 'Linux'
|
||||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -63,16 +61,12 @@ jobs:
|
|||
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
|
||||
- name: Install OpenVINO dependencies (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y
|
||||
|
||||
- name: Install OpenVINO dependencies (mac)
|
||||
if: runner.os == 'macOS'
|
||||
run: brew install coreutils
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -84,7 +78,6 @@ jobs:
|
|||
with:
|
||||
version: '3.11'
|
||||
should-setup-pip-paths: 'false'
|
||||
self-hosted-runner: ${{ runner.os == 'Linux' }}
|
||||
|
||||
- name: Build cpp samples - GCC
|
||||
run: $INSTALL_DIR/samples/cpp/build_samples.sh -i $INSTALL_DIR -b $BUILD_DIR/cpp_samples
|
||||
|
|
@ -94,7 +87,7 @@ jobs:
|
|||
- name: Build cpp samples - Clang
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
apt-get install -y clang
|
||||
apt-get update && 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'
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -41,24 +43,20 @@ jobs:
|
|||
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
|
||||
LAYER_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/layer_tests
|
||||
steps:
|
||||
- name: Set apt retries
|
||||
if: runner.os == 'Linux'
|
||||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
||||
- name: Download OpenVINO tokenizers extension
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tokenizers_wheel
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
|
@ -92,12 +90,8 @@ jobs:
|
|||
Expand-Archive openvino_tests.zip -DestinationPath ${{ env.INSTALL_DIR }}
|
||||
popd
|
||||
|
||||
- name: Install OpenVINO dependencies (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: $INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y -c=gpu
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -164,7 +158,7 @@ jobs:
|
|||
TEST_PRECISION: FP16
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-python-tf-layers
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
TensorFlow_Models_Tests:
|
||||
name: TensorFlow Models tests
|
||||
|
|
@ -34,33 +36,20 @@ jobs:
|
|||
MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests
|
||||
NUMBER_OF_REPLICAS: 2
|
||||
steps:
|
||||
- name: Check sudo
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: if [ "$(id -u)" -eq 0 ]; then apt update && apt --assume-yes install sudo; fi
|
||||
|
||||
- name: Set apt retries
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
else
|
||||
sudo sh -c "echo 'Acquire::Retries \"10\";' >> /etc/apt/apt.conf.d/80-retries"
|
||||
fi
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tokenizers extension
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tokenizers_wheel
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -88,19 +77,13 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
sparse-checkout-cone-mode: false
|
||||
path: 'openvino'
|
||||
|
||||
- name: Install dependencies
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
# install git (required to build pip deps from the sources)
|
||||
sudo apt-get install --assume-yes --no-install-recommends g++ git ca-certificates wget
|
||||
|
||||
- name: Setup Python 3.11
|
||||
uses: ./openvino/.github/actions/setup_python
|
||||
with:
|
||||
|
|
@ -131,7 +114,7 @@ jobs:
|
|||
TEST_DEVICE: CPU
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-tensorflow-models-${{ inputs.model_scope }}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ on:
|
|||
type: string
|
||||
required: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -48,7 +50,7 @@ jobs:
|
|||
echo "EXTENSION_BUILD_DIR=$GITHUB_WORKSPACE/build" >> "$GITHUB_ENV"
|
||||
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python
|
||||
|
|
@ -56,7 +58,6 @@ jobs:
|
|||
install_build_dependencies.sh
|
||||
|
||||
- name: Setup Python ${{ env.PYTHON_VERSION }}
|
||||
if: ${{ runner.os != 'Linux' }} # We do not need to install Python on Linux as we use Docker with it installed
|
||||
uses: ./.github/actions/setup_python
|
||||
with:
|
||||
version: ${{ env.PYTHON_VERSION }}
|
||||
|
|
@ -65,14 +66,14 @@ jobs:
|
|||
self-hosted-runner: ${{ runner.os == 'Linux' }}
|
||||
|
||||
- name: Clone OpenVINO Tokenizers
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_tokenizers'
|
||||
path: ${{ env.OPENVINO_TOKENIZERS_REPO }}
|
||||
ref: 'master'
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
|
@ -129,7 +130,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino tokenizers wheel
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tokenizers_wheel
|
||||
path: ${{ env.EXTENSION_BUILD_DIR }}/*.whl
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ name: "Pull Request Labeler"
|
|||
on:
|
||||
- pull_request_target
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
permissions:
|
||||
|
|
@ -9,20 +11,20 @@ jobs:
|
|||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: akladiev/labeler@v4.3.1
|
||||
- uses: akladiev/labeler@eeac5941e7fb6f980d47e038ac0665168851c874 # v4.3.1
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
configuration-path: '.github/labeler.yml'
|
||||
sync-labels: 'true'
|
||||
dot: 'true'
|
||||
non-matching-label: 'no-match-files'
|
||||
|
||||
|
||||
external_pr_labeller:
|
||||
name: Label External PR
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Labeller Script
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: '.github'
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -29,7 +31,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -62,13 +64,15 @@ jobs:
|
|||
images: "${{ steps.handle_docker.outputs.images }}"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- uses: ./.github/actions/handle_docker
|
||||
id: handle_docker
|
||||
with:
|
||||
images: |
|
||||
ov_build/ubuntu_20_04_x64
|
||||
ov_build/ubuntu_20_04_x64_nvidia
|
||||
ov_test/ubuntu_20_04_x64
|
||||
registry: 'openvinogithubactions.azurecr.io'
|
||||
dockerfiles_root_dir: '.github/dockerfiles'
|
||||
changed_components: ${{ needs.smart_ci.outputs.changed_components }}
|
||||
|
|
@ -109,7 +113,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
|
|
@ -124,7 +128,7 @@ jobs:
|
|||
git rev-parse HEAD
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: ${{ env.OPENVINO_CONTRIB_REPO }}
|
||||
|
|
@ -252,7 +256,7 @@ jobs:
|
|||
# Upload build artifacts and logs
|
||||
#
|
||||
- name: Upload build logs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: build_logs
|
||||
|
|
@ -261,7 +265,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
||||
|
|
@ -269,7 +273,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino js package
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_js_package
|
||||
path: ${{ env.INSTALL_DIR_JS }}
|
||||
|
|
@ -277,7 +281,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino developer package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_developer_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_developer_package.tar.gz
|
||||
|
|
@ -285,7 +289,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino debian packages
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_debian_packages
|
||||
path: ${{ env.BUILD_DIR }}/*.deb
|
||||
|
|
@ -293,7 +297,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
||||
|
|
@ -308,22 +312,22 @@ jobs:
|
|||
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
|
||||
|
||||
Samples:
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).samples
|
||||
uses: ./.github/workflows/job_samples_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-4-cores-16gb'
|
||||
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
|
||||
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
|
||||
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
||||
|
||||
JS_API:
|
||||
name: OpenVINO JS API
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
||||
uses: ./.github/workflows/job_openvino_js.yml
|
||||
with:
|
||||
runner: 'aks-linux-4-cores-16gb'
|
||||
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04"}'
|
||||
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}"}'
|
||||
|
||||
Conformance:
|
||||
needs: [ Build, Smart_CI ]
|
||||
|
|
@ -358,13 +362,13 @@ jobs:
|
|||
#
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -379,7 +383,7 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -423,7 +427,7 @@ jobs:
|
|||
|
||||
- name: Upload Conformance Artifacts
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: conformance_artifacts_${{ matrix.TEST_TYPE }}-${{ env.TEST_DEVICE }}
|
||||
path: ${{ env.CONFORMANCE_ARTIFACTS_DIR }}/conformance_artifacts.tar.gz
|
||||
|
|
@ -449,7 +453,7 @@ jobs:
|
|||
|
||||
- name: Upload Conformance Artifacts
|
||||
if: ${{ matrix.TEST_TYPE == 'API' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: conformance_artifacts_${{ matrix.TEST_TYPE }}-TEMPLATE
|
||||
path: ${{ env.CONFORMANCE_ARTIFACTS_DIR }}/conformance_artifacts.tar.gz
|
||||
|
|
@ -470,79 +474,79 @@ jobs:
|
|||
name: ONNX Models Tests
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).Python_API.test ||
|
||||
fromJSON(needs.smart_ci.outputs.affected_components).ONNX_FE.test
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
uses: ./.github/workflows/job_onnx_models_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-16-cores-32gb'
|
||||
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
|
||||
runner: 'aks-linux-16-cores-64gb'
|
||||
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
||||
|
||||
CXX_Unit_Tests:
|
||||
name: C++ unit tests
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
uses: ./.github/workflows/job_cxx_unit_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-4-cores-16gb'
|
||||
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
|
||||
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
|
||||
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
||||
|
||||
Python_Unit_Tests:
|
||||
name: Python unit tests
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
uses: ./.github/workflows/job_python_unit_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-4-cores-16gb'
|
||||
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
|
||||
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
||||
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
||||
|
||||
TensorFlow_Layer_Tests:
|
||||
name: TensorFlow Layer Tests
|
||||
needs: [ Build, Smart_CI, Openvino_tokenizers ]
|
||||
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
||||
uses: ./.github/workflows/job_tensorflow_layer_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-4-cores-16gb'
|
||||
shell: bash
|
||||
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
|
||||
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
||||
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
||||
|
||||
CPU_Functional_Tests:
|
||||
name: CPU functional tests
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
uses: ./.github/workflows/job_cpu_functional_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-8-cores-32gb'
|
||||
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04'
|
||||
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_20_04_x64 }}
|
||||
|
||||
TensorFlow_Models_Tests_Precommit:
|
||||
name: TensorFlow Models tests
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test ||
|
||||
fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test
|
||||
needs: [ Build, Smart_CI, Openvino_tokenizers ]
|
||||
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
||||
uses: ./.github/workflows/job_tensorflow_models_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-8-cores-16gb'
|
||||
model_scope: 'precommit'
|
||||
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
|
||||
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
||||
|
||||
TensorFlow_Models_Tests_Nightly_TF_HUB:
|
||||
name: TensorFlow TF Hub Models tests
|
||||
if: ${{ github.event_name == 'schedule' }}
|
||||
needs: [ Build, Smart_CI, Openvino_tokenizers ]
|
||||
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
||||
uses: ./.github/workflows/job_tensorflow_models_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-8-cores-32gb'
|
||||
runner: 'aks-linux-8-cores-64gb'
|
||||
model_scope: 'nightly_tf_hub'
|
||||
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
|
||||
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
||||
|
||||
TensorFlow_Models_Tests_Nightly_HF:
|
||||
name: TensorFlow Hugging Face Models tests
|
||||
if: ${{ github.event_name == 'schedule' }}
|
||||
needs: [ Build, Smart_CI, Openvino_tokenizers ]
|
||||
needs: [ Docker, Build, Smart_CI, Openvino_tokenizers ]
|
||||
uses: ./.github/workflows/job_tensorflow_models_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-8-cores-32gb'
|
||||
runner: 'aks-linux-8-cores-64gb'
|
||||
model_scope: 'nightly_hf'
|
||||
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}'
|
||||
container: '{"image": "${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64 }}", "volumes": ["/mount:/mount"]}'
|
||||
|
||||
# TODO: Switch back to self-hosted runners
|
||||
# container:
|
||||
|
|
@ -560,14 +564,14 @@ jobs:
|
|||
|
||||
NVIDIA_Plugin:
|
||||
name: NVIDIA plugin
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
timeout-minutes: 15
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
runs-on: aks-linux-16-cores-32gb
|
||||
container:
|
||||
image: openvinogithubactions.azurecr.io/dockerhub/nvidia/cuda:11.8.0-runtime-ubuntu20.04
|
||||
image: ${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_20_04_x64_nvidia }}
|
||||
volumes:
|
||||
- /mount:/mount
|
||||
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING
|
||||
|
|
@ -591,28 +595,14 @@ jobs:
|
|||
if: fromJSON(needs.smart_ci.outputs.affected_components).NVIDIA
|
||||
|
||||
steps:
|
||||
- name: Set apt retries
|
||||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Fetch install_build_dependencies.sh
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
sparse-checkout: |
|
||||
install_build_dependencies.sh
|
||||
sparse-checkout-cone-mode: false
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
|
||||
- name: Install Prerequisites
|
||||
run: apt update && apt install -y git ca-certificates
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO Developer package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_developer_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
|
@ -628,44 +618,12 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: ${{ env.OPENVINO_CONTRIB_REPO }}
|
||||
ref: 'master'
|
||||
|
||||
#
|
||||
# Dependencies
|
||||
#
|
||||
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
${OPENVINO_REPO}/install_build_dependencies.sh
|
||||
apt -y --no-install-recommends install software-properties-common curl
|
||||
|
||||
- name: Install sccache
|
||||
uses: mozilla-actions/sccache-action@v0.0.4
|
||||
with:
|
||||
version: "v0.7.5"
|
||||
|
||||
- name: Install CUDA
|
||||
run: |
|
||||
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
|
||||
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
|
||||
|
||||
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
|
||||
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
|
||||
apt update
|
||||
apt install -y \
|
||||
libcudnn8=8.9.4.*-1+cuda11.8 \
|
||||
libcudnn8-dev=8.9.4.*-1+cuda11.8 \
|
||||
libcudnn8-samples=8.9.4.*-1+cuda11.8 \
|
||||
cuda-runtime-11-8 \
|
||||
cuda-11-8 \
|
||||
libcutensor1=1.6.1.5-1 \
|
||||
libcutensor-dev=1.6.1.5-1 \
|
||||
cuda-drivers=520.61.05-1
|
||||
|
||||
#
|
||||
# Build
|
||||
#
|
||||
|
|
@ -694,119 +652,44 @@ jobs:
|
|||
affected-components: ${{ needs.smart_ci.outputs.affected_components }}
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).TOKENIZERS
|
||||
|
||||
GPU:
|
||||
name: GPU ${{ matrix.TEST_TYPE }} Tests
|
||||
iGPU:
|
||||
name: iGPU Tests
|
||||
needs: [ Build, Smart_CI ]
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).GPU
|
||||
timeout-minutes: 80
|
||||
runs-on: [ self-hosted, gpu ]
|
||||
uses: ./.github/workflows/job_gpu_tests.yml
|
||||
strategy:
|
||||
max-parallel: 2
|
||||
fail-fast: false
|
||||
matrix:
|
||||
TEST_TYPE: ['unit', 'func']
|
||||
container:
|
||||
image: ubuntu:20.04
|
||||
options: --device /dev/dri:/dev/dri --group-add 109 --group-add 44
|
||||
volumes:
|
||||
- /dev/dri:/dev/dri
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
|
||||
INSTALL_DIR: ${{ github.workspace }}/install
|
||||
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
|
||||
GTEST_PARALLEL_SCRIPT: ${{ github.workspace }}/gtest_parallel.py
|
||||
steps:
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: 'openvino_package'
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
with:
|
||||
device: 'igpu'
|
||||
test_type: ${{ matrix.TEST_TYPE }}
|
||||
runner: "[ 'self-hosted', 'igpu' ]"
|
||||
container: '{"image": "ubuntu:20.04", "volumes": ["/dev/dri:/dev/dri"], "options": "--group-add 109 --group-add 44
|
||||
--device /dev/dri:/dev/dri"}'
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).GPU
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: 'openvino_tests'
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
||||
# Needed as ${{ github.workspace }} is not working correctly when using Docker
|
||||
- name: Setup Variables
|
||||
run: |
|
||||
echo "INSTALL_DIR=$GITHUB_WORKSPACE/install" >> "$GITHUB_ENV"
|
||||
echo "INSTALL_TEST_DIR=$GITHUB_WORKSPACE/install/tests" >> "$GITHUB_ENV"
|
||||
echo "GTEST_PARALLEL_SCRIPT=$GITHUB_WORKSPACE/gtest_parallel.py" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Extract OpenVINO packages
|
||||
run: |
|
||||
pushd $INSTALL_DIR
|
||||
tar -xzf openvino_package.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
pushd $INSTALL_TEST_DIR
|
||||
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
|
||||
popd
|
||||
|
||||
- name: Install dependencies (Linux)
|
||||
run: |
|
||||
$INSTALL_DIR/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -c=gpu -y
|
||||
|
||||
apt-get update && apt-get install -y wget software-properties-common ca-certificates gpg-agent tzdata
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
|
||||
TZ: "Europe/London" # to prevent tzdata from waiting user input
|
||||
|
||||
- name: Setup Python ${{ env.PYTHON_VERSION }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
|
||||
- name: Get gtest-parallel script
|
||||
run: wget https://raw.githubusercontent.com/google/gtest-parallel/master/gtest_parallel.py
|
||||
|
||||
- name: Install GPU Drivers
|
||||
run: |
|
||||
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-core_1.0.15985.7_amd64.deb
|
||||
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.15985.7/intel-igc-opencl_1.0.15985.7_amd64.deb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu-dbgsym_1.3.28454.6_amd64.ddeb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-level-zero-gpu_1.3.28454.6_amd64.deb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd-dbgsym_24.05.28454.6_amd64.ddeb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/intel-opencl-icd_24.05.28454.6_amd64.deb
|
||||
wget https://github.com/intel/compute-runtime/releases/download/24.05.28454.6/libigdgmm12_22.3.11_amd64.deb
|
||||
dpkg -i *.deb
|
||||
|
||||
#
|
||||
# Tests
|
||||
#
|
||||
|
||||
- name: OpenVINO GPU ${{ matrix.TEST_TYPE }} Tests
|
||||
run: |
|
||||
source ${INSTALL_DIR}/setupvars.sh
|
||||
|
||||
rm -rf ${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests && mkdir -p ${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests
|
||||
|
||||
test_filter=''
|
||||
if [[ "${{ matrix.TEST_TYPE }}" == "unit" ]]; then
|
||||
# Ticket: 138018
|
||||
test_filter='-*scatter_nd_update_gpu.dynamic_padded_output*:*border_gpu.basic_zero_input*:*bicubic_zeros_no_align_data1x1*:*bicubic_border_align_batches*:*bilinear_zeros_no_align_data1x1*:*non_zero_gpu.empty_input*:*mark_shape_of_subgraphs.concat_with_empty_tensor_inputs*:*concat_cpu_impl.dynamic_4d_f*:*border_gpu.basic_zero_input_dynamic*:*network_test.model_with_empty_input_is_not_dynamic*:*bicubic_zeros_align_data1x1*'
|
||||
else
|
||||
test_filter='*smoke*'
|
||||
fi
|
||||
python3 ${GTEST_PARALLEL_SCRIPT} ${INSTALL_TEST_DIR}/ov_gpu_${{ matrix.TEST_TYPE }}_tests --dump_json_test_results=${INSTALL_TEST_DIR}/gpu_${{ matrix.TEST_TYPE }}_tests/ov_gpu_${{ matrix.TEST_TYPE }}_tests.json -- --report_unique_name --gtest_filter=$test_filter
|
||||
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
name: test-results-${{ matrix.TEST_TYPE }}-gpu
|
||||
path: ${{ env.INSTALL_TEST_DIR }}/gpu_${{ matrix.TEST_TYPE }}_tests
|
||||
if-no-files-found: 'error'
|
||||
dGPU:
|
||||
name: dGPU Tests
|
||||
needs: [ Build, Smart_CI ]
|
||||
uses: ./.github/workflows/job_gpu_tests.yml
|
||||
strategy:
|
||||
max-parallel: 2
|
||||
fail-fast: false
|
||||
matrix:
|
||||
TEST_TYPE: ['unit', 'func']
|
||||
with:
|
||||
device: 'dgpu'
|
||||
test_type: ${{ matrix.TEST_TYPE }}
|
||||
runner: "[ 'self-hosted', 'dgpu' ]"
|
||||
container: '{"image": "ubuntu:20.04", "volumes": ["/dev/dri:/dev/dri"], "options": "--group-add 109 --group-add 44
|
||||
--device /dev/dri/card0:/dev/dri/card0 --device /dev/dri/renderD128:/dev/dri/renderD128"}'
|
||||
if: ${{ github.event_name == 'schedule' }}
|
||||
|
||||
Overall_Status:
|
||||
name: ci/gha_overall_status
|
||||
needs: [Smart_CI, Build, Debian_Packages, Samples, Conformance, ONNX_Runtime, CXX_Unit_Tests, Python_Unit_Tests, TensorFlow_Layer_Tests,
|
||||
CPU_Functional_Tests, TensorFlow_Models_Tests_Precommit, PyTorch_Models_Tests, NVIDIA_Plugin, Openvino_tokenizers, GPU]
|
||||
CPU_Functional_Tests, TensorFlow_Models_Tests_Precommit, PyTorch_Models_Tests, NVIDIA_Plugin, Openvino_tokenizers, iGPU]
|
||||
if: ${{ always() }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-arm
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -26,7 +28,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -59,7 +61,7 @@ jobs:
|
|||
images: "${{ steps.handle_docker.outputs.images }}"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- uses: ./.github/actions/handle_docker
|
||||
id: handle_docker
|
||||
|
|
@ -106,13 +108,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: ${{ env.OPENVINO_CONTRIB_REPO }}
|
||||
|
|
@ -245,7 +247,7 @@ jobs:
|
|||
# Upload build artifacts and logs
|
||||
#
|
||||
- name: Upload build logs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: build_logs
|
||||
|
|
@ -254,7 +256,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
||||
|
|
@ -262,7 +264,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino developer package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_developer_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_developer_package.tar.gz
|
||||
|
|
@ -270,7 +272,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino js package
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_js_package
|
||||
path: ${{ env.INSTALL_DIR_JS }}
|
||||
|
|
@ -278,7 +280,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino debian packages
|
||||
if: ${{ 'false' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_debian_packages
|
||||
path: ${{ env.BUILD_DIR }}/*.deb
|
||||
|
|
@ -286,7 +288,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-cc
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -26,7 +28,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -59,13 +61,14 @@ jobs:
|
|||
images: "${{ steps.handle_docker.outputs.images }}"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- uses: ./.github/actions/handle_docker
|
||||
id: handle_docker
|
||||
with:
|
||||
images: |
|
||||
ov_build/ubuntu_22_04_x64_cc
|
||||
ov_test/ubuntu_22_04_x64
|
||||
registry: 'openvinogithubactions.azurecr.io'
|
||||
dockerfiles_root_dir: '.github/dockerfiles'
|
||||
changed_components: ${{ needs.smart_ci.outputs.changed_components }}
|
||||
|
|
@ -104,13 +107,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone test models
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/testdata'
|
||||
path: ${{ env.MODELS_PATH }}
|
||||
|
|
@ -217,7 +220,7 @@ jobs:
|
|||
# Upload build artifacts and logs
|
||||
#
|
||||
- name: Upload build logs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: always()
|
||||
with:
|
||||
name: build_logs
|
||||
|
|
@ -226,7 +229,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
||||
|
|
@ -234,7 +237,7 @@ jobs:
|
|||
|
||||
- name: Upload selective build statistics package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_selective_build_stat
|
||||
path: ${{ env.BUILD_DIR }}/openvino_selective_build_stat.tar.gz
|
||||
|
|
@ -242,7 +245,7 @@ jobs:
|
|||
|
||||
- name: Upload OpenVINO tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
||||
|
|
@ -276,13 +279,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone test models
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/testdata'
|
||||
path: ${{ env.MODELS_PATH }}
|
||||
|
|
@ -290,7 +293,7 @@ jobs:
|
|||
ref: 'master'
|
||||
|
||||
- name: Download selective build statistics package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_selective_build_stat
|
||||
path: ${{ env.SELECTIVE_BUILD_STAT_DIR }}
|
||||
|
|
@ -333,11 +336,11 @@ jobs:
|
|||
CPU_Functional_Tests:
|
||||
name: CPU functional tests
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test
|
||||
needs: [ Build, Smart_CI ]
|
||||
needs: [ Docker, Build, Smart_CI ]
|
||||
uses: ./.github/workflows/job_cpu_functional_tests.yml
|
||||
with:
|
||||
runner: 'aks-linux-8-cores-32gb'
|
||||
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04'
|
||||
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_x64 }}
|
||||
|
||||
Overall_Status:
|
||||
name: ci/gha_overall_status_linux_cc
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-riscv
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Smart_CI:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
@ -24,7 +26,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -75,7 +77,7 @@ jobs:
|
|||
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-sanitizers
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PIP_CACHE_PATH: /mount/caches/pip/linux
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
|
@ -62,13 +64,13 @@ jobs:
|
|||
apt-get install --assume-yes --no-install-recommends git ca-certificates
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: ${{ env.OPENVINO_CONTRIB_REPO }}
|
||||
|
|
@ -184,7 +186,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package_${{ matrix.SANITIZER }}
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
||||
|
|
@ -192,7 +194,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests_${{ matrix.SANITIZER }}
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
||||
|
|
@ -228,13 +230,13 @@ jobs:
|
|||
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: ${{ format('openvino_package_{0}', matrix.SANITIZER) }}
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: ${{ format('openvino_tests_{0}', matrix.SANITIZER) }}
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -264,7 +266,7 @@ jobs:
|
|||
apt update && apt --assume-yes install clang lld
|
||||
|
||||
- name: Fetch Sanitizer Suppression Lists
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
tests/lsan/suppressions.txt
|
||||
|
|
@ -401,7 +403,7 @@ jobs:
|
|||
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpImplTests.xml
|
||||
|
||||
- name: AUTO unit tests
|
||||
if: ${{ 'false' }} # Ticket: 134423
|
||||
if: always()
|
||||
run: |
|
||||
source ${INSTALL_DIR}/setupvars.sh
|
||||
${INSTALL_TEST_DIR}/ov_auto_unit_tests --gtest_print_time=1 \
|
||||
|
|
@ -460,7 +462,7 @@ jobs:
|
|||
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-cpp
|
||||
|
|
|
|||
|
|
@ -29,11 +29,12 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-mac-main
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
||||
jobs:
|
||||
|
||||
Smart_CI:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
|
|
@ -41,7 +42,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -79,13 +80,13 @@ jobs:
|
|||
BUILD_DIR: ${{ github.workspace }}/build
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: 'openvino_contrib'
|
||||
|
|
@ -130,7 +131,7 @@ jobs:
|
|||
#
|
||||
|
||||
- name: Setup ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
|
||||
with:
|
||||
max-size: "2000M"
|
||||
# Should save cache only if run in the master branch of the base repo
|
||||
|
|
@ -203,7 +204,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
||||
|
|
@ -211,7 +212,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
||||
|
|
@ -219,7 +220,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino js package
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_js_package
|
||||
path: ${{ env.INSTALL_DIR_JS }}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-mac-arm64
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
||||
|
|
@ -40,7 +42,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -78,13 +80,13 @@ jobs:
|
|||
BUILD_DIR: ${{ github.workspace }}/build
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: 'openvino_contrib'
|
||||
|
|
@ -129,7 +131,7 @@ jobs:
|
|||
#
|
||||
|
||||
- name: Setup ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
|
||||
with:
|
||||
max-size: "2000M"
|
||||
# Should save cache only if run in the master branch of the base repo
|
||||
|
|
@ -202,7 +204,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
|
||||
|
|
@ -210,7 +212,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
|
||||
|
|
@ -218,7 +220,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino js package
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_js_package
|
||||
path: ${{ env.INSTALL_DIR_JS }}
|
||||
|
|
|
|||
|
|
@ -16,20 +16,22 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Pylint-UT:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ hashFiles('tools/mo/requirements*.txt') }}
|
||||
|
|
@ -53,4 +55,4 @@ jobs:
|
|||
|
||||
- name: Pylint-MO
|
||||
run: pylint -d C,R,W openvino/tools/mo
|
||||
working-directory: tools/mo
|
||||
working-directory: tools/mo
|
||||
|
|
|
|||
|
|
@ -11,20 +11,22 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Pylint-UT:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ hashFiles('src/bindings/python/requirements*.txt') }}
|
||||
|
|
|
|||
|
|
@ -20,15 +20,17 @@ concurrency:
|
|||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
linters:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
|
||||
with:
|
||||
python-version: '3.8'
|
||||
|
||||
|
|
@ -47,7 +49,7 @@ jobs:
|
|||
git diff > samples_diff.diff
|
||||
working-directory: samples/python
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: failure()
|
||||
with:
|
||||
name: samples_diff
|
||||
|
|
@ -65,7 +67,7 @@ jobs:
|
|||
git diff > pyopenvino_diff.diff
|
||||
working-directory: src/bindings/python/src/openvino
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: failure()
|
||||
with:
|
||||
name: pyopenvino_diff
|
||||
|
|
@ -83,7 +85,7 @@ jobs:
|
|||
git diff > wheel_diff.diff
|
||||
working-directory: src/bindings/python/wheel
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: failure()
|
||||
with:
|
||||
name: wheel_diff
|
||||
|
|
@ -111,4 +113,3 @@ jobs:
|
|||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: '.github'
|
||||
|
||||
|
|
|
|||
|
|
@ -4,15 +4,16 @@ on:
|
|||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v9
|
||||
- uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0
|
||||
with:
|
||||
stale-issue-message: 'This issue will be closed in a week because of 9 months of no activity.'
|
||||
stale-pr-message: 'This PR will be closed in a week because of 2 weeks of no activity.'
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-webassembly
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Smart_CI:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
@ -21,7 +23,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -64,13 +66,13 @@ jobs:
|
|||
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
submodules: 'true'
|
||||
|
||||
- name: Install sccache
|
||||
uses: mozilla-actions/sccache-action@v0.0.4
|
||||
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4
|
||||
with:
|
||||
version: "v0.7.5"
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ env:
|
|||
PIP_CACHE_PATH: /mount/caches/pip/win
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
Smart_CI:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
@ -24,7 +26,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -67,13 +69,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone OpenVINO Contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/openvino_contrib'
|
||||
path: 'openvino_contrib'
|
||||
|
|
@ -150,7 +152,9 @@ jobs:
|
|||
${{ runner.os }}-${{ runner.arch }}-ccache
|
||||
|
||||
- name: Configure Developer Command Prompt for Microsoft Visual C++
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
|
||||
with:
|
||||
toolset: 14.40
|
||||
|
||||
- name: Set SSL_CERT_FILE for model downloading for unit tests
|
||||
run: echo SSL_CERT_FILE=$(python3 -m certifi) >> $env:GITHUB_ENV
|
||||
|
|
@ -215,14 +219,14 @@ jobs:
|
|||
#
|
||||
|
||||
- name: Upload openvino package
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.BUILD_DIR }}/openvino_package.zip
|
||||
if-no-files-found: 'error'
|
||||
|
||||
- name: Upload openvino tests package
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.zip
|
||||
|
|
@ -230,7 +234,7 @@ jobs:
|
|||
|
||||
- name: Upload openvino js package
|
||||
if: fromJSON(needs.smart_ci.outputs.affected_components).JS_API
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_js_package
|
||||
path: ${{ env.INSTALL_DIR_JS }}
|
||||
|
|
@ -253,13 +257,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -274,7 +278,7 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -339,20 +343,20 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Fetch OpenVINO JS sources
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
src/bindings/js
|
||||
path: 'openvino'
|
||||
|
||||
- name: Download OpenVINO js package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_js_package
|
||||
path: ${{ env.OPENVINO_JS_LIBS_DIR }}
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
|
|
@ -405,13 +409,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -426,7 +430,7 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -563,7 +567,7 @@ jobs:
|
|||
run: python3 -m pytest -s ${{ env.INSTALL_TEST_DIR }}/ovc/unit_tests --junitxml=${{ env.INSTALL_TEST_DIR }}/TEST-OpenVinoConversion.xml
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-python
|
||||
|
|
@ -593,13 +597,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -769,7 +773,7 @@ jobs:
|
|||
${{ env.INSTALL_TEST_DIR }}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-cpp
|
||||
|
|
@ -793,13 +797,13 @@ jobs:
|
|||
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test
|
||||
steps:
|
||||
- name: Download OpenVINO package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_package
|
||||
path: ${{ env.INSTALL_DIR }}
|
||||
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -814,7 +818,7 @@ jobs:
|
|||
popd
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -832,7 +836,7 @@ jobs:
|
|||
run: python3 -m pip install -r ${{ github.workspace }}\install\tests\functional_test_utils\layer_tests_summary\requirements.txt
|
||||
|
||||
- name: Restore tests execution time
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
with:
|
||||
path: ${{ env.PARALLEL_TEST_CACHE }}
|
||||
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }}
|
||||
|
|
@ -846,14 +850,14 @@ jobs:
|
|||
timeout-minutes: 60
|
||||
|
||||
- name: Save tests execution time
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
if: github.ref_name == 'master'
|
||||
with:
|
||||
path: ${{ env.PARALLEL_TEST_CACHE }}
|
||||
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }}
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-functional-cpu
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ concurrency:
|
|||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-windows-cc
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: '3.11'
|
||||
|
||||
|
|
@ -27,7 +29,7 @@ jobs:
|
|||
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
|
||||
steps:
|
||||
- name: checkout action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: .github/actions/smart-ci
|
||||
|
||||
|
|
@ -50,7 +52,7 @@ jobs:
|
|||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
runs-on: aks-win-8-cores-64gb
|
||||
runs-on: aks-win-32-cores-128gb
|
||||
env:
|
||||
CMAKE_BUILD_TYPE: 'Release'
|
||||
CMAKE_GENERATOR: 'Ninja Multi-Config'
|
||||
|
|
@ -70,13 +72,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone test models
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/testdata'
|
||||
path: 'testdata'
|
||||
|
|
@ -149,7 +151,9 @@ jobs:
|
|||
${{ runner.os }}-${{ runner.arch }}-ccache
|
||||
|
||||
- name: Configure Developer Command Prompt for Microsoft Visual C++
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
|
||||
with:
|
||||
toolset: 14.40
|
||||
|
||||
- name: Set SSL_CERT_FILE for model downloading for unit tests
|
||||
run: echo SSL_CERT_FILE=$(python3 -m certifi) >> $env:GITHUB_ENV
|
||||
|
|
@ -172,10 +176,11 @@ jobs:
|
|||
- name: Clean ccache stats
|
||||
run: '& ccache --zero-stats'
|
||||
|
||||
# If the build fails due to running out of RAM, please decrease the number of parallel jobs (--parallel n)
|
||||
- name: Cmake build - CC COLLECT
|
||||
run: |
|
||||
cmake --build ${{ env.BUILD_DIR }} --parallel 8 --config ${{ env.CMAKE_BUILD_TYPE }} && `
|
||||
cmake --build ${{ env.BUILD_DIR }} --parallel 8 --config ${{ env.CMAKE_BUILD_TYPE }} --target sea_itt_lib
|
||||
cmake --build ${{ env.BUILD_DIR }} --parallel 16 --config ${{ env.CMAKE_BUILD_TYPE }} && `
|
||||
cmake --build ${{ env.BUILD_DIR }} --parallel 16 --config ${{ env.CMAKE_BUILD_TYPE }} --target sea_itt_lib
|
||||
|
||||
- name: Show ccache stats
|
||||
run: '& ccache --show-stats'
|
||||
|
|
@ -242,7 +247,7 @@ jobs:
|
|||
|
||||
- name: Upload selective build statistics package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_selective_build_stat
|
||||
path: ${{ env.BUILD_DIR }}/openvino_selective_build_stat.zip
|
||||
|
|
@ -250,7 +255,7 @@ jobs:
|
|||
|
||||
- name: Upload OpenVINO tests package
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.BUILD_DIR }}/openvino_tests.zip
|
||||
|
|
@ -262,7 +267,7 @@ jobs:
|
|||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
runs-on: aks-win-8-cores-64gb
|
||||
runs-on: aks-win-32-cores-128gb
|
||||
env:
|
||||
CMAKE_BUILD_TYPE: 'Release'
|
||||
OPENVINO_REPO: "${{ github.workspace }}\\openvino"
|
||||
|
|
@ -273,13 +278,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
path: 'openvino'
|
||||
submodules: 'true'
|
||||
|
||||
- name: Clone test models
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
repository: 'openvinotoolkit/testdata'
|
||||
path: 'testdata'
|
||||
|
|
@ -287,7 +292,7 @@ jobs:
|
|||
ref: 'master'
|
||||
|
||||
- name: Download selective build statistics package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_selective_build_stat
|
||||
path: ${{ env.SELECTIVE_BUILD_STAT_DIR }}
|
||||
|
|
@ -349,7 +354,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Download OpenVINO tests package
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
||||
with:
|
||||
name: openvino_tests
|
||||
path: ${{ env.INSTALL_TEST_DIR }}
|
||||
|
|
@ -358,7 +363,7 @@ jobs:
|
|||
run: Expand-Archive ${{ env.INSTALL_TEST_DIR }}/openvino_tests.zip -DestinationPath "${{ env.INSTALL_TEST_DIR }}"
|
||||
|
||||
- name: Fetch setup_python action
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: |
|
||||
.github/actions/setup_python/action.yml
|
||||
|
|
@ -376,7 +381,7 @@ jobs:
|
|||
run: python3 -m pip install -r ${{ env.INSTALL_TEST_DIR }}/layer_tests_summary/requirements.txt
|
||||
|
||||
- name: Restore tests execution time
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
with:
|
||||
path: ${{ env.PARALLEL_TEST_CACHE }}
|
||||
key: ${{ runner.os }}-tests-functional-cpu-stamp-${{ github.sha }}
|
||||
|
|
@ -391,7 +396,7 @@ jobs:
|
|||
timeout-minutes: 60
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: test-results-functional-cpu
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ on:
|
|||
- '.github/workflows/workflow_rerunner.yml'
|
||||
- '.github/scripts/workflow_rerun/**'
|
||||
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
rerun:
|
||||
name: Rerun Workflow
|
||||
|
|
@ -28,7 +30,7 @@ jobs:
|
|||
checks: read
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: '.github/scripts/workflow_rerun'
|
||||
|
||||
|
|
@ -59,7 +61,7 @@ jobs:
|
|||
runs-on: aks-linux-2-cores-8gb
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
with:
|
||||
sparse-checkout: '.github/scripts/workflow_rerun'
|
||||
lfs: true
|
||||
|
|
|
|||
|
|
@ -226,11 +226,3 @@ function(ov_coverage_merge)
|
|||
|
||||
add_dependencies(ov_coverage_${OV_COVERAGE_OUTPUT}_info ${dependencies})
|
||||
endfunction()
|
||||
|
||||
# deprecated
|
||||
|
||||
if(NOT TARGET ie_coverage)
|
||||
add_custom_target(ie_coverage)
|
||||
set_target_properties(ie_coverage PROPERTIES FOLDER coverage)
|
||||
add_dependencies(ie_coverage ov_coverage)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# custom OpenVINO values
|
||||
CppMethod: '^(operator\W+|[a-z_\d]+|signaling_NaN|quiet_NaN|OPENVINO_OP)$'
|
||||
ClassName: '^([A-Z][\w]+|b?float16|float8_e4m3|float8_e5m2|numeric_limits|ngraph_error|stopwatch|unsupported_op)$'
|
||||
ClassName: '^([A-Z][\w]+|b?float16|float8_e4m3|float8_e5m2|float4_e2m1|numeric_limits|ngraph_error|stopwatch|unsupported_op)$'
|
||||
StructName: '^([A-Z][\w]+|element_type_traits|hash|oi_pair|stat)$'
|
||||
FunctionName: '^(operator\W+|[a-z_\d]+)|PrintTo$'
|
||||
Namespace: '^([a-z\d_]*|InferenceEngine)$'
|
||||
|
|
@ -18,7 +18,7 @@ VariableReference: '^\w+$'
|
|||
|
||||
EnumName: '^[A-Z][\w]+$'
|
||||
# excepts element_type
|
||||
EnumConstantName: '^([A-Z\d_]+|undefined|dynamic|boolean|bf16|f16|f32|f64|i4|i8|i16|i32|i64|u1|u2|u3|u4|u6|u8|u16|u32|u64|nf4|f8e4m3|f8e5m2|string|asymmetric|align_corners|round_prefer_floor|round_prefer_ceil|floor|ceil|simple|nearest|linear|linear_onnx|cubic|area|scales|sizes|half_pixel|tf_half_pixel_for_nn|pytorch_half_pixel|asymetric)$'
|
||||
EnumConstantName: '^([A-Z\d_]+|undefined|dynamic|boolean|bf16|f16|f32|f64|i4|i8|i16|i32|i64|u1|u2|u3|u4|u6|u8|u16|u32|u64|nf4|f8e4m3|f8e5m2|f4e2m1|string|asymmetric|align_corners|round_prefer_floor|round_prefer_ceil|floor|ceil|simple|nearest|linear|linear_onnx|cubic|area|scales|sizes|half_pixel|tf_half_pixel_for_nn|pytorch_half_pixel|asymetric)$'
|
||||
# TODO: align
|
||||
UsingDeclaration: '^.*$'
|
||||
TypedefName: '^.*$'
|
||||
|
|
|
|||
|
|
@ -11,13 +11,11 @@ endif()
|
|||
macro(ov_option variable description value)
|
||||
option(${variable} "${description}" ${value})
|
||||
list(APPEND OV_OPTIONS ${variable})
|
||||
list(APPEND IE_OPTIONS ${variable})
|
||||
endmacro()
|
||||
|
||||
macro(ov_dependent_option variable description def_value condition fallback_value)
|
||||
cmake_dependent_option(${variable} "${description}" ${def_value} "${condition}" ${fallback_value})
|
||||
list(APPEND OV_OPTIONS ${variable})
|
||||
list(APPEND IE_OPTIONS ${variable})
|
||||
endmacro()
|
||||
|
||||
macro(ov_option_enum variable description value)
|
||||
|
|
@ -31,7 +29,6 @@ macro(ov_option_enum variable description value)
|
|||
endif()
|
||||
|
||||
list(APPEND OV_OPTIONS ${variable})
|
||||
list(APPEND IE_OPTIONS ${variable})
|
||||
|
||||
set(${variable} ${value} CACHE STRING "${description}")
|
||||
set_property(CACHE ${variable} PROPERTY STRINGS ${OPTION_ENUM_ALLOWED_VALUES})
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ endif()\n")
|
|||
|
||||
# detect where OPENVINO_EXTRA_MODULES contains folders with CMakeLists.txt
|
||||
# other folders are supposed to have sub-folders with CMakeLists.txt
|
||||
foreach(module_path IN LISTS OPENVINO_EXTRA_MODULES IE_EXTRA_MODULES)
|
||||
foreach(module_path IN LISTS OPENVINO_EXTRA_MODULES)
|
||||
get_filename_component(module_path "${module_path}" ABSOLUTE)
|
||||
if(EXISTS "${module_path}/CMakeLists.txt")
|
||||
list(APPEND extra_modules "${module_path}")
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ macro(ov_cpack_settings)
|
|||
2023.3.0 2023.3.1 2023.3.2 2023.3.3 2023.3.4 2023.3.5
|
||||
2024.0.0
|
||||
2024.1.0
|
||||
2024.2.0
|
||||
)
|
||||
|
||||
ov_check_conflicts_versions(conflicting_versions)
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ macro(ov_cpack_settings)
|
|||
2023.3.0 2023.3.1 2023.3.2 2023.3.3 2023.3.4 2023.3.5
|
||||
2024.0.0
|
||||
2024.1.0
|
||||
2024.2.0
|
||||
)
|
||||
|
||||
ov_check_conflicts_versions(conflicting_versions)
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ function(build_docs)
|
|||
set(DOXYGEN_MAPPING_SCRIPT "${SCRIPTS_DIR}/create_mapping.py")
|
||||
set(DOCS_MAPPING_SCRIPT "${SCRIPTS_DIR}/create_doc_mapping.py")
|
||||
set(BREATHE_APIDOC_SCRIPT "${SCRIPTS_DIR}/apidoc.py")
|
||||
set(OV_INSTALLATION_SCRIPT "${SCRIPTS_DIR}/install_appropriate_openvino_version.py")
|
||||
|
||||
# Doxygen/Sphinx setup
|
||||
set(DOXYGEN_XML_OUTPUT "${DOCS_BUILD_DIR}/xml")
|
||||
|
|
@ -62,7 +63,9 @@ function(build_docs)
|
|||
|
||||
if(${ENABLE_PYTHON_API})
|
||||
list(APPEND commands COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "STARTED preprocessing OpenVINO Python API")
|
||||
list(APPEND commands COMMAND ${Python3_EXECUTABLE} -m pip install openvino)
|
||||
list(APPEND commands COMMAND ${Python3_EXECUTABLE} ${OV_INSTALLATION_SCRIPT}
|
||||
--ov_dir=${SPHINX_SETUP_DIR}
|
||||
--python=${Python3_EXECUTABLE})
|
||||
list(APPEND commands COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green "FINISHED preprocessing OpenVINO Python API")
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Additional Resources
|
|||
|
||||
|
||||
.. meta::
|
||||
:description: Learn more about OpenVINO from benchmark results, case studies
|
||||
:description: Learn more about OpenVINO from benchmark results, case studies
|
||||
and lists of supported models, operations and devices.
|
||||
|
||||
.. toctree::
|
||||
|
|
@ -14,7 +14,7 @@ Additional Resources
|
|||
:hidden:
|
||||
|
||||
additional-resources/glossary
|
||||
additional-resources/legal-information
|
||||
Legal and Responsible AI Information <./additional-resources/legal-information>
|
||||
additional-resources/telemetry
|
||||
Case Studies <https://www.intel.com/openvino-success-stories>
|
||||
|
||||
|
|
@ -23,9 +23,9 @@ Additional Resources
|
|||
|
||||
:doc:`Glossary <additional-resources/glossary>` contains terms used in OpenVINO.
|
||||
|
||||
:doc:`Legal Information <additional-resources/legal-information>` has trademark information and other legal statements.
|
||||
:doc:`Legal and Responsible AI Information <additional-resources/legal-information>` provides trademark information and other legal statements.
|
||||
|
||||
:doc:`OpenVINO™ Telemetry <additional-resources/telemetry>` has detailed information on the telemetry data collection.
|
||||
:doc:`OpenVINO™ Telemetry <additional-resources/telemetry>` has detailed information on the telemetry data collection.
|
||||
|
||||
`Case Studies <https://www.intel.com/openvino-success-stories>`__ are articles about real-world examples of OpenVINO™ usage.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
.. {#openvino_docs_Legal_Information}
|
||||
|
||||
Legal Information
|
||||
=================
|
||||
Legal and Responsible AI Information
|
||||
=====================================
|
||||
|
||||
|
||||
.. meta::
|
||||
|
|
@ -46,4 +46,12 @@ Intel Global Human Right Principles
|
|||
Intel is committed to respecting human rights and avoiding causing or contributing to adverse
|
||||
impacts on human rights. See `Intel's Global Human Rights Principles <https://www.intel.com/content/dam/www/central-libraries/us/en/documents/policy-human-rights.pdf>`__.
|
||||
Intel's products and software are intended only to be used in applications that do not cause or
|
||||
contribute to adverse impacts on human rights.
|
||||
contribute to adverse impacts on human rights.
|
||||
|
||||
Model Card Statement
|
||||
###########################################################
|
||||
|
||||
We recommend that users, wherever you are sourcing the model from, should check for a model card,
|
||||
consult the model card for each model you access and use, and create one if you are developing
|
||||
or updating a model. A model card is a short document that provides key information to assess
|
||||
performance and validation and ensure appropriate use.
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
.. {#openvino_docs_performance_benchmarks}
|
||||
|
||||
Performance Benchmarks
|
||||
======================
|
||||
|
||||
|
|
@ -12,6 +10,7 @@ Performance Benchmarks
|
|||
:maxdepth: 1
|
||||
:hidden:
|
||||
|
||||
performance-benchmarks/generativeAI-benchmarks
|
||||
performance-benchmarks/performance-benchmarks-faq
|
||||
OpenVINO Accuracy <performance-benchmarks/model-accuracy-int8-fp32>
|
||||
performance-benchmarks/getting-performance-numbers
|
||||
|
|
@ -23,6 +22,8 @@ and :doc:`OpenVINO Model Server <../ovms_what_is_openvino_model_server>`, for a
|
|||
selection of public neural networks and Intel® devices. The results may help you decide which
|
||||
hardware to use in your applications or plan AI workload for the hardware you have already
|
||||
implemented in your solutions. Click the buttons below to see the chosen benchmark data.
|
||||
For more detailed view of performance numbers for generative AI models, check the
|
||||
:doc:`Generative AI Benchmark Results <./performance-benchmarks/generativeAI-benchmarks>`
|
||||
|
||||
.. grid:: 1 1 2 2
|
||||
:gutter: 4
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
Generative AI Benchmark Results
|
||||
===================================
|
||||
|
||||
This page will give you a detailed information on how OpenVINO performs running a selection of
|
||||
Generative AI models.
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
.. {#system_requirements}
|
||||
|
||||
System Requirements
|
||||
===================
|
||||
|
||||
|
|
@ -30,6 +28,7 @@ CPU
|
|||
|
||||
.. tab-item:: Supported Operating Systems
|
||||
|
||||
* Ubuntu 24.04 long-term support (LTS), 64-bit (Kernel 6.8+)
|
||||
* Ubuntu 22.04 long-term support (LTS), 64-bit (Kernel 5.15+)
|
||||
* Ubuntu 20.04 long-term support (LTS), 64-bit (Kernel 5.15+)
|
||||
* Ubuntu 18.04 long-term support (LTS) with limitations, 64-bit (Kernel 5.4+)
|
||||
|
|
@ -59,6 +58,7 @@ GPU
|
|||
|
||||
.. tab-item:: Supported Operating Systems
|
||||
|
||||
* Ubuntu 24.04 long-term support (LTS), 64-bit
|
||||
* Ubuntu 22.04 long-term support (LTS), 64-bit
|
||||
* Ubuntu 20.04 long-term support (LTS), 64-bit
|
||||
* Windows 10, 64-bit
|
||||
|
|
@ -75,7 +75,7 @@ GPU
|
|||
for information about your processor.
|
||||
* While this release of OpenVINO supports Ubuntu 20.04, the driver stack
|
||||
for Intel discrete graphic cards does not fully support Ubuntu 20.04.
|
||||
We recommend using Ubuntu 22.04 when executing on discrete graphics.
|
||||
We recommend using Ubuntu 22.04 and later when executing on discrete graphics.
|
||||
* The following minimum (i.e., used for old hardware) OpenCL™ driver's versions
|
||||
were used during OpenVINO internal validation: 22.43 for Ubuntu 22.04, 21.48
|
||||
for Ubuntu 20.04 and 21.49 for Red Hat Enterprise Linux 8 (some hardware may require
|
||||
|
|
@ -88,6 +88,7 @@ Intel® Neural Processing Unit
|
|||
|
||||
.. tab-item:: Operating Systems for NPU
|
||||
|
||||
* Ubuntu 24.04 long-term support (LTS), 64-bit
|
||||
* Ubuntu 22.04 long-term support (LTS), 64-bit
|
||||
* Windows 11, 64-bit (22H2, 23H2)
|
||||
|
||||
|
|
@ -106,6 +107,7 @@ Operating systems and developer environment
|
|||
|
||||
.. tab-item:: Linux OS
|
||||
|
||||
* Ubuntu 24.04 with Linux kernel 6.8+
|
||||
* Ubuntu 22.04 with Linux kernel 5.15+
|
||||
* Ubuntu 20.04 with Linux kernel 5.15+
|
||||
* Red Hat Enterprise Linux 8 with Linux kernel 5.4
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b78713020891a6655e3860338b7db430840560d8f2860162eca3d00b84533f24
|
||||
size 36362
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:353c5b7f35a8f9f6c2c3074485a5a4e51f8c6ee776214444666da4037cc44832
|
||||
size 45347
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:696672a8c38260147f2fa68d266866ab4390ef919fa092cea1149b0eb529c68e
|
||||
size 58557
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d378718b968f6a40555b31bf54af83fac978c3bfc07e234f9b1370229222cccd
|
||||
size 31092
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6b3511899521a49c1bfdc569e16b8ad1e12157fe107d2b86d25ee04ff67a85b2
|
||||
size 43066
|
||||
|
|
@ -37,7 +37,7 @@ compiled_model_3 = core.compile_model(
|
|||
# ! [ov:intel_cpu:multi_threading:part0]
|
||||
|
||||
# ! [ov:intel_cpu:multi_threading:part1]
|
||||
# Disable CPU threads pinning for inference when system supoprt it
|
||||
# Disable CPU thread pinning for inference when the system supports it
|
||||
compiled_model_4 = core.compile_model(
|
||||
model=model,
|
||||
device_name=device_name,
|
||||
|
|
|
|||
|
|
@ -171,8 +171,8 @@ if (m->match(node->output(0))) {
|
|||
bool openvino_api_examples(std::shared_ptr<ov::Node> node) {
|
||||
{
|
||||
// ! [ov:ports_example]
|
||||
// Let's suppose that node is opset8::Convolution operation
|
||||
// as we know opset8::Convolution has two input ports (data, weights) and one output port
|
||||
// Let's suppose that node is of ov::op::v0::Convolution type.
|
||||
// As we know ov::op::v0::Convolution has two input ports (data, weights) and one output port.
|
||||
ov::Input<ov::Node> data = node->input(0);
|
||||
ov::Input<ov::Node> weights = node->input(1);
|
||||
ov::Output<ov::Node> output = node->output(0);
|
||||
|
|
@ -181,7 +181,7 @@ ov::Output<ov::Node> output = node->output(0);
|
|||
auto pshape = data.get_partial_shape();
|
||||
auto el_type = data.get_element_type();
|
||||
|
||||
// Getting parent for input port
|
||||
// Getting parent for input port i.e. Output mapped by the input
|
||||
ov::Output<ov::Node> parent_output;
|
||||
parent_output = data.get_source_output();
|
||||
|
||||
|
|
@ -216,15 +216,15 @@ return true;
|
|||
|
||||
// ! [ov:replace_node]
|
||||
bool ov_replace_node(std::shared_ptr<ov::Node> node) {
|
||||
// Step 1. Verify that node has opset8::Negative type
|
||||
auto neg = std::dynamic_pointer_cast<ov::opset8::Negative>(node);
|
||||
// Step 1. Verify that node is of type ov::op::v0::Negative
|
||||
auto neg = std::dynamic_pointer_cast<ov::op::v0::Negative>(node);
|
||||
if (!neg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Step 2. Create opset8::Multiply operation where the first input is negative operation input and second as Constant with -1 value
|
||||
auto mul = std::make_shared<ov::opset8::Multiply>(neg->input_value(0),
|
||||
ov::opset8::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
|
||||
// Step 2. Create ov::op::v1::Multiply operation with the first input being the output going into Negative and second as Constant with -1 value
|
||||
auto mul = std::make_shared<ov::op::v1::Multiply>(neg->input_value(0),
|
||||
ov::op::v0::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
|
||||
|
||||
mul->set_friendly_name(neg->get_friendly_name());
|
||||
ov::copy_runtime_info(neg, mul);
|
||||
|
|
@ -233,18 +233,18 @@ bool ov_replace_node(std::shared_ptr<ov::Node> node) {
|
|||
ov::replace_node(neg, mul);
|
||||
return true;
|
||||
|
||||
// Step 4. Negative operation will be removed automatically because all consumers was moved to Multiply operation
|
||||
// Step 4. Negative operation will be removed automatically because all consumers were moved to Multiply operation
|
||||
}
|
||||
// ! [ov:replace_node]
|
||||
|
||||
bool ov_manual_replace_node(std::shared_ptr<ov::Node> node) {
|
||||
auto neg = std::dynamic_pointer_cast<ov::opset8::Negative>(node);
|
||||
auto neg = std::dynamic_pointer_cast<ov::op::v0::Negative>(node);
|
||||
if (!neg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto mul = std::make_shared<ov::opset8::Multiply>(neg->input_value(0),
|
||||
ov::opset8::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
|
||||
auto mul = std::make_shared<ov::op::v1::Multiply>(neg->input_value(0),
|
||||
ov::op::v0::Constant::create(neg->get_element_type(), ov::Shape{1}, {-1}));
|
||||
|
||||
mul->set_friendly_name(neg->get_friendly_name());
|
||||
ov::copy_runtime_info(neg, mul);
|
||||
|
|
@ -262,8 +262,8 @@ void insert_example(std::shared_ptr<ov::Node> node) {
|
|||
// Get all consumers for node
|
||||
auto consumers = node->output(0).get_target_inputs();
|
||||
|
||||
// Step 2. Create new node. Let it be opset8::Relu.
|
||||
auto new_node = std::make_shared<ov::opset8::Relu>(node);
|
||||
// Step 2. Create new node ov::op::v0::Relu.
|
||||
auto new_node = std::make_shared<ov::op::v0::Relu>(node);
|
||||
|
||||
// Step 3. Reconnect all consumers to new_node
|
||||
for (auto input : consumers) {
|
||||
|
|
@ -277,7 +277,7 @@ void insert_example_with_copy(std::shared_ptr<ov::Node> node) {
|
|||
// Make a node copy
|
||||
auto node_copy = node->clone_with_new_inputs(node->input_values());
|
||||
// Create new node
|
||||
auto new_node = std::make_shared<ov::opset8::Relu>(node_copy);
|
||||
auto new_node = std::make_shared<ov::op::v0::Relu>(node_copy);
|
||||
ov::replace_node(node, new_node);
|
||||
}
|
||||
// ! [ov:insert_node_with_copy]
|
||||
|
|
@ -290,12 +290,12 @@ bool success = ov::replace_output_update_name(node->output(0), node->input_value
|
|||
}
|
||||
|
||||
void replace_friendly_name() {
|
||||
auto div = std::make_shared<ov::opset8::Divide>();
|
||||
auto div = std::make_shared<ov::op::v1::Divide>();
|
||||
// ! [ov:replace_friendly_name]
|
||||
// Replace Div operation with Power and Multiply sub-graph and set original friendly name to Multiply operation
|
||||
auto pow = std::make_shared<ov::opset8::Power>(div->input(1).get_source_output(),
|
||||
auto pow = std::make_shared<ov::op::v1::Power>(div->input(1).get_source_output(),
|
||||
ov::op::v0::Constant::create(div->get_input_element_type(1), ov::Shape{1}, {-1}));
|
||||
auto mul = std::make_shared<ov::opset8::Multiply>(div->input(0).get_source_output(), pow);
|
||||
auto mul = std::make_shared<ov::op::v1::Multiply>(div->input(0).get_source_output(), pow);
|
||||
mul->set_friendly_name(div->get_friendly_name());
|
||||
ov::replace_node(div, mul);
|
||||
// ! [ov:replace_friendly_name]
|
||||
|
|
@ -304,10 +304,10 @@ ov::replace_node(div, mul);
|
|||
void constant_subgraph() {
|
||||
// ! [ov:constant_subgraph]
|
||||
// After ConstantFolding pass Power will be replaced with Constant
|
||||
auto input = std::make_shared<ov::opset8::Parameter>(ov::element::f32, ov::Shape{1});
|
||||
auto pow = std::make_shared<ov::opset8::Power>(ov::opset8::Constant::create(ov::element::f32, ov::Shape{1}, {2}),
|
||||
ov::opset8::Constant::create(ov::element::f32, ov::Shape{1}, {3}));
|
||||
auto mul = std::make_shared<ov::opset8::Multiply>(input /* not constant input */, pow);
|
||||
auto input = std::make_shared<ov::op::v0::Parameter>(ov::element::f32, ov::Shape{1});
|
||||
auto pow = std::make_shared<ov::op::v1::Power>(ov::op::v0::Constant::create(ov::element::f32, ov::Shape{1}, {2}),
|
||||
ov::op::v0::Constant::create(ov::element::f32, ov::Shape{1}, {3}));
|
||||
auto mul = std::make_shared<ov::op::v1::Multiply>(input /* not constant input */, pow);
|
||||
// ! [ov:constant_subgraph]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,251 @@
|
|||
// Copyright (C) 2018-2024 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// ! [ov::imports]
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "common_test_utils/matcher.hpp"
|
||||
#include "openvino/op/abs.hpp"
|
||||
#include "openvino/op/add.hpp"
|
||||
#include "openvino/op/matmul.hpp"
|
||||
#include "openvino/op/parameter.hpp"
|
||||
#include "openvino/op/relu.hpp"
|
||||
#include "openvino/op/sigmoid.hpp"
|
||||
#include "openvino/pass/pattern/op/optional.hpp"
|
||||
#include "openvino/pass/pattern/op/or.hpp"
|
||||
#include "openvino/pass/pattern/op/wrap_type.hpp"
|
||||
#include "transformations/utils/utils.hpp"
|
||||
|
||||
using namespace ov;
|
||||
using namespace ov::pass;
|
||||
using namespace std;
|
||||
// ! [ov::imports]
|
||||
|
||||
// ! [ov:create_simple_model_and_pattern]
|
||||
TEST(pattern, simple_model_and_pattern) {
|
||||
// Create a sample model
|
||||
PartialShape shape{2, 2};
|
||||
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
|
||||
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
|
||||
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
|
||||
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
|
||||
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
|
||||
|
||||
// Create a sample model
|
||||
auto pattern_mul = std::make_shared<ov::op::v0::MatMul>(pattern::any_input(), pattern::any_input(), false, false);
|
||||
auto pattern_abs = std::make_shared<ov::op::v0::Abs>(pattern_mul->output(0));
|
||||
auto pattern_relu = std::make_shared<ov::op::v0::Relu>(pattern_abs->output(0));
|
||||
|
||||
// Create a matcher and try to match the nodes
|
||||
TestMatcher tm;
|
||||
|
||||
// Should perfectly match
|
||||
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
|
||||
}
|
||||
// ! [ov:create_simple_model_and_pattern]
|
||||
|
||||
|
||||
// ! [ov:create_simple_model_and_pattern_wrap_type]
|
||||
TEST(pattern, simple_model_and_pattern_wrap_type) {
|
||||
// Create a sample model
|
||||
PartialShape shape{2, 2};
|
||||
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
|
||||
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
|
||||
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
|
||||
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
|
||||
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
|
||||
|
||||
// Create a sample model
|
||||
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
|
||||
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
|
||||
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
|
||||
|
||||
// Create a matcher and try to match the nodes
|
||||
TestMatcher tm;
|
||||
|
||||
// Should perfectly match
|
||||
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
|
||||
}
|
||||
// ! [ov:create_simple_model_and_pattern_wrap_type]
|
||||
|
||||
|
||||
// ! [ov:wrap_type_list]
|
||||
TEST(pattern, wrap_type_list) {
|
||||
// Create a sample model
|
||||
PartialShape shape{2, 2};
|
||||
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
|
||||
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
|
||||
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
|
||||
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
|
||||
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
|
||||
auto model_sig = std::make_shared<ov::op::v0::Sigmoid>(model_abs->output(0));
|
||||
auto model_result1 = std::make_shared<ov::op::v0::Result>(model_sig->output(0));
|
||||
|
||||
// Create a sample model
|
||||
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
|
||||
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
|
||||
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu, ov::op::v0::Sigmoid>({pattern_abs->output(0)});
|
||||
|
||||
// Create a matcher and try to match the nodes
|
||||
TestMatcher tm;
|
||||
|
||||
// The same pattern perfectly matches 2 different nodes
|
||||
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
|
||||
ASSERT_TRUE(tm.match(pattern_relu, model_sig));
|
||||
}
|
||||
// ! [ov:wrap_type_list]
|
||||
|
||||
void patterns_misc() {
|
||||
// ! [ov:any_input]
|
||||
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
|
||||
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
|
||||
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
|
||||
// ! [ov:any_input]
|
||||
|
||||
// ! [ov:wrap_type_predicate]
|
||||
ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern::any_input()}, pattern::consumers_count(2));
|
||||
// ! [ov:wrap_type_predicate]
|
||||
|
||||
|
||||
// ! [ov:any_input_predicate]
|
||||
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input([](const Output<Node>& value){
|
||||
return value.get_shape().size() == 4;}),
|
||||
pattern::any_input([](const Output<Node>& value){
|
||||
return value.get_shape().size() == 4;})});
|
||||
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
|
||||
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
|
||||
// ! [ov:any_input_predicate]
|
||||
|
||||
|
||||
// ! [ov:optional_predicate]
|
||||
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>(pattern_relu, pattern::consumers_count(2));
|
||||
// ! [ov:optional_predicate]
|
||||
}
|
||||
|
||||
|
||||
// ! [ov::pattern_or]
|
||||
TEST(pattern, pattern_or) {
|
||||
// Create a sample model
|
||||
PartialShape shape{2, 2};
|
||||
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
|
||||
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
|
||||
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
|
||||
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
|
||||
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
|
||||
|
||||
// Create a red branch
|
||||
auto red_pattern_add = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
|
||||
auto red_pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({red_pattern_add->output(0)});
|
||||
auto red_pattern_sigmoid = ov::pass::pattern::wrap_type<ov::op::v0::Sigmoid>({red_pattern_relu->output(0)});
|
||||
|
||||
// Create a blue branch
|
||||
auto blue_pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
|
||||
auto blue_pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({blue_pattern_mul->output(0)});
|
||||
auto blue_pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({blue_pattern_abs->output(0)});
|
||||
|
||||
// Create Or node
|
||||
auto pattern_or = std::make_shared<ov::pass::pattern::op::Or>(OutputVector{red_pattern_sigmoid->output(0), blue_pattern_relu->output(0)});
|
||||
|
||||
// Create a matcher and try to match the nodes
|
||||
TestMatcher tm;
|
||||
|
||||
// The same pattern perfectly matches 2 different nodes
|
||||
ASSERT_TRUE(tm.match(pattern_or, model_relu));
|
||||
}
|
||||
// ! [ov::pattern_or]
|
||||
|
||||
|
||||
// ! [ov:pattern_optional_middle]
|
||||
TEST(pattern, pattern_optional_middle) {
|
||||
// Create a sample model
|
||||
PartialShape shape{2, 2};
|
||||
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
|
||||
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
|
||||
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
|
||||
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
|
||||
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
|
||||
|
||||
// Create a sample pattern with an Optional node in the middle
|
||||
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
|
||||
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
|
||||
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>({pattern_abs->output(0)});
|
||||
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_sig_opt->output(0)});
|
||||
|
||||
// Create a matcher and try to match the nodes
|
||||
TestMatcher tm;
|
||||
|
||||
// Should perfectly match
|
||||
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
|
||||
}
|
||||
// ! [ov:pattern_optional_middle]
|
||||
|
||||
|
||||
// ! [ov:pattern_optional_top]
|
||||
TEST(pattern, pattern_optional_top) {
|
||||
// Create a sample model
|
||||
PartialShape shape{2, 2};
|
||||
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
|
||||
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
|
||||
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
|
||||
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
|
||||
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
|
||||
|
||||
// Create a sample pattern an optional top node
|
||||
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>(pattern::any_input());
|
||||
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern_sig_opt, pattern::any_input()});
|
||||
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
|
||||
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
|
||||
|
||||
// Create a matcher and try to match the nodes
|
||||
TestMatcher tm;
|
||||
|
||||
// Should perfectly match
|
||||
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
|
||||
}
|
||||
// ! [ov:pattern_optional_top]
|
||||
|
||||
|
||||
// ! [ov:pattern_optional_root]
|
||||
TEST(pattern, pattern_optional_root) {
|
||||
// Create a sample model
|
||||
PartialShape shape{2, 2};
|
||||
auto model_param1 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_param2 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_add = std::make_shared<ov::op::v1::Add>(model_param1->output(0), model_param2->output(0));
|
||||
auto model_param3 = std::make_shared<ov::op::v0::Parameter>(element::i32, shape);
|
||||
auto model_mul = std::make_shared<ov::op::v0::MatMul>(model_add->output(0), model_param3->output(0), false, false);
|
||||
auto model_abs = std::make_shared<ov::op::v0::Abs>(model_mul->output(0));
|
||||
auto model_relu = std::make_shared<ov::op::v0::Relu>(model_abs->output(0));
|
||||
auto model_result = std::make_shared<ov::op::v0::Result>(model_relu->output(0));
|
||||
|
||||
// Create a sample pattern an optional top node
|
||||
auto pattern_mul = ov::pass::pattern::wrap_type<ov::op::v0::MatMul>({pattern::any_input(), pattern::any_input()});
|
||||
auto pattern_abs = ov::pass::pattern::wrap_type<ov::op::v0::Abs>({pattern_mul->output(0)});
|
||||
auto pattern_relu = ov::pass::pattern::wrap_type<ov::op::v0::Relu>({pattern_abs->output(0)});
|
||||
auto pattern_sig_opt = ov::pass::pattern::optional<ov::op::v0::Sigmoid>(pattern_relu);
|
||||
|
||||
// Create a matcher and try to match the nodes
|
||||
TestMatcher tm;
|
||||
|
||||
// Should perfectly match
|
||||
ASSERT_TRUE(tm.match(pattern_relu, model_relu));
|
||||
}
|
||||
// ! [ov:pattern_optional_root]
|
||||
|
|
@ -0,0 +1,217 @@
|
|||
# Copyright (C) 2018-2024 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# ! [ov:imports]
|
||||
import pytest
|
||||
from openvino import PartialShape
|
||||
from openvino.runtime import opset13 as ops
|
||||
from openvino.runtime.passes import Matcher, WrapType, Or, AnyInput, Optional
|
||||
# ! [ov:imports]
|
||||
from openvino.runtime.passes import (
|
||||
consumers_count,
|
||||
has_static_dim,
|
||||
has_static_dims,
|
||||
has_static_shape,
|
||||
has_static_rank,
|
||||
type_matches,
|
||||
type_matches_any,
|
||||
)
|
||||
|
||||
# ! [ov:create_simple_model_and_pattern]
|
||||
def simple_model_and_pattern():
|
||||
# Create a sample model
|
||||
model_param1 = ops.parameter(PartialShape([2, 2]))
|
||||
model_param2 = ops.parameter(PartialShape([2, 2]))
|
||||
model_add = ops.add(model_param1, model_param2)
|
||||
model_param3 = ops.parameter(PartialShape([2, 2]))
|
||||
model_mul = ops.matmul(model_add, model_param3, False, False)
|
||||
model_abs = ops.abs(model_mul)
|
||||
model_relu = ops.relu(model_abs)
|
||||
model_result = ops.result(model_relu)
|
||||
|
||||
# Create a sample pattern
|
||||
pattern_mul = ops.matmul(AnyInput(), AnyInput(), False, False)
|
||||
pattern_abs = ops.abs(pattern_mul)
|
||||
pattern_relu = ops.relu(pattern_abs)
|
||||
|
||||
# Create a matcher and try to match the nodes
|
||||
matcher = Matcher(pattern_relu, "FindPattern")
|
||||
|
||||
# Should perfectly match
|
||||
assert matcher.match(model_relu)
|
||||
# ! [ov:create_simple_model_and_pattern]
|
||||
|
||||
# ! [ov:create_simple_model_and_pattern_wrap_type]
|
||||
def simple_model_and_pattern_wrap_type():
|
||||
model_param1 = ops.parameter(PartialShape([2, 2]))
|
||||
model_param2 = ops.parameter(PartialShape([2, 2]))
|
||||
model_add = ops.add(model_param1, model_param2)
|
||||
model_param3 = ops.parameter(PartialShape([2, 2]))
|
||||
model_mul = ops.matmul(model_add, model_param3, False, False)
|
||||
model_abs = ops.abs(model_mul)
|
||||
model_relu = ops.relu(model_abs)
|
||||
model_result = ops.result(model_relu)
|
||||
|
||||
# Create a sample pattern
|
||||
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
|
||||
pattern_abs = WrapType("opset13.Abs", pattern_mul)
|
||||
pattern_relu = WrapType("opset13.Relu", pattern_abs)
|
||||
|
||||
# Create a matcher and try to match the nodes
|
||||
matcher = Matcher(pattern_relu, "FindPattern")
|
||||
|
||||
# Should perfectly match
|
||||
assert matcher.match(model_relu)
|
||||
# ! [ov:create_simple_model_and_pattern_wrap_type]
|
||||
|
||||
# ! [ov:wrap_type_list]
|
||||
def wrap_type_list():
|
||||
model_param1 = ops.parameter(PartialShape([2, 2]))
|
||||
model_param2 = ops.parameter(PartialShape([2, 2]))
|
||||
model_add = ops.add(model_param1, model_param2)
|
||||
model_param3 = ops.parameter(PartialShape([2, 2]))
|
||||
model_mul = ops.matmul(model_add, model_param3, False, False)
|
||||
model_abs = ops.abs(model_mul)
|
||||
model_relu = ops.relu(model_abs)
|
||||
model_result = ops.result(model_relu)
|
||||
model_sig = ops.sigmoid(model_abs) # Note that we've added a Sigmoid node after Abs
|
||||
model_result1 = ops.result(model_sig)
|
||||
|
||||
# Create a sample pattern
|
||||
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
|
||||
pattern_abs = WrapType("opset13.Abs", pattern_mul)
|
||||
pattern_relu = WrapType(["opset13.Relu", "opset13.Sigmoid"], pattern_abs)
|
||||
|
||||
# Create a matcher and try to match the nodes
|
||||
matcher = Matcher(pattern_relu, "FindPattern")
|
||||
|
||||
# The same pattern perfectly matches 2 different nodes
|
||||
assert matcher.match(model_relu)
|
||||
assert matcher.match(model_sig)
|
||||
# ! [ov:wrap_type_list]
|
||||
|
||||
def any_input():
|
||||
# ! [ov:any_input]
|
||||
# Create a pattern with a MatMul node taking any inputs.
|
||||
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
|
||||
pattern_abs = WrapType("opset13.Abs", pattern_mul)
|
||||
pattern_relu = WrapType("opset13.Relu", pattern_abs)
|
||||
# ! [ov:any_input]
|
||||
|
||||
def wrap_type_predicate():
|
||||
# ! [ov:wrap_type_predicate]
|
||||
WrapType("opset13.Relu", AnyInput(), consumers_count(2))
|
||||
# ! [ov:wrap_type_predicate]
|
||||
|
||||
# ! [ov:any_input_predicate]
|
||||
# Create a pattern with an MatMul node taking any input that has a rank 4.
|
||||
pattern_mul = WrapType("opset13.MatMul", [AnyInput(lambda output: len(output.get_shape()) == 4), AnyInput(lambda output: len(output.get_shape()) == 4)])
|
||||
pattern_abs = WrapType("opset13.Abs", pattern_mul)
|
||||
pattern_relu = WrapType("opset13.Relu", pattern_abs)
|
||||
# ! [ov:any_input_predicate]
|
||||
|
||||
# ! [ov::pattern_or]
|
||||
def pattern_or():
|
||||
model_param1 = ops.parameter(PartialShape([2, 2]))
|
||||
model_param2 = ops.parameter(PartialShape([2, 2]))
|
||||
model_add = ops.add(model_param1, model_param2)
|
||||
model_param3 = ops.parameter(PartialShape([2, 2]))
|
||||
model_mul = ops.matmul(model_add, model_param3, False, False)
|
||||
model_abs = ops.abs(model_mul)
|
||||
model_relu = ops.relu(model_abs)
|
||||
model_result = ops.result(model_relu)
|
||||
|
||||
# Create a red branch
|
||||
red_pattern_add = WrapType("opset13.Add", [AnyInput(), AnyInput()])
|
||||
red_pattern_relu = WrapType("opset13.Relu", red_pattern_add)
|
||||
red_pattern_sigmoid = WrapType(["opset13.Sigmoid"], red_pattern_relu)
|
||||
|
||||
# Create a blue branch
|
||||
blue_pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
|
||||
blue_pattern_abs = WrapType("opset13.Abs", blue_pattern_mul)
|
||||
blue_pattern_relu = WrapType(["opset13.Relu"], blue_pattern_abs)
|
||||
|
||||
#Create Or node
|
||||
pattern_or = Or([red_pattern_sigmoid, blue_pattern_relu])
|
||||
|
||||
# Create a matcher and try to match the nodes
|
||||
matcher = Matcher(pattern_or, "FindPattern")
|
||||
|
||||
# The same pattern perfectly matches 2 different nodes
|
||||
assert matcher.match(model_relu)
|
||||
# ! [ov::pattern_or]
|
||||
|
||||
# ! [ov:pattern_optional_middle]
|
||||
def pattern_optional_middle():
|
||||
model_param1 = ops.parameter(PartialShape([2, 2]))
|
||||
model_param2 = ops.parameter(PartialShape([2, 2]))
|
||||
model_add = ops.add(model_param1, model_param2)
|
||||
model_param3 = ops.parameter(PartialShape([2, 2]))
|
||||
model_mul = ops.matmul(model_add, model_param3, False, False)
|
||||
model_abs = ops.abs(model_mul)
|
||||
model_relu = ops.relu(model_abs)
|
||||
model_result = ops.result(model_relu)
|
||||
|
||||
# Create a sample pattern with an Optional node in the middle
|
||||
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
|
||||
pattern_abs = WrapType("opset13.Abs", pattern_mul)
|
||||
pattern_sig_opt = Optional(["opset13.Sigmoid"], pattern_abs)
|
||||
pattern_relu = WrapType("opset13.Relu", pattern_sig_opt)
|
||||
|
||||
# Create a matcher and try to match the nodes
|
||||
matcher = Matcher(pattern_relu, "FindPattern")
|
||||
|
||||
# Should perfectly match
|
||||
assert matcher.match(model_relu)
|
||||
# ! [ov:pattern_optional_middle]
|
||||
|
||||
# ! [ov:pattern_optional_top]
|
||||
def pattern_optional_top():
|
||||
model_param1 = ops.parameter(PartialShape([2, 2]))
|
||||
model_param2 = ops.parameter(PartialShape([2, 2]))
|
||||
model_add = ops.add(model_param1, model_param2)
|
||||
model_param3 = ops.parameter(PartialShape([2, 2]))
|
||||
model_mul = ops.matmul(model_add, model_param3, False, False)
|
||||
model_abs = ops.abs(model_mul)
|
||||
model_relu = ops.relu(model_abs)
|
||||
model_result = ops.result(model_relu)
|
||||
|
||||
# Create a sample pattern an optional top node
|
||||
pattern_sig_opt = Optional(["opset13.Sigmoid"], AnyInput())
|
||||
pattern_mul = WrapType("opset13.MatMul", [pattern_sig_opt, AnyInput()])
|
||||
pattern_abs = WrapType("opset13.Abs", pattern_mul)
|
||||
pattern_relu = WrapType("opset13.Relu", pattern_abs)
|
||||
|
||||
matcher = Matcher(pattern_relu, "FindPattern")
|
||||
|
||||
# Should perfectly match even though there's no Sigmoid going into MatMul
|
||||
assert matcher.match(model_relu)
|
||||
# ! [ov:pattern_optional_top]
|
||||
|
||||
# ! [ov:pattern_optional_root]
|
||||
def pattern_optional_root():
|
||||
model_param1 = ops.parameter(PartialShape([2, 2]))
|
||||
model_param2 = ops.parameter(PartialShape([2, 2]))
|
||||
model_add = ops.add(model_param1, model_param2)
|
||||
model_param3 = ops.parameter(PartialShape([2, 2]))
|
||||
model_mul = ops.matmul(model_add, model_param3, False, False)
|
||||
model_abs = ops.abs(model_mul)
|
||||
model_relu = ops.relu(model_abs)
|
||||
model_result = ops.result(model_relu)
|
||||
|
||||
# Create a sample pattern
|
||||
pattern_mul = WrapType("opset13.MatMul", [AnyInput(), AnyInput()])
|
||||
pattern_abs = WrapType("opset13.Abs", pattern_mul)
|
||||
pattern_relu = WrapType("opset13.Relu", pattern_abs)
|
||||
pattern_sig_opt = Optional(["opset13.Sigmoid"], pattern_relu)
|
||||
|
||||
matcher = Matcher(pattern_sig_opt, "FindPattern")
|
||||
|
||||
# Should perfectly match even though there's no Sigmoid as root
|
||||
assert matcher.match(model_relu)
|
||||
# ! [ov:pattern_optional_root]
|
||||
|
||||
# ! [ov:optional_predicate]
|
||||
pattern_sig_opt = Optional(["opset13.Sigmoid"], pattern_relu, consumers_count(1))
|
||||
# ! [ov:optional_predicate]
|
||||
|
|
@ -18,7 +18,7 @@ class ReluReluFusionMatcher;
|
|||
// ! [graph_rewrite:template_transformation_hpp]
|
||||
// transformations/template_pattern_transformation.hpp
|
||||
/**
|
||||
* @ingroup ie_transformation_common_api
|
||||
* @ingroup ov_transformation_common_api
|
||||
* @brief Add transformation description.
|
||||
*/
|
||||
class ov::pass::DecomposeDivideMatcher : public ov::pass::MatcherPass {
|
||||
|
|
|
|||
|
|
@ -16,25 +16,26 @@ Overview of Transformations API
|
|||
transformation-api/model-pass
|
||||
transformation-api/matcher-pass
|
||||
transformation-api/graph-rewrite-pass
|
||||
transformation-api/patterns-python-api
|
||||
|
||||
OpenVINO Transformation mechanism allows to develop transformation passes to modify ``ov::Model``. You can use this mechanism to apply additional optimizations to the original Model or transform unsupported subgraphs and operations to new operations which are supported by the plugin.
|
||||
This guide contains all necessary information that you need to start implementing OpenVINO™ transformations.
|
||||
OpenVINO Transformation mechanism allows to develop transformation passes to modify ``ov::Model``. You can use this mechanism to apply additional optimizations to the original Model or transform unsupported subgraphs and operations to new operations supported by the plugin.
|
||||
This guide contains all the necessary information to start implementing OpenVINO™ transformations.
|
||||
|
||||
Working with Model
|
||||
##################
|
||||
|
||||
Before the moving to transformation part it is needed to say several words about functions which allow to modify ``ov::Model``.
|
||||
This chapter extends the :doc:`model representation guide <../../openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation>` and shows an API that allows us to manipulate with ``ov::Model``.
|
||||
Before moving to the transformation part, it is important to say a few words about the functions which allow modifying ``ov::Model``.
|
||||
This section extends the :doc:`model representation guide <../../openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation>` and introduces an API for ``ov::Model`` manipulation.
|
||||
|
||||
Working with node input and output ports
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
First of all let's talk about ``ov::Node`` input/output ports. Each OpenVINO™ operation has input and output ports except cases when operation has ``Parameter`` or ``Constant`` type.
|
||||
Each OpenVINO operation has ``ov::Node`` input and output ports, except for ``Parameter`` and ``Constant`` types.
|
||||
The terms ``node`` and ``operation`` are used interchangeably in OpenVINO, but this article will maintain consistency in their use.
|
||||
|
||||
Every port belongs to its node, so using a port we can access parent node, get shape and type for particular input/output, get all consumers in case of output port, and get producer node in case of input port.
|
||||
With output port we can set inputs for newly created operations.
|
||||
Every port is associated with a node, allowing access to the node it belongs to, including its shape, type, all consumers for output ports and the producer node for input ports.
|
||||
|
||||
Lets look at the code example.
|
||||
Take a look at the code example:
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
|
||||
:language: cpp
|
||||
|
|
@ -47,7 +48,7 @@ OpenVINO™ provides two ways for node replacement: via OpenVINO™ helper funct
|
|||
|
||||
Let's start with OpenVINO™ helper functions. The most popular function is ``ov::replace_node(old_node, new_node)``.
|
||||
|
||||
We will review real replacement case where Negative operation is replaced with Multiply.
|
||||
Let's review a replacement case where a Negative operation is replaced with Multiply.
|
||||
|
||||
.. image:: ../../assets/images/ov_replace_node.png
|
||||
|
||||
|
|
@ -55,7 +56,7 @@ We will review real replacement case where Negative operation is replaced with M
|
|||
:language: cpp
|
||||
:fragment: [ov:replace_node]
|
||||
|
||||
``ov::replace_node`` has a constraint that number of output ports for both of ops must be the same; otherwise, it raises an exception.
|
||||
``ov::replace_node`` has a constraint that number of output ports for both nodes must be the same. Otherwise, the attempt to replace the nodes will result in an exception.
|
||||
|
||||
The alternative way to do the same replacement is the following:
|
||||
|
||||
|
|
@ -63,7 +64,7 @@ The alternative way to do the same replacement is the following:
|
|||
:language: cpp
|
||||
:fragment: [ov:manual_replace]
|
||||
|
||||
Another transformation example is insertion.
|
||||
Another transformation example is insertion. Let's insert an additional Relu node.
|
||||
|
||||
.. image:: ../../assets/images/ov_insert_node.png
|
||||
|
||||
|
|
@ -71,7 +72,7 @@ Another transformation example is insertion.
|
|||
:language: cpp
|
||||
:fragment: [ov:insert_node]
|
||||
|
||||
The alternative way to the insert operation is to make a node copy and use ``ov::replace_node()``:
|
||||
The alternative way of inserting a node is to make a copy of the node and use ``ov::replace_node()``:
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
|
||||
:language: cpp
|
||||
|
|
@ -80,15 +81,15 @@ The alternative way to the insert operation is to make a node copy and use ``ov:
|
|||
Node elimination
|
||||
++++++++++++++++
|
||||
|
||||
Another type of node replacement is its elimination.
|
||||
Another type of node replacement is elimination of a node.
|
||||
|
||||
To eliminate operation, OpenVINO™ has special method that considers all limitations related to OpenVINO™ Runtime.
|
||||
To eliminate a node, OpenVINO provides a method that considers all limitations of the OpenVINO Runtime.
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:eliminate_node]
|
||||
|
||||
``ov::replace_output_update_name()`` in case of successful replacement it automatically preserves friendly name and runtime info.
|
||||
If the replacement is successful, ``ov::replace_output_update_name()`` automatically preserves the friendly name and runtime info.
|
||||
|
||||
.. _transformations_types:
|
||||
|
||||
|
|
@ -99,7 +100,7 @@ OpenVINO™ Runtime has three main transformation types:
|
|||
|
||||
* :doc:`Model pass <transformation-api/model-pass>` - straightforward way to work with ``ov::Model`` directly
|
||||
* :doc:`Matcher pass <transformation-api/matcher-pass>` - pattern-based transformation approach
|
||||
* :doc:`Graph rewrite pass <transformation-api/graph-rewrite-pass>` - container for matcher passes needed for efficient execution
|
||||
* :doc:`Graph rewrite pass <transformation-api/graph-rewrite-pass>` - container for matcher passes used for efficient execution
|
||||
|
||||
.. image:: ../../assets/images/transformations_structure.png
|
||||
|
||||
|
|
@ -116,36 +117,36 @@ Transformation library has two internal macros to support conditional compilatio
|
|||
Transformation writing essentials
|
||||
#################################
|
||||
|
||||
When developing a transformation, you need to follow these transformation rules:
|
||||
To develop a transformation, follow these transformation rules:
|
||||
|
||||
1. Friendly Names
|
||||
+++++++++++++++++
|
||||
|
||||
Each ``ov::Node`` has an unique name and a friendly name. In transformations we care only about friendly name because it represents the name from the model.
|
||||
To avoid losing friendly name when replacing node with other node or subgraph, set the original friendly name to the latest node in replacing subgraph. See the example below.
|
||||
Each ``ov::Node`` has a unique name and a friendly name. In transformations, only the friendly name matters because it represents the name from the model's perspective.
|
||||
To prevent losing the friendly name when replacing a node with another node or a subgraph, the original friendly name is set to the last node in the replacing subgraph. See the example below.
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:replace_friendly_name]
|
||||
|
||||
In more advanced cases, when replaced operation has several outputs and we add additional consumers to its outputs, we make a decision how to set friendly name by arrangement.
|
||||
In more complicated cases, when a replaced operation has several outputs and additional consumers are added to its outputs, the decision on how to set the friendly name is determined by an agreement.
|
||||
|
||||
2. Runtime Info
|
||||
+++++++++++++++
|
||||
|
||||
Runtime info is a map ``std::map<std::string, ov::Any>`` located inside ``ov::Node`` class. It represents additional attributes in ``ov::Node``.
|
||||
These attributes can be set by users or by plugins and when executing transformation that changes ``ov::Model`` we need to preserve these attributes as they will not be automatically propagated.
|
||||
Runtime info is a map ``std::map<std::string, ov::Any>`` located inside the ``ov::Node`` class. It represents additional attributes of the ``ov::Node``.
|
||||
These attributes, which can be set by users or plugins, need to be preserved when executing a transformation that changes ``ov::Model``, as they are not automatically propagated.
|
||||
In most cases, transformations have the following types: 1:1 (replace node with another node), 1:N (replace node with a sub-graph), N:1 (fuse sub-graph into a single node), N:M (any other transformation).
|
||||
Currently, there is no mechanism that automatically detects transformation types, so we need to propagate this runtime information manually. See the examples below.
|
||||
Currently, there is no mechanism that automatically detects transformation types, so this runtime information needs to be propagated manually. See the example below:
|
||||
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_model_snippets.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:copy_runtime_info]
|
||||
|
||||
When transformation has multiple fusions or decompositions, ``ov::copy_runtime_info`` must be called multiple times for each case.
|
||||
When a transformation has multiple fusions or decompositions, ``ov::copy_runtime_info`` must be called multiple times for each case.
|
||||
|
||||
.. note:: ``copy_runtime_info`` removes ``rt_info`` from destination nodes. If you want to keep it, you need to specify them in source nodes like this: ``copy_runtime_info({a, b, c}, {a, b})``
|
||||
.. note:: ``copy_runtime_info`` removes ``rt_info`` from destination nodes. If you want to keep it, specify them in source nodes as following: ``copy_runtime_info({a, b, c}, {a, b})``
|
||||
|
||||
3. Constant Folding
|
||||
+++++++++++++++++++
|
||||
|
|
@ -172,21 +173,21 @@ Common mistakes in transformations
|
|||
|
||||
In transformation development process:
|
||||
|
||||
* Do not use deprecated OpenVINO™ API. Deprecated methods has the ``OPENVINO_DEPRECATED`` macros in its definition.
|
||||
* Do not pass ``shared_ptr<Node>`` as an input for other node if type of node is unknown or it has multiple outputs. Use explicit output port.
|
||||
* If you replace node with another node that produces different shape, remember that new shape will not be propagated until the first ``validate_nodes_and_infer_types`` call for ``ov::Model``. If you are using ``ov::pass::Manager``, it will automatically call this method after each transformation execution.
|
||||
* Do not use deprecated OpenVINO™ API. Deprecated methods are marked with ``OPENVINO_DEPRECATED`` macro in their definition.
|
||||
* Do not pass ``shared_ptr<Node>`` as input for another node if the type of the node is unknown or if it has multiple outputs. Instead, use explicit output ports.
|
||||
* If you replace a node with another node that produces different shape, note that the new shape will not be propagated until the first ``validate_nodes_and_infer_types`` call for ``ov::Model``. If you are using ``ov::pass::Manager``, it will automatically call this method after each transformation execution.
|
||||
* Do not forget to call the ``ov::pass::ConstantFolding`` pass if your transformation creates constant subgraphs.
|
||||
* Use latest OpSet if you are not developing downgrade transformation pass.
|
||||
* When developing a callback for ``ov::pass::MatcherPass``, do not change nodes that come after the root node in topological order.
|
||||
* When developing a callback for ``ov::pass::MatcherPass``, do not change nodes that come after the root node in the topological order.
|
||||
|
||||
.. _using_pass_manager:
|
||||
|
||||
Using pass manager
|
||||
##################
|
||||
|
||||
``ov::pass::Manager`` is a container class that can store the list of transformations and execute them. The main idea of this class is to have high-level representation for grouped list of transformations.
|
||||
It can register and apply any `transformation pass <#transformations_types>`__ on model.
|
||||
In addition, ``ov::pass::Manager`` has extended debug capabilities (find more information in the `how to debug transformations <#how_to_debug_transformations>`__ section).
|
||||
``ov::pass::Manager`` is a container class that can store a list of transformations and execute them. The main idea of this class is to have a high-level representation for grouped list of transformations.
|
||||
It can register and apply any `transformation pass <#transformations_types>`__ on a model.
|
||||
In addition, ``ov::pass::Manager`` has extended debug capabilities (find more information in the `how to debug transformations <#how-to-debug-transformations>`__ section).
|
||||
|
||||
The example below shows basic usage of ``ov::pass::Manager``
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,175 @@
|
|||
|
||||
Transformation Patterns with OpenVINO API
|
||||
==================================================
|
||||
|
||||
.. meta::
|
||||
:description: Learn how to apply additional model optimizations or transform
|
||||
unsupported subgraphs and operations using OpenVINO™ Transformations API.
|
||||
|
||||
Pattern matching is an essential component of OpenVINO™ transformations. Before performing any transformation on a subgraph of a graph, it is necessary to find that subgraph in the graph.
|
||||
Patterns serve as a searching utility to identify nodes intended for transformations. This article covers the basics of pattern
|
||||
creation using OpenVINO™ API and helpful utilities to facilitate working with them. While this guide focuses on creating patterns, if you want to learn more about ``MatcherPass``, refer to the :doc:`OpenVINO Matcher Pass article <./matcher-pass>`. Note that some examples may be intentionally simplified for ease of understanding.
|
||||
|
||||
Before proceeding further, it is necessary to add some imports. These imports include the operations to be used and additional utilities described in this guide.
|
||||
Add the following lines to your file:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:imports]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:imports]
|
||||
|
||||
Pattern Creation
|
||||
+++++++++++++++++++++
|
||||
|
||||
A pattern is a simplified model comprised of nodes aimed to be matched. It lacks some features of a model and cannot function as one.
|
||||
|
||||
Consider a straightforward pattern consisting of three nodes to be found in a given model.
|
||||
|
||||
.. image:: ./../../../assets/images/simple_pattern_example.png
|
||||
|
||||
Let's create the model and the pattern:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:create_simple_model_and_pattern]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:create_simple_model_and_pattern]
|
||||
|
||||
.. note:: This example uses testing utilities that directly compare given sequences of nodes. In reality, the process of finding a pattern within a model is more complicated. However, to focus only on patterns and their functionality, these details are intentionally omitted.
|
||||
|
||||
Although the code is functional, in OpenVINO, patterns are typically not created using the same nodes as those used for creating the model. Instead, wrappers are preferred, providing additional functionality.
|
||||
For the given case, ``WrapType`` is used and the code looks as following:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:create_simple_model_and_pattern_wrap_type]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:create_simple_model_and_pattern_wrap_type]
|
||||
|
||||
1. WrapType
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
``WrapType`` is a wrapper used to store one or many types to match them. As demonstrated earlier, it is possible to specify a single type in ``WrapType`` and use it for matching.
|
||||
However, you can also list all possible types for a given node, for example:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:wrap_type_list]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:wrap_type_list]
|
||||
|
||||
Note that ``pattern_sig`` is created with the list ``["opset13.Relu", "opset13.Sigmoid"]``, meaning it can be either a ``Relu`` or a ``Sigmoid``.
|
||||
This feature enables matching the same pattern against different nodes. Essentially, ``WrapType`` can represent "one of listed" types. ``WrapType`` supports specifying more than two types.
|
||||
|
||||
To add additional checks for your node, create a predicate by providing a function or a lambda. This function will be executed during matching, performing the additional validation specified in the logic of the function. For example, you might want to check the consumers count of a given node:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:wrap_type_predicate]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:wrap_type_predicate]
|
||||
|
||||
2. AnyInput
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
``AnyInput`` is used when there is no need to specify a particular input for a given node.
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:any_input]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:any_input]
|
||||
|
||||
You can also create ``AnyInput()`` with a predicate, if you want additional checks for you input. It will look similar to ``WrapType`` with a lambda or a function. For example, to ensure that the input has a rank of 4:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:any_input_predicate]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:any_input_predicate]
|
||||
|
||||
3. Or
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
``Or`` functions similar to ``WrapType``, however, while ``WrapType`` can only match one of the types provided in the list, ``Or`` is used to match different branches of nodes.
|
||||
Suppose the goal is to match the model against two different sequences of nodes. The ``Or`` type
|
||||
facilitates this by creating two different branches (``Or`` supports more than two branches), looking as follows:
|
||||
|
||||
.. image:: ./../../../assets/images/or_branches.png
|
||||
|
||||
The red branch will not match, but it will work perfectly for the blue one.
|
||||
Here is how it looks in code:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:pattern_or]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:pattern_or]
|
||||
|
||||
Note that matching will succeed for the first matching branch and the remaining ones will not be checked.
|
||||
|
||||
4. Optional
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
``Optional`` is a bit tricky. It allows specifying whether a node might be present or absent in the model. Under the hood,
|
||||
the pattern will create two branches using ``Or``: one with the optional node present and another one without it. Here is what it would look like with the ``Optional``
|
||||
unfolding into two branches:
|
||||
|
||||
.. image:: ./../../../assets/images/optional.png
|
||||
|
||||
The code for our model looks as follows:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:pattern_optional_middle]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:pattern_optional_middle]
|
||||
|
||||
The ``Optional`` does not necessarily have to be in the middle of the pattern. It can be a top node and a root node.
|
||||
|
||||
|
||||
Top node:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:pattern_optional_top]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:pattern_optional_top]
|
||||
|
||||
Root node:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:pattern_optional_root]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:pattern_optional_root]
|
||||
|
||||
``Optional`` also supports adding a predicate the same way ``WrapType`` and ``AnyInput`` do:
|
||||
|
||||
.. doxygensnippet:: docs/snippets/ov_patterns.py
|
||||
:language: python
|
||||
:fragment: [ov:optional_predicate]
|
||||
|
||||
.. doxygensnippet:: docs/articles_en/assets/snippets/ov_patterns.cpp
|
||||
:language: cpp
|
||||
:fragment: [ov:optional_predicate]
|
||||
|
|
@ -17,7 +17,10 @@ Squeeze
|
|||
**Detailed description**: *Squeeze* can be used with or without the second input tensor.
|
||||
|
||||
* If only the first input is provided, every dimension that is equal to 1 will be removed from it.
|
||||
* With the second input provided, each value is an index of a dimension from the first tensor that is to be removed. Specified dimension has to be equal to 1, otherwise an error will be raised. Dimension indices can be specified directly, or by negative indices (counting dimensions from the end).
|
||||
* With the second input provided, each value is an index of a dimension from the first tensor that is to be removed. Specified dimension should be equal to 1, otherwise it will be ignored and copied as is.
|
||||
Dimension indices can be specified directly, or by negative indices (counting dimensions from the end).
|
||||
|
||||
Note: Updated behavior since 2024.3, request of squeezing dimension not equal to 1 is expected to be ignored instead of causing an error.
|
||||
|
||||
**Attributes**: *Squeeze* operation doesn't have attributes.
|
||||
|
||||
|
|
@ -87,4 +90,3 @@ Squeeze
|
|||
</port>
|
||||
</output>
|
||||
</layer>
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ GET STARTED
|
|||
Install OpenVINO <get-started/install-openvino>
|
||||
Additional Hardware Setup <get-started/configurations>
|
||||
Troubleshooting <get-started/troubleshooting-install-config>
|
||||
System Requirements <about-openvino/system-requirements>
|
||||
System Requirements <./about-openvino/release-notes-openvino/system-requirements>
|
||||
|
||||
|
||||
.. raw:: html
|
||||
|
|
|
|||
|
|
@ -32,12 +32,16 @@ Below are the instructions on how to install the OpenCL packages on supported Li
|
|||
|
||||
.. tab-set::
|
||||
|
||||
.. tab-item:: Ubuntu 22.04 LTS
|
||||
.. tab-item:: Ubuntu 22.04 LTS / Ubuntu 24.04 LTS
|
||||
:sync: ubuntu-22
|
||||
|
||||
Download and install the `deb` packages published `here <https://github.com/intel/compute-runtime/releases/latest>`__ and install the apt package `ocl-icd-libopencl1` with the OpenCl ICD loader.
|
||||
Download and install the `deb` packages published `here <https://github.com/intel/compute-runtime/releases/latest>`__
|
||||
and install the apt package `ocl-icd-libopencl1` with the OpenCl ICD loader.
|
||||
|
||||
Alternatively, you can add the apt repository by following the `installation guide <https://dgpu-docs.intel.com/driver/installation.html#ubuntu-install-steps>`__. Then install the `ocl-icd-libopencl1`, `intel-opencl-icd`, `intel-level-zero-gpu` and `level-zero` apt packages:
|
||||
Alternatively, you can add the apt repository by following the
|
||||
`installation guide <https://dgpu-docs.intel.com/driver/installation.html#ubuntu-install-steps>`__.
|
||||
Then install the `ocl-icd-libopencl1`, `intel-opencl-icd`, `intel-level-zero-gpu` and `level-zero`
|
||||
apt packages:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
|
|
@ -119,7 +123,7 @@ Below are the required steps to make it work with OpenVINO:
|
|||
wsl --update
|
||||
wsl --shutdown
|
||||
|
||||
- When booting Ubuntu 20.04 or Ubuntu 22.04, install the same drivers as described above in the Linux section
|
||||
- When booting Ubuntu 20.04, 22.04, or 24.04 install the same drivers as described above in the Linux section
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
@ -128,29 +132,6 @@ Below are the required steps to make it work with OpenVINO:
|
|||
Additional Resources
|
||||
####################
|
||||
|
||||
.. The following Intel® Graphics Driver versions were used during OpenVINO's internal validation:
|
||||
|
||||
.. <The table below is out of date and we do not have an updated list of drivers used for validation as of 2024.0 release date.>
|
||||
.. <The table will be updated when an updated list of drivers is available>
|
||||
|
||||
.. +------------------+-------------------------------------------------------------------------------------------+
|
||||
.. | Operation System | Driver version |
|
||||
.. +==================+===========================================================================================+
|
||||
.. | Ubuntu 22.04 | `22.43.24595.30 <https://github.com/intel/compute-runtime/releases/tag/22.43.24595.30>`__ |
|
||||
.. +------------------+-------------------------------------------------------------------------------------------+
|
||||
.. | Ubuntu 20.04 | `22.35.24055 <https://github.com/intel/compute-runtime/releases/tag/22.35.24055>`__ |
|
||||
.. +------------------+-------------------------------------------------------------------------------------------+
|
||||
.. | Ubuntu 18.04 | `21.38.21026 <https://github.com/intel/compute-runtime/releases/tag/21.38.21026>`__ |
|
||||
.. +------------------+-------------------------------------------------------------------------------------------+
|
||||
.. | CentOS 7 | `19.41.14441 <https://github.com/intel/compute-runtime/releases/tag/19.41.14441>`__ |
|
||||
.. +------------------+-------------------------------------------------------------------------------------------+
|
||||
.. | RHEL 8 | `22.28.23726 <https://github.com/intel/compute-runtime/releases/tag/22.28.23726>`__ |
|
||||
.. +------------------+-------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
.. What’s Next?
|
||||
.. ############
|
||||
|
||||
* :doc:`GPU Device <../../openvino-workflow/running-inference/inference-devices-and-modes/gpu-device>`
|
||||
* :doc:`Install Intel® Distribution of OpenVINO™ toolkit from a Docker Image <../install-openvino/install-openvino-archive-linux>`
|
||||
* `Docker CI framework for Intel® Distribution of OpenVINO™ toolkit <https://github.com/openvinotoolkit/docker_ci/blob/master/README.md>`__
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Configurations for Intel® NPU with OpenVINO™
|
|||
===============================================
|
||||
|
||||
.. meta::
|
||||
:description: Learn how to provide additional configuration for Intel®
|
||||
:description: Learn how to provide additional configuration for Intel®
|
||||
NPU to work with the OpenVINO™ toolkit on your system.
|
||||
|
||||
|
||||
|
|
@ -19,27 +19,27 @@ Make sure you use the most recent supported driver for your hardware setup.
|
|||
The driver is maintained as open source and may be found in the following repository,
|
||||
together with comprehensive information on installation and system requirements:
|
||||
`github.com/intel/linux-npu-driver <https://github.com/intel/linux-npu-driver>`__
|
||||
|
||||
|
||||
It is recommended to check for the latest version of the driver.
|
||||
|
||||
Make sure you use a supported OS version, as well as install make, gcc,
|
||||
and Linux kernel headers. To check the NPU state, use the ``dmesg``
|
||||
command in the console. A successful boot-up of the NPU should give you
|
||||
a message like this one:
|
||||
|
||||
|
||||
``[ 797.193201] [drm] Initialized intel_vpu 0.<version number> for 0000:00:0b.0 on minor 0``
|
||||
|
||||
The current requirement for inference on NPU is Ubuntu 22.04 with the kernel
|
||||
version of 6.6 or higher.
|
||||
The current requirement for inference on NPU is the minimum of Ubuntu 22.04, kernel
|
||||
version of 6.6.
|
||||
|
||||
.. tab-item:: Windows
|
||||
|
||||
The Intel® NPU driver for Windows is available through Windows Update but
|
||||
it may also be installed manually by downloading the
|
||||
`NPU driver package <https://www.intel.com/content/www/us/en/download/794734/intel-npu-driver-windows.html>`__ and following the
|
||||
it may also be installed manually by downloading the
|
||||
`NPU driver package <https://www.intel.com/content/www/us/en/download/794734/intel-npu-driver-windows.html>`__ and following the
|
||||
`Windows driver installation guide <https://support.microsoft.com/en-us/windows/update-drivers-manually-in-windows-ec62f46c-ff14-c91d-eead-d7126dc1f7b6>`__.
|
||||
|
||||
If a driver has already been installed you should be able to find
|
||||
'Intel(R) NPU Accelerator' in Windows Device Manager. If you
|
||||
If a driver has already been installed you should be able to find
|
||||
'Intel(R) NPU Accelerator' in Windows Device Manager. If you
|
||||
cannot find such a device, the NPU is most likely listed in "Other devices"
|
||||
as "Multimedia Video Controller."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
.. {#openvino_docs_install_guides_overview}
|
||||
|
||||
Install OpenVINO™ 2024.0
|
||||
Install OpenVINO™ 2024.2
|
||||
==========================
|
||||
|
||||
|
||||
|
|
@ -36,17 +34,17 @@ Install OpenVINO™ 2024.0
|
|||
|
||||
.. tip::
|
||||
|
||||
OpenVINO 2024.0, described here, is not a Long-Term-Support version!
|
||||
OpenVINO 2024.2, described here, is not a Long-Term-Support version!
|
||||
All currently supported versions are:
|
||||
|
||||
* 2024.0 (development)
|
||||
* 2024.2 (development)
|
||||
* 2023.3 (LTS)
|
||||
* 2022.3 (LTS)
|
||||
|
||||
Moreover, different OpenVINO distributions may support slightly different sets of features.
|
||||
Read installation guides for particular distributions for more details.
|
||||
|
||||
.. dropdown:: Distribution Comparison for OpenVINO 2024.0
|
||||
.. dropdown:: Distribution Comparison for OpenVINO 2024.2
|
||||
|
||||
=============== ========== ====== =============== ======== ============ ========== ========== ==========
|
||||
Device Archives PyPI APT/YUM/ZYPPER Conda Homebrew vcpkg Conan npm
|
||||
|
|
@ -56,7 +54,7 @@ Install OpenVINO™ 2024.0
|
|||
NPU V\* V\* V\ * n/a n/a n/a n/a V\*
|
||||
=============== ========== ====== =============== ======== ============ ========== ========== ==========
|
||||
|
||||
| \* **Of the Linux systems, only Ubuntu 22.04 includes drivers for NPU device.**
|
||||
| \* **Of the Linux systems, versions 22.04 and 24.04 include drivers for NPU.**
|
||||
| **For Windows, CPU inference on ARM64 is not supported.**
|
||||
|
||||
| **Build OpenVINO from source**
|
||||
|
|
|
|||
|
|
@ -73,6 +73,13 @@ Step 1: Set Up the OpenVINO Toolkit APT Repository
|
|||
|
||||
.. tab-set::
|
||||
|
||||
.. tab-item:: Ubuntu 24
|
||||
:sync: ubuntu-24
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
echo "deb https://apt.repos.intel.com/openvino/2024 ubuntu24 main" | sudo tee /etc/apt/sources.list.d/intel-openvino-2024.list
|
||||
|
||||
.. tab-item:: Ubuntu 22
|
||||
:sync: ubuntu-22
|
||||
|
||||
|
|
@ -148,7 +155,7 @@ Step 2: Install OpenVINO Runtime Using the APT Package Manager
|
|||
.. code-block:: sh
|
||||
|
||||
|
||||
sudo apt install openvino-2024.0.0
|
||||
sudo apt install openvino-2024.2.0
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
@ -221,7 +228,7 @@ To uninstall OpenVINO Runtime via APT, run the following command based on your n
|
|||
|
||||
.. code-block:: sh
|
||||
|
||||
sudo apt autoremove openvino-2024.0.0
|
||||
sudo apt autoremove openvino-2024.2.0
|
||||
|
||||
|
||||
What's Next?
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
.. {#openvino_docs_install_guides_installing_openvino_from_archive_linux}
|
||||
|
||||
Install OpenVINO™ Runtime on Linux from an Archive File
|
||||
=========================================================
|
||||
|
||||
|
|
@ -30,6 +28,7 @@ Install OpenVINO™ Runtime on Linux from an Archive File
|
|||
Ubuntu18 x86_64 V V n/a
|
||||
Ubuntu20 x86_64 V V V
|
||||
Ubuntu22 x86_64 V V V
|
||||
Ubuntu24 x86_64 V V V
|
||||
RHEL8 x86_64 V V n/a
|
||||
=================== ===== ===== =====
|
||||
|
||||
|
|
@ -130,6 +129,16 @@ Step 1: Download and Install the OpenVINO Core Components
|
|||
|
||||
.. tab-set::
|
||||
|
||||
.. tab-item:: Ubuntu 24.04
|
||||
:sync: ubuntu-24
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
|
||||
curl -L https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.1/linux/l_openvino_toolkit_ubuntu22_2024.1.0.15008.f4afc983258_x86_64.tgz --output openvino_2024.1.0.tgz
|
||||
tar -xf openvino_2024.1.0.tgz
|
||||
sudo mv l_openvino_toolkit_ubuntu24_2024.1.0.15008.f4afc983258_x86_64 /opt/intel/openvino_2024.1.0
|
||||
|
||||
.. tab-item:: Ubuntu 22.04
|
||||
:sync: ubuntu-22
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ Installing OpenVINO Runtime with Conan Package Manager
|
|||
.. code-block:: sh
|
||||
|
||||
[requires]
|
||||
openvino/2024.1.0
|
||||
openvino/2024.2.0
|
||||
[generators]
|
||||
CMakeDeps
|
||||
CMakeToolchain
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ Installing OpenVINO Runtime with Anaconda Package Manager
|
|||
|
||||
.. code-block:: sh
|
||||
|
||||
conda install -c conda-forge openvino=2024.1.0
|
||||
conda install -c conda-forge openvino=2024.2.0
|
||||
|
||||
Congratulations! You've just Installed OpenVINO! For some use cases you may still
|
||||
need to install additional components. Check the description below, as well as the
|
||||
|
|
@ -115,7 +115,7 @@ with the proper OpenVINO version number:
|
|||
|
||||
.. code-block:: sh
|
||||
|
||||
conda remove openvino=2024.1.0
|
||||
conda remove openvino=2024.2.0
|
||||
|
||||
What's Next?
|
||||
############################################################
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ Install OpenVINO Runtime
|
|||
.. code-block:: sh
|
||||
|
||||
|
||||
sudo yum install openvino-2024.0.0
|
||||
sudo yum install openvino-2024.2.0
|
||||
|
||||
|
||||
|
||||
|
|
@ -199,7 +199,7 @@ To uninstall OpenVINO Runtime via YUM, run the following command based on your n
|
|||
|
||||
.. code-block:: sh
|
||||
|
||||
sudo yum autoremove openvino-2024.0.0
|
||||
sudo yum autoremove openvino-2024.2.0
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ To uninstall OpenVINO Runtime via ZYPPER, run the following command based on you
|
|||
|
||||
.. code-block:: sh
|
||||
|
||||
sudo zypper remove *openvino-2024.0.0*
|
||||
sudo zypper remove *openvino-2024.2.0*
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,14 +10,14 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
|
|||
of OpenVINO™ on your system.
|
||||
|
||||
|
||||
| This guide provides general troubleshooting steps and solutions to possible issues that
|
||||
may be encountered while installing and configuring OpenVINO™. For a comprehensive
|
||||
database of support topics on OpenVINO, go to:
|
||||
| This article provides general troubleshooting steps and solutions to possible issues that you
|
||||
may face while installing and configuring OpenVINO™. For a comprehensive database of support
|
||||
topics on OpenVINO, go to:
|
||||
| `Support for OpenVINO™ toolkit <https://www.intel.com/content/www/us/en/support/products/96066/software/development-software/openvino-toolkit.html>`__
|
||||
|
||||
|
||||
|
||||
.. dropdown:: Errors with Installing via PIP for Users in China
|
||||
.. dropdown:: PIP for Users in China gives errors
|
||||
|
||||
Users in China might encounter errors while downloading sources via PIP during OpenVINO™
|
||||
installation. To resolve the issues, try adding the download source using the ``-i``
|
||||
|
|
@ -34,16 +34,18 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
|
|||
|
||||
pip install openvino-dev[tensorflow2] -i https://mirrors.aliyun.com/pypi/simple/
|
||||
|
||||
.. dropdown:: ImportError: cannot import name 'Core' from 'openvino'
|
||||
|
||||
.. dropdown:: Issues with Installing OpenVINO on Linux from Docker
|
||||
This error may appear on systems lacking C++ components. Since it is almost exclusively a
|
||||
Windows case, installing `Microsoft Visual C++ Redistributable [vc_redist.x64] <https://aka.ms/vs/17/release/vc_redist.x64.exe>`__
|
||||
package may fix it. For more information on dependencies, check
|
||||
:doc:`System Requirements <../about-openvino/release-notes-openvino/system-requirements>` and
|
||||
:doc:`Additional Hardware Configurations <./configurations>`
|
||||
|
||||
.. _proxy-issues:
|
||||
.. dropdown:: Proxy issues installing OpenVINO on Linux from Docker
|
||||
|
||||
Proxy Issues
|
||||
++++++++++++
|
||||
|
||||
If you meet proxy issues during the installation with Docker, you need set up proxy settings
|
||||
for Docker. See the `Docker guide <https://docs.docker.com/network/proxy/#set-proxy-using-the-cli>`__
|
||||
If you face proxy issues during installation with Docker, you may need to set up proxy
|
||||
settings for it. See the `Docker guide <https://docs.docker.com/network/proxy/#set-proxy-using-the-cli>`__
|
||||
for more details.
|
||||
|
||||
.. dropdown:: Check the version of OpenVINO Runtime
|
||||
|
|
@ -81,11 +83,11 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
|
|||
|
||||
.. dropdown:: Check if environment variables are set correctly
|
||||
|
||||
- For Python developers, if you previously installed OpenVINO using the archive file,
|
||||
* For Python developers, if you previously installed OpenVINO using the archive file,
|
||||
and are now installing OpenVINO using PIP, remove all the PATH settings and the lines with
|
||||
``setupvars`` from ``.bashrc``. Note that if you installed OpenVINO with PIP in a virtual
|
||||
environment, you don't need to set any environment variables.
|
||||
- If you have installed OpenVINO before, you probably have added ``setupvars`` to your
|
||||
* If you have installed OpenVINO before, you probably have added ``setupvars`` to your
|
||||
``PATH /.bashrc`` or Windows environment variables. After restarting your environment,
|
||||
you should see an information similar to the following:
|
||||
|
||||
|
|
@ -93,10 +95,10 @@ Troubleshooting Guide for OpenVINO™ Installation & Configuration
|
|||
|
||||
[setupvars.sh] OpenVINO™ environment initialized
|
||||
|
||||
- If you don't see the information above, your PATH variables may be configured incorrectly.
|
||||
* If you don't see the information above, your PATH variables may be configured incorrectly.
|
||||
Check if you have typed the correct <INSTALL_DIR> or you are trying to activate in the
|
||||
correct directory.
|
||||
- If you added it to a ``.bashrc`` file, make sure that the command is correctly written and
|
||||
* If you added it to a ``.bashrc`` file, make sure that the command is correctly written and
|
||||
the file is found in the ``~/.bashrc`` folder.
|
||||
|
||||
.. dropdown:: Verify that OpenVINO is correctly installed
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue