Skip to content
This repository has been archived by the owner on Oct 11, 2024. It is now read-only.

nm benchmark

nm benchmark #41

Workflow file for this run

name: benchmark
on:
# makes workflow reusable
workflow_call:
inputs:
label:
description: "requested runner label (specifies instance)"
type: string
required: true
benchmark_config_list_file:
description: "path to a file containing a list of benchmark-configs to run benchmarks with. For reference look at .github/data/nm_benchmark_configs_list.txt"
type: string
required: true
timeout:
description: "maximum time runner will be up"
type: string
required: true
gitref:
description: "git commit hash or branch name"
type: string
required: true
Gi_per_thread:
description: 'requested GiB to reserve per thread'
type: string
required: true
python:
description: "python version, e.g. 3.10.12"
type: string
required: true
push_results_to_gh_pages:
description: "When set to true, the workflow pushes all benchmarking results to gh-pages UI"
type: string
required: true
# makes workflow manually callable
workflow_dispatch:
inputs:
label:
description: "requested runner label (specifies instance)"
type: string
required: true
benchmark_config_list_file:
description: "path to a file containing a list of benchmark-configs to run benchmarks with. For reference look at .github/data/nm_benchmark_configs_list.txt"
type: string
required: true
timeout:
description: "maximum time runner will be up"
type: string
required: true
gitref:
description: "git commit hash or branch name"
type: string
required: true
Gi_per_thread:
description: 'requested GiB to reserve per thread'
type: string
required: true
python:
description: "python version, e.g. 3.10.12"
type: string
required: true
push_results_to_gh_pages:
description: "When set to true, the workflow pushes all benchmarking results to gh-pages UI"
type: choice
options:
- 'true'
- 'false'
default: 'false'
jobs:
BENCHMARK:
runs-on: ${{ inputs.label }}
timeout-minutes: ${{ fromJSON(inputs.timeout) }}
outputs:
artifact_name: ${{ steps.set_artifact_name.outputs.artifact_name}}
steps:
- name: checkout repository code
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.gitref }}
submodules: recursive
- name: setenv
id: setenv
uses: ./.github/actions/nm-set-env/
with:
hf_token: ${{ secrets.NM_HF_TOKEN }}
Gi_per_thread: ${{ inputs.Gi_per_thread }}
- name: set python
id: set_python
uses: ./.github/actions/nm-set-python/
with:
python: ${{ inputs.python }}
venv: TEST
- name: hf cache
id: hf_cache
uses: ./.github/actions/nm-hf-cache/
with:
fs_cache: ${{ secrets.HF_FS_CACHE }}
- name: build
id: build
uses: ./.github/actions/nm-build-vllm/
with:
Gi_per_thread: ${{ inputs.Gi_per_thread }}
python: ${{ inputs.python }}
venv: TEST
pypi: ${{ secrets.NM_PRIVATE_PYPI_LOCATION }}
- name: run benchmarks
uses: ./.github/actions/nm-benchmark/
with:
benchmark_config_list_file: ${{ inputs.benchmark_config_list_file }}
output_directory: benchmark-results
python: ${{ inputs.python }}
venv: TEST
- name: set artifact name
id: set_artifact_name
run: |
ARTIFACT_NAME=`echo "${{ github.run_id }}-${{ inputs.label }}"
echo "artifact_name=$ARTIFACT_NAME" >> $GITHUB_OUTPUT
- name: store benchmark result artifacts
if: success() || failure()
uses: actions/upload-artifact@v4
with:
name: ${{ steps.set_artifact_name.outputs.artifact_name}}
path: benchmark-results
retention-days: 10
PUSH_RESULTS_TO_GH_PAGES:
if: ${{ inputs.push_results_to_gh_pages == 'true'}}
needs: BENCHMARK
uses: ./.github/workflows/nm-gh-action-benchmark.yml

Check failure on line 140 in .github/workflows/nm-benchmark.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/nm-benchmark.yml

Invalid workflow file

error parsing called workflow ".github/workflows/nm-benchmark.yml" -> "./.github/workflows/nm-gh-action-benchmark.yml" (source branch with sha:7d9ffc861f94938196e62e854c532fddd810b4bc) : the `uses' attribute must be a path, a Docker image, or owner/repo@ref
with:
benchmark_results_artifact_name: ${{ needs.BENCHMARK.outputs.artifact_name }}
gitref: ${{ inputs.gitref }}
timeout: "20"
python: "3.10.12"