name: SHARK

on:
  schedule:
    - cron: '0 13 * * *'
  workflow_dispatch:
  # Uncomment `pull_request` below to test your PR on SHARK.
  # Results will be uploaded to gs://shark-benchmark-artifacts.
  # See the workflow's `SHARK -> generate_report` log output for exact results URL.
  # pull_request:

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:
  setup:
    runs-on: ubuntu-20.04
    env:
      # The commit being checked out is the merge commit for the PR. Its first
      # parent will be the tip of main.
      BASE_REF: HEAD^
      PR_TITLE: ${{ github.event.pull_request.title }}
      PR_BODY: ${{ github.event.pull_request.body }}
    outputs:
      should-run: ${{ steps.configure.outputs.should-run }}
      runner-env: ${{ steps.configure.outputs.runner-env }}
      runner-group: ${{ steps.configure.outputs.runner-group }}
      write-caches: ${{ steps.configure.outputs.write-caches }}
      shark-sha: ${{ steps.shark.outputs.shark-sha }}
      artifact-upload-dir: ${{ steps.shark.outputs.artifact-upload-dir }}
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
        with:
          # We need the parent commit to do a diff
          fetch-depth: 2
      - name: "Configuring CI options"
        id: configure
        run: |
          # Just informative logging. There should only be two commits in the
          # history here, but limiting the depth helps when copying from a local
          # repo instead of using checkout, e.g. with
          # https://github.com/nektos/act where there will be more.
          git log --oneline --graph --max-count=3
          ./build_tools/github_actions/configure_ci.py
      - name: "Checking out SHARK tank"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
        with:
          repository: nod-ai/SHARK
          path: ${{ github.workspace }}/SHARK
      - name: "Calculating version info"
        id: shark
        run: |
          cd ${{ github.workspace }}/SHARK
          export SHARK_SHA=`git rev-parse --short=4 HEAD`
          echo "shark-sha=${SHARK_SHA}" >> $GITHUB_OUTPUT
          export DIR_NAME="$(date +'%Y-%m-%d').sha_${SHARK_SHA}.timestamp_$(date +'%s')"
          if ${{ github.event_name  == 'pull_request' }}; then
            export DIR_NAME="${DIR_NAME}.presubmit"
          fi
          export GCS_ARTIFACT_DIR="gs://shark-benchmark-artifacts/${DIR_NAME}"
          echo "artifact-upload-dir=${GCS_ARTIFACT_DIR}" >> $GITHUB_OUTPUT

  benchmark_cpu:
    needs: setup
    if: needs.setup.outputs.should-run == 'true'
    runs-on:
      - self-hosted  # must come first
      - runner-group=${{ needs.setup.outputs.runner-group }}
      - environment=${{ needs.setup.outputs.runner-env }}
      - cpu
      - os-family=Linux
    env:
      SHARK_SHA: ${{ needs.setup.outputs.shark-sha }}
      IREE_SOURCE_DIR: ${{ github.event_name  == 'pull_request' && '.' || '' }}
      GCS_UPLOAD_DIR: ${{ needs.setup.outputs.artifact-upload-dir }}
      SHARK_OUTPUT_DIR: shark-output-dir
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
        with:
          submodules: true
      - name: "Benchmarking SHARK tank on CPU"
        run: |
          ./build_tools/github_actions/docker_run.sh \
            gcr.io/iree-oss/shark@sha256:2b2e41dbf909194b598e226144a2fb1e74d31851d41fe519d0fcb6d071b77461 \
          ./build_tools/benchmarks/shark/run_shark.sh --sha "${SHARK_SHA}" --pytest-regex "cpu" --driver "cpu" --output-dir "${SHARK_OUTPUT_DIR}" --save-version-info "true" --iree-source-dir "${IREE_SOURCE_DIR}"
      - name: "Uploading artifacts"
        run: |
          gcloud storage cp "${SHARK_OUTPUT_DIR}/**" "${GCS_UPLOAD_DIR}/"

  benchmark_cuda:
    needs: setup
    if: needs.setup.outputs.should-run == 'true'
    runs-on:
      - self-hosted  # must come first
      - runner-group=${{ needs.setup.outputs.runner-group }}
      - environment=${{ needs.setup.outputs.runner-env }}
      - machine-type=a2-highgpu-1g
      - os-family=Linux
    env:
      SHARK_SHA: ${{ needs.setup.outputs.shark-sha }}
      IREE_SOURCE_DIR: ${{ github.event_name  == 'pull_request' && '.' || '' }}
      GCS_UPLOAD_DIR: ${{ needs.setup.outputs.artifact-upload-dir }}
      SHARK_OUTPUT_DIR: shark-output-dir
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
        with:
          submodules: true
      - name: "Benchmarking SHARK tank on CUDA"
        run: |
          ./build_tools/github_actions/docker_run.sh \
            --gpus all \
            gcr.io/iree-oss/shark@sha256:2b2e41dbf909194b598e226144a2fb1e74d31851d41fe519d0fcb6d071b77461 \
          ./build_tools/benchmarks/shark/run_shark.sh --sha "${SHARK_SHA}" --pytest-regex "cuda" --driver "cuda" --output-dir "${SHARK_OUTPUT_DIR}" --save-version-info "false" --iree-source-dir "${IREE_SOURCE_DIR}"
      - name: "Uploading artifacts"
        run: |
          gcloud storage cp "${SHARK_OUTPUT_DIR}/**" "${GCS_UPLOAD_DIR}/"

  generate_report:
    needs: [setup, benchmark_cpu, benchmark_cuda]
    if: needs.setup.outputs.should-run == 'true'
    runs-on:
      - self-hosted  # must come first
      - runner-group=${{ needs.setup.outputs.runner-group }}
      - environment=${{ needs.setup.outputs.runner-env }}
      - cpu
      - os-family=Linux
    env:
      GCS_BASELINES_DIR: "gs://shark-benchmark-artifacts/baselines"
      GCS_LATEST_DIR: "gs://shark-benchmark-artifacts/latest"
      GCS_UPLOAD_DIR: ${{ needs.setup.outputs.artifact-upload-dir }}
      BENCHMARK_RESULTS_DIR: benchmark-results
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
        with:
          submodules: true
      - name: "Download benchmark results"
        run: |
          mkdir "${BENCHMARK_RESULTS_DIR}"
          gcloud storage cp "${GCS_UPLOAD_DIR}/**" "${BENCHMARK_RESULTS_DIR}/"
      - name: "Downloading baselines"
        run: |
          gcloud storage cp "${GCS_BASELINES_DIR}/**" "${BENCHMARK_RESULTS_DIR}/"
      - name: "Generating report"
        run: |
          ./build_tools/github_actions/docker_run.sh \
            gcr.io/iree-oss/shark@sha256:2b2e41dbf909194b598e226144a2fb1e74d31851d41fe519d0fcb6d071b77461 \
          ./build_tools/benchmarks/shark/run_report.sh "${BENCHMARK_RESULTS_DIR}" \
            "${BENCHMARK_RESULTS_DIR}/cpu_baseline.csv" \
            "${BENCHMARK_RESULTS_DIR}/cuda_baseline.csv" \
            "${BENCHMARK_RESULTS_DIR}/summary.html"
      - name: "Uploading summary"
        run: |
          gcloud storage cp "${BENCHMARK_RESULTS_DIR}/summary.html" "${GCS_UPLOAD_DIR}/"
      - name: "Updating latest"
        if: github.event_name != 'pull_request'
        run: |
          gcloud storage cp "${BENCHMARK_RESULTS_DIR}/summary.html" "${GCS_LATEST_DIR}/"
