Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CI][SYCL][Do not merge] Add CI workflow to run compute-benchmarks on incoming syclos PRs #14454

Draft
wants to merge 74 commits into
base: sycl
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
1276f39
[SYCL] Introduce PoC benchmarking option into sycl-linux-run-tests
ianayl Jul 3, 2024
754c33a
[SYCL] Fix EOF character for sycl-linux-run-tests
ianayl Jul 3, 2024
9981c3a
[SYCL] Fix: Make benchmarking script executable
ianayl Jul 3, 2024
3ed35ca
[SYCL] Bug fix on sycl-bench.sh
ianayl Jul 3, 2024
6ea0110
[SYCL] Amend workflow as per review in #14351
ianayl Jul 4, 2024
6d14a32
Merge branch 'sycl' of https://github.com/intel/llvm into benchmarkin…
ianayl Jul 4, 2024
940e3be
Complete redo of workflow, switch to compute-benchmarks
ianayl Sep 6, 2024
7aafdf5
Add safeguards and update usage(), names
ianayl Sep 12, 2024
24b5169
Change SYCL_PI_TRACE to SYCL_UR_TRACE
ianayl Sep 12, 2024
b2d4463
Test commit to learn more about the workflow
ianayl Sep 12, 2024
5f1cd57
Test commit to integrate building into the workflow
ianayl Sep 12, 2024
7a889f8
Refactor benchmarks out of sycl e2e
ianayl Sep 12, 2024
6e1b3bb
Re-enable benchmarks for testing purposes
ianayl Sep 12, 2024
5d1dea4
temporarily hijack precommit for testing
ianayl Sep 12, 2024
991cd55
temporarily enable benchmark
ianayl Sep 12, 2024
6e141e8
Merge branch 'sycl' of https://github.com/intel/llvm into benchmarkin…
ianayl Sep 12, 2024
8a5ecb6
Set CMPLR_ROOT for run
ianayl Sep 12, 2024
606c02a
Test pushing
ianayl Sep 12, 2024
5dd976e
Enable more debugging
ianayl Sep 12, 2024
6c83d2b
disable post commit temporarily for testing purposes, turn down paral…
ianayl Sep 12, 2024
5266cac
disable ccache
ianayl Sep 12, 2024
ab17254
Take benchmarking out of sycl-linux-run-tests
ianayl Sep 13, 2024
45a93ba
Fix leftover chars
ianayl Sep 13, 2024
a4a1c03
Add missing fields
ianayl Sep 13, 2024
52f5dc3
Disable windows, fix missing fields
ianayl Sep 13, 2024
90575fe
ammend permissions
ianayl Sep 13, 2024
8dfeff6
ammend boolean matching
ianayl Sep 13, 2024
3346a09
change ssh key directory
ianayl Sep 13, 2024
3a28ded
Added options to disable caching
ianayl Sep 16, 2024
e67c29f
attempt to introduce aggregate
ianayl Sep 17, 2024
88f8b3b
Merge branch 'sycl' of https://github.com/intel/llvm into benchmarkin…
ianayl Sep 17, 2024
e6cbc2e
changed permissions to allow aggregate
ianayl Sep 17, 2024
c6645aa
further write permission correction
ianayl Sep 17, 2024
867e6e6
further read permission correction
ianayl Sep 17, 2024
18ff8b1
test amendmnet of build permissions
ianayl Sep 17, 2024
cc29c23
Initial support for time ranges
ianayl Sep 17, 2024
3b5454f
Fixed aggregate, improved logging
ianayl Sep 18, 2024
6ed0361
Change repo used
ianayl Sep 18, 2024
f54e1d2
Resolve issue with using two action/checkout's
ianayl Sep 18, 2024
47693f9
amend location of aggregate
ianayl Sep 18, 2024
f1d3a7f
amend location of aggregate
ianayl Sep 18, 2024
652667f
fix timestamp format in common
ianayl Sep 18, 2024
be75574
fix missing $
ianayl Sep 18, 2024
1200217
fix missing $
ianayl Sep 18, 2024
97b2d4f
exit on error
ianayl Sep 19, 2024
08da292
exit on error
ianayl Sep 19, 2024
441bc10
update config to trigger new run
ianayl Sep 20, 2024
8979115
update config to trigger new run
ianayl Sep 20, 2024
7fa6a2e
Fix up typo
ianayl Sep 20, 2024
1074e42
Merge branch 'sycl' of https://github.com/intel/llvm into benchmarkin…
ianayl Oct 15, 2024
21498b4
Revert permissions on previous files
ianayl Oct 16, 2024
8506c20
Amend permissions to be more strict
ianayl Oct 16, 2024
c2835cd
Amend permissions on aggregate
ianayl Oct 16, 2024
51cdaee
Fix bug with permissions
ianayl Oct 16, 2024
ef6a085
Revert amend
ianayl Oct 16, 2024
2fd6b7b
Amend benchmarks permissions
ianayl Oct 16, 2024
1d5c676
Make build permissions more restrictive
ianayl Oct 16, 2024
c20d75e
Amend benchmark permissions
ianayl Oct 16, 2024
a9dad80
Try new config file loading
ianayl Oct 22, 2024
0c3e901
Fixed sed expression
ianayl Oct 22, 2024
12326ce
trigger workflow
ianayl Oct 22, 2024
4335bf9
Merge branch 'sycl' of https://github.com/intel/llvm into benchmarkin…
ianayl Oct 28, 2024
ba29015
Added iteration options, changed build to each case
ianayl Oct 30, 2024
90fe17f
Add debug prints
ianayl Oct 30, 2024
59e38fe
Make changes to the debug prints
ianayl Oct 30, 2024
d212adc
Upped number of iterations
ianayl Oct 30, 2024
321d83a
increase iterations
ianayl Nov 11, 2024
ba3c45c
Test PVC
ianayl Nov 26, 2024
81fb277
Merge branch 'sycl' into benchmarking-workflow
ianayl Nov 26, 2024
e8178c5
Merge branch 'sycl' of https://github.com/intel/llvm into benchmarkin…
ianayl Jan 2, 2025
410666e
disable igc dev for now
ianayl Jan 2, 2025
c32ad36
fix benchmarking
ianayl Jan 2, 2025
b5fa113
fix benchmarking
ianayl Jan 2, 2025
0ae396d
Introduce separating of results based on runners
ianayl Jan 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .github/workflows/sycl-benchmark-aggregate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Aggregate benchmark averages

