From 7c53f1a0cf48b7d55800840d947d3276b2206519 Mon Sep 17 00:00:00 2001 From: Cedar Date: Thu, 14 Nov 2024 15:07:13 -0800 Subject: [PATCH 1/8] use devme for shortfin integration tests --- .github/workflows/ci-shark-platform.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-shark-platform.yml b/.github/workflows/ci-shark-platform.yml index 6741f7ea0..9621efac9 100644 --- a/.github/workflows/ci-shark-platform.yml +++ b/.github/workflows/ci-shark-platform.yml @@ -58,7 +58,7 @@ jobs: # from non default locations first. Installing the PyTorch CPU # wheels saves multiple minutes and a lot of bandwidth on runner setup. pip install --no-compile -r pytorch-cpu-requirements.txt - pip install --no-compile -r requirements.txt -e sharktank/ shortfin/ + pip install --no-compile -r requirements.txt -e sharktank/ # Install latest iree-tubrine. pip install --no-compile -f https://iree.dev/pip-release-links.html --src deps \ @@ -70,6 +70,8 @@ jobs: pip install -f https://iree.dev/pip-release-links.html --upgrade --pre \ iree-base-compiler \ iree-base-runtime + - name: Install shortfin via dev_me.py + run: cd shortfin && python dev_me.py - name: Run LLM Integration Tests run: pytest -v build_tools/integration_tests/llm --log-cli-level=INFO From 0c61e030ac3051948fe8ae6f86adae046ba2df7f Mon Sep 17 00:00:00 2001 From: Cedar Date: Thu, 14 Nov 2024 15:25:30 -0800 Subject: [PATCH 2/8] add iree cloning --- .github/workflows/ci-shark-platform.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci-shark-platform.yml b/.github/workflows/ci-shark-platform.yml index 9621efac9..2a22184a7 100644 --- a/.github/workflows/ci-shark-platform.yml +++ b/.github/workflows/ci-shark-platform.yml @@ -70,6 +70,17 @@ jobs: pip install -f https://iree.dev/pip-release-links.html --upgrade --pre \ iree-base-compiler \ iree-base-runtime + + - name: Clone IREE with matching version + run: | + # Get IREE version and extract the version number + IREE_VERSION=$(pip show iree-base-compiler | grep Version: | cut -d' ' -f2) + echo "Found IREE version: ${IREE_VERSION}" + # Clone IREE repository at the parent directory level. Git clone --branch supports tags. + cd .. && git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git + cd SHARK-Platform + + - name: Install shortfin via dev_me.py run: cd shortfin && python dev_me.py From 965c850c8b8715867a66cca685201cb0baf14b6b Mon Sep 17 00:00:00 2001 From: Cedar Date: Thu, 14 Nov 2024 15:45:26 -0800 Subject: [PATCH 3/8] install cmake --- .github/workflows/ci-shark-platform.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci-shark-platform.yml b/.github/workflows/ci-shark-platform.yml index 2a22184a7..729282a7c 100644 --- a/.github/workflows/ci-shark-platform.yml +++ b/.github/workflows/ci-shark-platform.yml @@ -80,6 +80,8 @@ jobs: cd .. && git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git cd SHARK-Platform + - name: Install CMake + uses: ssrobins/install-cmake@v1 # this action installs cmake into the action workspace - name: Install shortfin via dev_me.py run: cd shortfin && python dev_me.py From d28b29b14a5c8f918e2df533681f6a74620c1722 Mon Sep 17 00:00:00 2001 From: Cedar Date: Thu, 14 Nov 2024 15:54:30 -0800 Subject: [PATCH 4/8] remove iree clone if not the same ver --- .github/workflows/ci-shark-platform.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-shark-platform.yml b/.github/workflows/ci-shark-platform.yml index 729282a7c..5266747da 100644 --- a/.github/workflows/ci-shark-platform.yml +++ b/.github/workflows/ci-shark-platform.yml @@ -73,12 +73,21 @@ jobs: - name: Clone IREE with matching version run: | - # Get IREE version and extract the version number + # Get IREE version IREE_VERSION=$(pip show iree-base-compiler | grep Version: | cut -d' ' -f2) - echo "Found IREE version: ${IREE_VERSION}" - # Clone IREE repository at the parent directory level. Git clone --branch supports tags. - cd .. && git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git - cd SHARK-Platform + echo "Required IREE version: ${IREE_VERSION}" + + # If IREE exists, check version and reclone if needed + if [ -d "../iree" ]; then + cd ../iree + if [ "$(git describe --tags --exact-match 2>/dev/null)" != "iree-${IREE_VERSION}" ]; then + cd .. && rm -rf iree + git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git + fi + else + cd .. && git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git + fi + - name: Install CMake uses: ssrobins/install-cmake@v1 # this action installs cmake into the action workspace From 54bd1092e2de0f0b823bfdab84a7048e92cf8e95 Mon Sep 17 00:00:00 2001 From: Cedar Date: Thu, 14 Nov 2024 16:33:28 -0800 Subject: [PATCH 5/8] init submodules of iree --- .github/workflows/ci-shark-platform.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci-shark-platform.yml b/.github/workflows/ci-shark-platform.yml index 5266747da..a88795f43 100644 --- a/.github/workflows/ci-shark-platform.yml +++ b/.github/workflows/ci-shark-platform.yml @@ -88,6 +88,9 @@ jobs: cd .. && git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git fi + # init iree submodules + cd iree && git submodule update --init --recursive + - name: Install CMake uses: ssrobins/install-cmake@v1 # this action installs cmake into the action workspace From 7243e8fc4169a16705ea3fcf1f4f2d0efc9b91c0 Mon Sep 17 00:00:00 2001 From: Cedar Date: Thu, 14 Nov 2024 17:08:22 -0800 Subject: [PATCH 6/8] simplify iree clone and submodule versioning --- .github/workflows/ci-shark-platform.yml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci-shark-platform.yml b/.github/workflows/ci-shark-platform.yml index a88795f43..82356325b 100644 --- a/.github/workflows/ci-shark-platform.yml +++ b/.github/workflows/ci-shark-platform.yml @@ -77,19 +77,18 @@ jobs: IREE_VERSION=$(pip show iree-base-compiler | grep Version: | cut -d' ' -f2) echo "Required IREE version: ${IREE_VERSION}" - # If IREE exists, check version and reclone if needed - if [ -d "../iree" ]; then - cd ../iree - if [ "$(git describe --tags --exact-match 2>/dev/null)" != "iree-${IREE_VERSION}" ]; then - cd .. && rm -rf iree - git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git - fi + EXPECTED_TAG="iree-${IREE_VERSION}" + + # Clone or update IREE repository + IREE_PATH="../iree" + if [ -d "$IREE_PATH" ] && [ "$(cd $IREE_PATH && git describe --tags --exact-match 2>/dev/null)" = "$EXPECTED_TAG" ]; then + echo "IREE repository already at correct version" else - cd .. && git clone --depth 1 --branch "iree-${IREE_VERSION}" https://github.com/iree-org/iree.git + rm -rf "$IREE_PATH" + git clone --depth 1 --branch "$EXPECTED_TAG" https://github.com/iree-org/iree.git "$IREE_PATH" fi - # init iree submodules - cd iree && git submodule update --init --recursive + (cd "$IREE_PATH" && git submodule update --init --recursive) - name: Install CMake From 34fa1c77c06350ce6643d31114c27e050f9d58f3 Mon Sep 17 00:00:00 2001 From: Cedar Date: Fri, 15 Nov 2024 09:13:13 -0800 Subject: [PATCH 7/8] move to a separate script so i can compare runtimes --- .github/workflows/ci-shark-platform.yml | 28 +------ .github/workflows/ci-shark-platform2.yml | 100 +++++++++++++++++++++++ 2 files changed, 101 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/ci-shark-platform2.yml diff --git a/.github/workflows/ci-shark-platform.yml b/.github/workflows/ci-shark-platform.yml index 82356325b..6741f7ea0 100644 --- a/.github/workflows/ci-shark-platform.yml +++ b/.github/workflows/ci-shark-platform.yml @@ -58,7 +58,7 @@ jobs: # from non default locations first. Installing the PyTorch CPU # wheels saves multiple minutes and a lot of bandwidth on runner setup. pip install --no-compile -r pytorch-cpu-requirements.txt - pip install --no-compile -r requirements.txt -e sharktank/ + pip install --no-compile -r requirements.txt -e sharktank/ shortfin/ # Install latest iree-tubrine. pip install --no-compile -f https://iree.dev/pip-release-links.html --src deps \ @@ -71,31 +71,5 @@ jobs: iree-base-compiler \ iree-base-runtime - - name: Clone IREE with matching version - run: | - # Get IREE version - IREE_VERSION=$(pip show iree-base-compiler | grep Version: | cut -d' ' -f2) - echo "Required IREE version: ${IREE_VERSION}" - - EXPECTED_TAG="iree-${IREE_VERSION}" - - # Clone or update IREE repository - IREE_PATH="../iree" - if [ -d "$IREE_PATH" ] && [ "$(cd $IREE_PATH && git describe --tags --exact-match 2>/dev/null)" = "$EXPECTED_TAG" ]; then - echo "IREE repository already at correct version" - else - rm -rf "$IREE_PATH" - git clone --depth 1 --branch "$EXPECTED_TAG" https://github.com/iree-org/iree.git "$IREE_PATH" - fi - - (cd "$IREE_PATH" && git submodule update --init --recursive) - - - - name: Install CMake - uses: ssrobins/install-cmake@v1 # this action installs cmake into the action workspace - - - name: Install shortfin via dev_me.py - run: cd shortfin && python dev_me.py - - name: Run LLM Integration Tests run: pytest -v build_tools/integration_tests/llm --log-cli-level=INFO diff --git a/.github/workflows/ci-shark-platform2.yml b/.github/workflows/ci-shark-platform2.yml new file mode 100644 index 000000000..9ecb6999b --- /dev/null +++ b/.github/workflows/ci-shark-platform2.yml @@ -0,0 +1,100 @@ +# Copyright 2024 Advanced Micro Devices, Inc. +# +# Licensed under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +name: CI - fast from source shark-platform + +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + +concurrency: + # A PR number if a pull request and otherwise the commit hash. This cancels + # queued and in-progress runs for the same PR (presubmit) or commit + # (postsubmit). The workflow name is prepended to avoid conflicts between + # different workflows. + group: ${{ github.workflow }}-${{ github.event.number || github.sha }} + cancel-in-progress: true + +jobs: + test_shortfin_llm_server: + name: "Integration Tests - Shortfin LLM Server" + strategy: + matrix: + version: [3.11] + fail-fast: false + runs-on: nodai-amdgpu-mi250-x86-64 + defaults: + run: + shell: bash + env: + PIP_CACHE_DIR: "${{ github.workspace }}/.pip-cache" + steps: + - name: "Setting up Python" + id: setup_python + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + with: + python-version: ${{matrix.version}} + + - name: "Checkout Code" + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Cache Pip Packages + uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 + id: cache-pip + with: + path: ${{ env.PIP_CACHE_DIR }} + key: pip-${{ steps.setup_python.outputs.python-version }}-${{ hashFiles('*requirements.txt') }} + + - name: Install pip deps + run: | + python -m pip install --no-compile --upgrade pip + # Note: We install in three steps in order to satisfy requirements + # from non default locations first. Installing the PyTorch CPU + # wheels saves multiple minutes and a lot of bandwidth on runner setup. + pip install --no-compile -r pytorch-cpu-requirements.txt + pip install --no-compile -r requirements.txt -e sharktank/ + + # Install latest iree-tubrine. + pip install --no-compile -f https://iree.dev/pip-release-links.html --src deps \ + -e "git+https://github.com/iree-org/iree-turbine.git#egg=iree-turbine" + + # Try with the latest IREE nightly releases, not what iree-turbine pins. + # We could also pin to a known working or stable version. + # This should eventually stabilize. Do the best we can for now. + pip install -f https://iree.dev/pip-release-links.html --upgrade --pre \ + iree-base-compiler \ + iree-base-runtime + + - name: Clone IREE with matching version + run: | + # Get IREE version + IREE_VERSION=$(pip show iree-base-compiler | grep Version: | cut -d' ' -f2) + echo "Required IREE version: ${IREE_VERSION}" + + EXPECTED_TAG="iree-${IREE_VERSION}" + + # Clone or update IREE repository + IREE_PATH="../iree" + if [ -d "$IREE_PATH" ] && [ "$(cd $IREE_PATH && git describe --tags --exact-match 2>/dev/null)" = "$EXPECTED_TAG" ]; then + echo "IREE repository already at correct version" + else + rm -rf "$IREE_PATH" + git clone --depth 1 --branch "$EXPECTED_TAG" --recurse-submodules --shallow-submodules https://github.com/iree-org/iree.git "$IREE_PATH" + fi + + + + - name: Install CMake + uses: ssrobins/install-cmake@v1 # this action installs cmake into the action workspace + + - name: Install shortfin via dev_me.py + run: cd shortfin && python dev_me.py + + - name: Run LLM Integration Tests + run: pytest -v build_tools/integration_tests/llm --log-cli-level=INFO From 8633cd96011f0bc6f70a51e32b91ac7fdf2acc8a Mon Sep 17 00:00:00 2001 From: Cedar Date: Fri, 15 Nov 2024 09:14:48 -0800 Subject: [PATCH 8/8] remove empty lines --- .github/workflows/ci-shark-platform2.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci-shark-platform2.yml b/.github/workflows/ci-shark-platform2.yml index 9ecb6999b..3d2afd4d4 100644 --- a/.github/workflows/ci-shark-platform2.yml +++ b/.github/workflows/ci-shark-platform2.yml @@ -88,8 +88,6 @@ jobs: git clone --depth 1 --branch "$EXPECTED_TAG" --recurse-submodules --shallow-submodules https://github.com/iree-org/iree.git "$IREE_PATH" fi - - - name: Install CMake uses: ssrobins/install-cmake@v1 # this action installs cmake into the action workspace