Skip to content

[Sync] Merge mainstream TileLang TVM-FFI features into TileScale #24

[Sync] Merge mainstream TileLang TVM-FFI features into TileScale

[Sync] Merge mainstream TileLang TVM-FFI features into TileScale #24

name: Performance Benchmark Bot
on:
issue_comment:
types:
- created
permissions:
contents: read
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true # always cancel in-progress
jobs:
perfbench:
name: Benchmark between PR and main
if: |
github.repository_owner == 'tile-ai' &&
github.event.issue.pull_request &&
(contains(github.event.comment.body, '/performance-report') || contains(github.event.comment.body, '/perf'))
runs-on: [self-hosted, nvidia]
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: refs/pull/${{ github.event.issue.number }}/merge
fetch-depth: 0
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.9"
- name: Install merged version
run: |
python -m venv tll
source tll/bin/activate
pip install -r requirements-test.txt
pip install .
- name: Install original version
run: |
echo "Check files to be deleted!"
git clean -dxf -e tll/
echo "Delete files completed!"
git checkout main
python -m venv tl
source tl/bin/activate
pip install -r requirements-test.txt
pip install .
- name: Run performance test
id: perfbench
run: |
source tl/bin/activate
python maint/scripts/ci_performance.py
- name: Post test results as PR comment
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: '📊 ​**Performance Test Results** (triggered by @' + context.payload.comment.user.login + '):\n\n' +
'Run listed here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}\n\n' +
"${{ steps.perfbench.outputs.stdout }}"
})