on:
schedule:
- cron: 0 1 * * *
workflow_dispatch:
inputs:
cutoff_timestamp:
description: "Timestamp "
type: string
required: false
workflow_call:
inputs:
cutoff_timestamp:
type: string
required: false

permissions:
contents: read

jobs:
aggregate:
name: Aggregate average value for all metrics (median)
permissions:
contents: write # for Git to git push
runs-on: ubuntu-latest
if: github.repository == 'intel/llvm'
steps:
- uses: actions/checkout@v4
with:
path: llvm
sparse-checkout: |
devops/scripts/benchmarking
- name: Load benchmarking configuration
run: |
# TODO isolate sanitation from benchmark.sh different script
# use sanitation here
. llvm/devops/scripts/benchmarking/benchmark-ci.conf;
echo "PERF_RES_GIT_REPO=$PERF_RES_GIT_REPO" >> $GITHUB_ENV
echo "PERF_RES_BRANCH=$PERF_RES_BRANCH" >> $GITHUB_ENV
echo "PERF_RES_PATH=$PERF_RES_PATH" >> $GITHUB_ENV

if [ -z '${{ inputs.cutoff_timestamp }}' ]; then
# No time given, use default time period
echo "CUTOFF_TIMESTAMP=$(date --date="$AVERAGE_CUTOFF_RANGE" +"$TIMESTAMP_FORMAT")" >> $GITHUB_ENV
else
# If the provided time is a unix `date` timestamp, convert the time to our format
_converted_timestamp="$(date --date '${{ inputs.cutoff_timestamp }}' +"$TIMESTAMP_FORMAT" 2> /dev/null)"
if [ -n "$_converted_timestamp" ]; then
echo "CUTOFF_TIMESTAMP=$_converted_timestamp" >> $GITHUB_ENV
else
# If not a valid unix `date` timestamp, it could be in our timestamp format already.
# aggregate.py will ensure the timestamp is in the proper format, so we can pass the
# time forward regardless:
echo 'CUTOFF_TIMESTAMP=${{ inputs.cutoff_timestamp }}' >> $GITHUB_ENV
fi
fi
- name: Checkout performance results repository
run: |
git clone -b $PERF_RES_BRANCH $PERF_RES_GIT_REPO $PERF_RES_PATH
- name: Run aggregator on cloned data
run: |
for dir in $(find "$PERF_RES_PATH" -mindepth 2 -maxdepth 2 -type d ! -path '*.git*'); do
_runner="$(basename $(dirname $dir))"
_testcase="$(basename $dir)"
python llvm/devops/scripts/benchmarking/aggregate.py "$_runner" "$_testcase" "$CUTOFF_TIMESTAMP"
done
- name: Debug
run: |
find "$PERF_RES_PATH" -maxdepth 3 ! -name '.*'
echo "########"
find . -maxdepth 3 ! -name '.*'
- name: Upload average to the repo
env:
SSH_KEY: ${{secrets.ACTIONS_DEPLOY_KEY}}
run: |
mkdir -p ~/.ssh
echo "$SSH_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
eval "$(ssh-agent -s)"
ssh-add -k ~/.ssh/id_rsa
cd $PERF_RES_PATH
git config --global user.name "iclsrc"
git config --global user.email "[email protected]"
git add .
git commit -m "Average aggregate $(date "+%m/%d/%y %H:%M")" -s
git push
108 changes: 54 additions & 54 deletions .github/workflows/sycl-containers-igc-dev.yaml
Original file line number Diff line number Diff line change
@@ -1,54 +1,54 @@
name: IGC DEV CI Containers
on:
workflow_dispatch:
push:
branches:
- sycl
paths:
- 'devops/actions/build_container/**'
- 'devops/scripts/**'
- 'devops/dependencies-igc-dev.json'
- '.github/workflows/sycl-containers-igc-dev.yaml'
pull_request:
paths:
- 'devops/actions/build_container/**'
- 'devops/scripts/**'
- 'devops/dependencies-igc-dev.json'
- '.github/workflows/sycl-containers-igc-dev.yaml'

