From bfe080637e27544e3553ba393fa0d7d2972c8759 Mon Sep 17 00:00:00 2001 From: Alexander Dokuchaev Date: Tue, 17 Dec 2024 05:57:47 +0200 Subject: [PATCH 1/6] weekly job --- .github/workflows/call_precommit.yml | 234 ++++++++++++++++++ .github/workflows/precommit.yml | 202 +-------------- .github/workflows/weekly.yml | 23 ++ .../nncf_graph/test_nncf_graph.py | 13 +- 4 files changed, 268 insertions(+), 204 deletions(-) create mode 100644 .github/workflows/call_precommit.yml create mode 100644 .github/workflows/weekly.yml diff --git a/.github/workflows/call_precommit.yml b/.github/workflows/call_precommit.yml new file mode 100644 index 00000000000..24eb6116a29 --- /dev/null +++ b/.github/workflows/call_precommit.yml @@ -0,0 +1,234 @@ +name: call-precommit +permissions: read-all + +on: + workflow_call: + inputs: + python_version: + description: 'Python version' + type: string + required: true + gpu_enabled: + description: 'Enable gpu tests' + type: boolean + default: false + required: true + +jobs: + common: + timeout-minutes: 40 + runs-on: ubuntu-20.04 + defaults: + run: + shell: bash + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + cache: pip + - name: Install NNCF and test requirements + run: make install-common-test + - name: Print installed modules + run: pip list + - name: Run common precommit test scope + run: make test-common + env: + NUM_WORKERS: 2 + + onnx: + timeout-minutes: 40 + runs-on: ubuntu-20.04-8-cores + defaults: + run: + shell: bash + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + - name: Install NNCF and test requirements + run: make install-onnx-test + - name: Print installed modules + run: pip list + - name: Run ONNX precommit test scope + run: make test-onnx + env: + NUM_WORKERS: 4 + + openvino: + timeout-minutes: 40 + runs-on: ubuntu-20.04-8-cores + defaults: + run: + shell: bash + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + cache: pip + - name: Install NNCF and test requirements + run: make install-openvino-test + - name: Print installed modules + run: pip list + - name: Run OV precommit test scope + run: make test-openvino + env: + NUM_WORKERS: 4 + + pytorch-cpu: + timeout-minutes: 40 + runs-on: ubuntu-20.04-8-cores + defaults: + run: + shell: bash + env: + DEBIAN_FRONTEND: noninteractive + steps: + - name: Install dependencies + run : | + sudo apt-get update + sudo apt-get --assume-yes install gcc g++ build-essential ninja-build libgl1-mesa-dev libglib2.0-0 + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + cache: pip + - name: Runner info + continue-on-error: true + run: | + cat /etc/*release + cat /proc/cpuinfo + - name: Install NNCF and test requirements + run: make install-torch-test + - name: Print installed modules + run: pip list + - name: Run PyTorch precommit test scope + run: | + make test-torch-cpu + env: + NUM_WORKERS: 4 + + pytorch-cuda: + timeout-minutes: 40 + runs-on: aks-linux-4-cores-28gb-gpu-tesla-t4 + if: ${{ inputs.gpu_enabled == true }} + defaults: + run: + shell: bash + env: + DEBIAN_FRONTEND: noninteractive + steps: + - name: Install dependencies + run : | + sudo apt-get update + sudo apt-get --assume-yes install build-essential ninja-build libgl1-mesa-dev libglib2.0-0 wget make + - name: Download CUDA + run: | + wget -q https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run + sudo sh cuda_12.4.0_550.54.14_linux.run --toolkit --silent + - name: Runner info + continue-on-error: true + run: | + export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}} + export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} + nvidia-smi + cat /proc/cpuinfo + nvcc --version + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + cache: pip + - name: Install NNCF and test requirements + run: make install-torch-test + - name: Print installed modules + run: pip list + - name: Check CUDA + run: | + python -c "import torch; print(torch.cuda.is_available())" + - name: Run PyTorch precommit test scope + run: | + export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}} + export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} + make test-torch-cuda + + tensorflow: + timeout-minutes: 40 + runs-on: ubuntu-20.04-8-cores + if: ${{ inputs.python_version != '3.12' }} + defaults: + run: + shell: bash + env: + DEBIAN_FRONTEND: noninteractive + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + cache: pip + - name: Install NNCF and test requirements + run: make install-tensorflow-test + - name: Print installed modules + run: pip list + - name: Run TensorFlow precommit test scope + run: make test-tensorflow + env: + NUM_WORKERS: 6 + + tools: + timeout-minutes: 40 + runs-on: ubuntu-20.04 + defaults: + run: + shell: bash + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + cache: pip + - name: Install NNCF and test requirements + run: pip install -r tests/tools/requirements.txt + - name: Print installed modules + run: pip list + - name: Run tools precommit test scope + run: pytest -ra tests/tools + + pytorch2-cpu: + timeout-minutes: 40 + runs-on: ubuntu-20.04 + defaults: + run: + shell: bash + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + lfs: true + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: ${{ inputs.python_version }} + cache: pip + - name: Install NNCF and test requirements + run: | + pip install -r tests/torch2/requirements.txt -e . + - name: Print installed modules + run: pip list + - name: Run torch2 precommit test scope + run: pytest -ra tests/torch2 -m "not cuda" diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index 6dd6bff293d..fe8cc194755 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -14,200 +14,10 @@ on: - 'tests/torch/sota_checkpoints_eval.json' # reference for PT e2e - 'tests/tensorflow/sota_checkpoints_eval.json' # reference for TF e2e - 'tests/cross_fw/examples/*' # examples tests runs in separate workflow -jobs: - common: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - cache: pip - - name: Install NNCF and test requirements - run: make install-common-test - - name: Print installed modules - run: pip list - - name: Run common precommit test scope - run: make test-common - env: - NUM_WORKERS: 2 - - onnx: - runs-on: ubuntu-20.04-8-cores - steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - - name: Install NNCF and test requirements - run: make install-onnx-test - - name: Print installed modules - run: pip list - - name: Run ONNX precommit test scope - run: make test-onnx - env: - NUM_WORKERS: 4 - - openvino: - runs-on: ubuntu-20.04-8-cores - steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - cache: pip - - name: Install NNCF and test requirements - run: make install-openvino-test - - name: Print installed modules - run: pip list - - name: Run OV precommit test scope - run: make test-openvino - env: - NUM_WORKERS: 4 - - pytorch-cpu: - timeout-minutes: 40 - defaults: - run: - shell: bash - runs-on: ubuntu-20.04-8-cores - env: - DEBIAN_FRONTEND: noninteractive - steps: - - name: Install dependencies - run : | - sudo apt-get update - sudo apt-get --assume-yes install gcc g++ build-essential ninja-build libgl1-mesa-dev libglib2.0-0 - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - cache: pip - - name: Runner info - continue-on-error: true - run: | - cat /etc/*release - cat /proc/cpuinfo - - name: Install NNCF and test requirements - run: make install-torch-test - - name: Print installed modules - run: pip list - - name: Run PyTorch precommit test scope - run: | - make test-torch-cpu - env: - NUM_WORKERS: 4 - pytorch-cuda: - timeout-minutes: 40 - defaults: - run: - shell: bash - runs-on: aks-linux-4-cores-28gb-gpu-tesla-t4 - env: - DEBIAN_FRONTEND: noninteractive - steps: - - name: Install dependencies - run : | - sudo apt-get update - sudo apt-get --assume-yes install build-essential ninja-build libgl1-mesa-dev libglib2.0-0 wget make - - name: Download CUDA - run: | - wget -q https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run - sudo sh cuda_12.4.0_550.54.14_linux.run --toolkit --silent - - name: Runner info - continue-on-error: true - run: | - export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}} - export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} - nvidia-smi - cat /proc/cpuinfo - nvcc --version - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - cache: pip - - name: Install NNCF and test requirements - run: make install-torch-test - - name: Print installed modules - run: pip list - - name: Check CUDA - run: | - python -c "import torch; print(torch.cuda.is_available())" - - name: Run PyTorch precommit test scope - run: | - export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}} - export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} - make test-torch-cuda - - tensorflow: - timeout-minutes: 40 - defaults: - run: - shell: bash - runs-on: ubuntu-20.04-8-cores - env: - DEBIAN_FRONTEND: noninteractive - steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - cache: pip - - name: Install NNCF and test requirements - run: make install-tensorflow-test - - name: Print installed modules - run: pip list - - name: Run TensorFlow precommit test scope - run: make test-tensorflow - env: - NUM_WORKERS: 6 - - tools: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - cache: pip - - name: Install NNCF and test requirements - run: pip install -r tests/tools/requirements.txt - - name: Print installed modules - run: pip list - - name: Run tools precommit test scope - run: PYTHONPATH=./ pytest -ra tests/tools - - pytorch2-cpu: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - lfs: true - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 - with: - python-version: 3.10.14 - cache: pip - - name: Install NNCF and test requirements - run: | - pip install -e . - pip install -r tests/torch2/requirements.txt - - name: Print installed modules - run: pip list - - name: Run torch2 precommit test scope - run: pytest -ra tests/torch2 -m "not cuda" +jobs: + tests: + uses: ./.github/workflows/call_precommit.yml + with: + python_version: "3.10.14" + gpu_enabled: true diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml new file mode 100644 index 00000000000..b7d159b6797 --- /dev/null +++ b/.github/workflows/weekly.yml @@ -0,0 +1,23 @@ +name: nightly +permissions: read-all + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' + pull_request: + types: + - opened + - reopened + - synchronize + +jobs: + precommit: + strategy: + fail-fast: false + matrix: + python_version: ["3.9", "3.11", "3.12"] + uses: ./.github/workflows/call_precommit.yml + with: + python_version: ${{ matrix.python_version }} + gpu_enabled: false diff --git a/tests/torch2/function_hook/nncf_graph/test_nncf_graph.py b/tests/torch2/function_hook/nncf_graph/test_nncf_graph.py index 4f186b2d3e3..06d977d9789 100644 --- a/tests/torch2/function_hook/nncf_graph/test_nncf_graph.py +++ b/tests/torch2/function_hook/nncf_graph/test_nncf_graph.py @@ -73,16 +73,13 @@ def test_get_node_type(node_type: NodeType, meta: Union[ConstMeta, FunctionMeta, @pytest.mark.parametrize( "meta, ref", [ - [InOutMeta(torch.float32, (1), "input"), "input"], - [InOutMeta(torch.float32, (1), "output"), "output"], - [FunctionMeta("op_name", "fn_name", [], {}), "op_name"], - [ConstMeta(torch.float32, (1), "model.bias"), "model.bias"], + (InOutMeta(torch.float32, (1), "input"), "input"), + (InOutMeta(torch.float32, (1), "output"), "output"), + (FunctionMeta("op_name", "fn_name", [], {}), "op_name"), + (ConstMeta(torch.float32, (1), "model.bias"), "model.bias"), ], ) -def test_get_name_of_node( - meta: list[InOutMeta | str] | list[FunctionMeta | str] | list[ConstMeta | str], - ref: list[InOutMeta | str] | list[FunctionMeta | str] | list[ConstMeta | str], -): +def test_get_name_of_node(meta: Union[InOutMeta, FunctionMeta, ConstMeta], ref: str): assert get_name_of_node(meta) == ref From c13497a56933ef98d7fa91f94fc6422609106b40 Mon Sep 17 00:00:00 2001 From: Alexander Dokuchaev Date: Tue, 17 Dec 2024 17:02:21 +0200 Subject: [PATCH 2/6] f --- .github/workflows/weekly.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml index b7d159b6797..37d080c3fd5 100644 --- a/.github/workflows/weekly.yml +++ b/.github/workflows/weekly.yml @@ -1,15 +1,10 @@ -name: nightly +name: weekly permissions: read-all on: workflow_dispatch: schedule: - cron: '0 0 * * 0' - pull_request: - types: - - opened - - reopened - - synchronize jobs: precommit: From b839427a55b775f86c30b80694b0172a5426a7ab Mon Sep 17 00:00:00 2001 From: Alexander Dokuchaev Date: Tue, 17 Dec 2024 17:24:49 +0200 Subject: [PATCH 3/6] name --- .github/workflows/precommit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index fe8cc194755..6c2667d1b11 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -16,7 +16,7 @@ on: - 'tests/cross_fw/examples/*' # examples tests runs in separate workflow jobs: - tests: + precommit: uses: ./.github/workflows/call_precommit.yml with: python_version: "3.10.14" From 223ddd88fb8b3594e7765b28989000c44c280ce1 Mon Sep 17 00:00:00 2001 From: Alexander Dokuchaev Date: Tue, 17 Dec 2024 17:29:46 +0200 Subject: [PATCH 4/6] name --- .github/workflows/precommit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index 6c2667d1b11..b5d27f01c8a 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -16,7 +16,7 @@ on: - 'tests/cross_fw/examples/*' # examples tests runs in separate workflow jobs: - precommit: + pytest: uses: ./.github/workflows/call_precommit.yml with: python_version: "3.10.14" From c5bf0aa666acecaa7ab64c03d0cc9f32f722f623 Mon Sep 17 00:00:00 2001 From: Alexander Dokuchaev Date: Tue, 17 Dec 2024 19:35:25 +0200 Subject: [PATCH 5/6] 3.13 --- .github/workflows/precommit.yml | 25 +++++++++++++------------ .github/workflows/weekly.yml | 7 ++++++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index b5d27f01c8a..815e62866e9 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -2,18 +2,19 @@ name: precommit permissions: read-all on: - pull_request: - types: - - opened - - reopened - - synchronize - paths-ignore: - - '**/*.md' - - 'docs/**/*' - - 'tests/post_training/*' # post_training tests runs on Jenkins - - 'tests/torch/sota_checkpoints_eval.json' # reference for PT e2e - - 'tests/tensorflow/sota_checkpoints_eval.json' # reference for TF e2e - - 'tests/cross_fw/examples/*' # examples tests runs in separate workflow + # pull_request: + # types: + # - opened + # - reopened + # - synchronize + # paths-ignore: + # - '**/*.md' + # - 'docs/**/*' + # - 'tests/post_training/*' # post_training tests runs on Jenkins + # - 'tests/torch/sota_checkpoints_eval.json' # reference for PT e2e + # - 'tests/tensorflow/sota_checkpoints_eval.json' # reference for TF e2e + # - 'tests/cross_fw/examples/*' # examples tests runs in separate workflow + workflow_dispatch: jobs: pytest: diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml index 37d080c3fd5..a6803ea293a 100644 --- a/.github/workflows/weekly.yml +++ b/.github/workflows/weekly.yml @@ -5,13 +5,18 @@ on: workflow_dispatch: schedule: - cron: '0 0 * * 0' + pull_request: + types: + - opened + - reopened + - synchronize jobs: precommit: strategy: fail-fast: false matrix: - python_version: ["3.9", "3.11", "3.12"] + python_version: ["3.9", "3.11", "3.12", "3.13"] uses: ./.github/workflows/call_precommit.yml with: python_version: ${{ matrix.python_version }} From 22ccb0dad4359afdfa5b6a04ae1b573641f74b02 Mon Sep 17 00:00:00 2001 From: Alexander Dokuchaev Date: Tue, 17 Dec 2024 19:44:57 +0200 Subject: [PATCH 6/6] Revert "3.13" This reverts commit c5bf0aa666acecaa7ab64c03d0cc9f32f722f623. --- .github/workflows/precommit.yml | 25 ++++++++++++------------- .github/workflows/weekly.yml | 7 +------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index 815e62866e9..b5d27f01c8a 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -2,19 +2,18 @@ name: precommit permissions: read-all on: - # pull_request: - # types: - # - opened - # - reopened - # - synchronize - # paths-ignore: - # - '**/*.md' - # - 'docs/**/*' - # - 'tests/post_training/*' # post_training tests runs on Jenkins - # - 'tests/torch/sota_checkpoints_eval.json' # reference for PT e2e - # - 'tests/tensorflow/sota_checkpoints_eval.json' # reference for TF e2e - # - 'tests/cross_fw/examples/*' # examples tests runs in separate workflow - workflow_dispatch: + pull_request: + types: + - opened + - reopened + - synchronize + paths-ignore: + - '**/*.md' + - 'docs/**/*' + - 'tests/post_training/*' # post_training tests runs on Jenkins + - 'tests/torch/sota_checkpoints_eval.json' # reference for PT e2e + - 'tests/tensorflow/sota_checkpoints_eval.json' # reference for TF e2e + - 'tests/cross_fw/examples/*' # examples tests runs in separate workflow jobs: pytest: diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml index a6803ea293a..37d080c3fd5 100644 --- a/.github/workflows/weekly.yml +++ b/.github/workflows/weekly.yml @@ -5,18 +5,13 @@ on: workflow_dispatch: schedule: - cron: '0 0 * * 0' - pull_request: - types: - - opened - - reopened - - synchronize jobs: precommit: strategy: fail-fast: false matrix: - python_version: ["3.9", "3.11", "3.12", "3.13"] + python_version: ["3.9", "3.11", "3.12"] uses: ./.github/workflows/call_precommit.yml with: python_version: ${{ matrix.python_version }}