mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-09 14:47:56 -05:00
The term "bpr" means Branch Protection Rule. It helps one to identify any job that must pass before being able to merge to the base branch.
66 lines
2.3 KiB
YAML
66 lines
2.3 KiB
YAML
# Run CUDA DEX benchmarks on a Hyperstack VM and return parsed results to Slab CI bot.
|
|
name: benchmark_gpu_dex/
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
profile:
|
|
description: "Instance type"
|
|
required: true
|
|
type: choice
|
|
options:
|
|
- "l40 (n3-L40x1)"
|
|
- "4-l40 (n3-L40x4)"
|
|
- "multi-a100-nvlink (n3-A100x8-NVLink)"
|
|
- "single-h100 (n3-H100x1)"
|
|
- "2-h100 (n3-H100x2)"
|
|
- "4-h100 (n3-H100x4)"
|
|
- "multi-h100 (n3-H100x8)"
|
|
- "multi-h100-nvlink (n3-H100x8-NVLink)"
|
|
- "multi-h100-sxm5 (n3-H100x8-SXM5)"
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
parse-inputs:
|
|
name: benchmark_gpu_dex/parse-inputs
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
profile: ${{ steps.parse_profile.outputs.profile }}
|
|
hardware_name: ${{ steps.parse_hardware_name.outputs.name }}
|
|
env:
|
|
INPUTS_PROFILE: ${{ inputs.profile }}
|
|
steps:
|
|
- name: Parse profile
|
|
id: parse_profile
|
|
run: |
|
|
# Use Sed to extract a value from a string, this cannot be done with the ${variable//search/replace} pattern.
|
|
# shellcheck disable=SC2001
|
|
PROFILE=$(echo "${INPUTS_PROFILE}" | sed 's|\(.*\)[[:space:]](.*)|\1|')
|
|
echo "profile=${PROFILE}" >> "${GITHUB_OUTPUT}"
|
|
|
|
- name: Parse hardware name
|
|
id: parse_hardware_name
|
|
run: |
|
|
# Use Sed to extract a value from a string, this cannot be done with the ${variable//search/replace} pattern.
|
|
# shellcheck disable=SC2001
|
|
NAME=$(echo "${INPUTS_PROFILE}" | sed 's|.*[[:space:]](\(.*\))|\1|')
|
|
echo "name=${NAME}" >> "${GITHUB_OUTPUT}"
|
|
|
|
run-benchmarks:
|
|
name: benchmark_gpu_dex/run-benchmarks
|
|
needs: parse-inputs
|
|
uses: ./.github/workflows/benchmark_gpu_dex_common.yml
|
|
with:
|
|
profile: ${{ needs.parse-inputs.outputs.profile }}
|
|
hardware_name: ${{ needs.parse-inputs.outputs.hardware_name }}
|
|
secrets:
|
|
BOT_USERNAME: ${{ secrets.BOT_USERNAME }}
|
|
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
|
|
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
|
REPO_CHECKOUT_TOKEN: ${{ secrets.REPO_CHECKOUT_TOKEN }}
|
|
JOB_SECRET: ${{ secrets.JOB_SECRET }}
|
|
SLAB_ACTION_TOKEN: ${{ secrets.SLAB_ACTION_TOKEN }}
|
|
SLAB_URL: ${{ secrets.SLAB_URL }}
|
|
SLAB_BASE_URL: ${{ secrets.SLAB_BASE_URL }}
|