permissions: read-all

jobs:
build_and_push_images:
if: github.repository == 'intel/llvm'
name: Build and Push IGC Dev Docker Images
runs-on: ubuntu-22.04
permissions:
packages: write
strategy:
matrix:
include:
- name: Intel Drivers Ubuntu 24.04 Docker image with dev IGC
dockerfile: ubuntu2404_intel_drivers_igc_dev
imagefile: ubuntu2404_intel_drivers
tag: devigc
build_args: |
"use_unstable_driver=false"
"use_igc_dev=true"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Build and Push Container
uses: ./devops/actions/build_container
with:
push: ${{ github.event_name != 'pull_request' }}
file: ${{ matrix.dockerfile }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
tags: |
ghcr.io/${{ github.repository }}/${{ matrix.imagefile }}:${{ matrix.tag }}-${{ github.sha }}
ghcr.io/${{ github.repository }}/${{ matrix.imagefile }}:${{ matrix.tag }}
build-args: ${{ matrix.build_args }}

# name: IGC DEV CI Containers
# on:
# workflow_dispatch:
# push:
# branches:
# - sycl
# paths:
# - 'devops/actions/build_container/**'
# - 'devops/scripts/**'
# - 'devops/dependencies-igc-dev.json'
# - '.github/workflows/sycl-containers-igc-dev.yaml'
# pull_request:
# paths:
# - 'devops/actions/build_container/**'
# - 'devops/scripts/**'
# - 'devops/dependencies-igc-dev.json'
# - '.github/workflows/sycl-containers-igc-dev.yaml'
#
# permissions: read-all
#
# jobs:
# build_and_push_images:
# if: github.repository == 'intel/llvm'
# name: Build and Push IGC Dev Docker Images
# runs-on: ubuntu-22.04
# permissions:
# packages: write
# strategy:
# matrix:
# include:
# - name: Intel Drivers Ubuntu 24.04 Docker image with dev IGC
# dockerfile: ubuntu2404_intel_drivers_igc_dev
# imagefile: ubuntu2404_intel_drivers
# tag: devigc
# build_args: |
# "use_unstable_driver=false"
# "use_igc_dev=true"
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# fetch-depth: 2
# - name: Build and Push Container
# uses: ./devops/actions/build_container
# with:
# push: ${{ github.event_name != 'pull_request' }}
# file: ${{ matrix.dockerfile }}
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}
# tags: |
# ghcr.io/${{ github.repository }}/${{ matrix.imagefile }}:${{ matrix.tag }}-${{ github.sha }}
# ghcr.io/${{ github.repository }}/${{ matrix.imagefile }}:${{ matrix.tag }}
# build-args: ${{ matrix.build_args }}
#
Loading