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..b5d27f01c8a 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: + pytest: + 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..37d080c3fd5 --- /dev/null +++ b/.github/workflows/weekly.yml @@ -0,0 +1,18 @@ +name: weekly +permissions: read-all + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' + +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