Skip to content

Commit 0e3f3cc

Browse files
add workflow for running UMF benchmarks on Ubuntu
download scripts for data visualisation from UR repository, run UMF benchmarks, upload the results to GitHub pages
1 parent 378d1a3 commit 0e3f3cc

File tree

2 files changed

+59
-39
lines changed

2 files changed

+59
-39
lines changed

.github/workflows/benchmarks.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Compute Benchmarks
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
str_name:
7+
description: Formatted adapter name
8+
type: choice
9+
required: true
10+
default: 'level_zero'
11+
options:
12+
- level_zero
13+
- level_zero_v2
14+
unit:
15+
description: Test unit (cpu/gpu)
16+
type: choice
17+
required: true
18+
default: 'gpu'
19+
options:
20+
- cpu
21+
- gpu
22+
pr_no:
23+
description: PR number (if 0, it'll run on the main)
24+
type: number
25+
required: true
26+
bench_script_params:
27+
description: Parameters passed to script executing benchmark
28+
type: string
29+
required: false
30+
default: ''
31+
upload_report:
32+
description: 'Upload HTML report'
33+
type: boolean
34+
required: false
35+
default: false
36+
37+
permissions:
38+
contents: read
39+
pull-requests: write
40+
41+
jobs:
42+
manual:
43+
name: Compute Benchmarks
44+
uses: ./.github/workflows/reusable_benchmarks.yml
45+
with:
46+
pr_no: ${{ inputs.pr_no }}
47+
bench_script_params: ${{ inputs.bench_script_params }}
48+
upload_report: ${{ inputs.upload_report }}
49+

.github/workflows/reusable_benchmarks.yml

Lines changed: 10 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,20 @@ env:
3030
jobs:
3131
benchmarks:
3232
name: Benchmarks
33-
# env:
34-
# VCPKG_PATH: "${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
3533
strategy:
3634
matrix:
37-
os: ['ubuntu-latest'] #, 'windows-latest']
38-
include:
39-
# Windows doesn't recognize 'CMAKE_BUILD_TYPE', it uses '--config' param in build command to determine the build type
40-
- os: ubuntu-latest
41-
extra_build_option: '-DCMAKE_BUILD_TYPE=Release'
35+
os: ['ubuntu-latest']
4236
runs-on: ${{matrix.os}}
4337

4438
steps:
39+
# Workspace on self-hosted runners is not cleaned automatically.
40+
# We have to delete the files created outside of using actions.
41+
- name: Cleanup self-hosted workspace
42+
if: always()
43+
run: |
44+
ls -la ./
45+
rm -rf ./* || true
46+
4547
- name: Add comment to PR
4648
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
4749
if: ${{ always() && inputs.pr_no != 0 }}
@@ -75,31 +77,17 @@ jobs:
7577
git rev-parse origin/pr/${PR_NO}/merge
7678
7779
- name: Install apt packages
78-
if: matrix.os == 'ubuntu-latest'
7980
run: |
8081
sudo apt-get update
8182
sudo apt-get install -y cmake libhwloc-dev libnuma-dev libtbb-dev
8283
83-
# - name: Initialize vcpkg
84-
# if: matrix.os == 'windows-latest'
85-
# uses: lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
86-
# with:
87-
# vcpkgGitCommitId: 3dd44b931481d7a8e9ba412621fa810232b66289
88-
# vcpkgDirectory: ${{env.BUILD_DIR}}/vcpkg
89-
# vcpkgJsonGlob: '**/vcpkg.json'
90-
91-
# - name: Install vcpkg packages
92-
# if: matrix.os == 'windows-latest'
93-
# run: vcpkg install
94-
# shell: pwsh # Specifies PowerShell as the shell for running the script.
95-
96-
# -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
9784
- name: Configure build
9885
run: >
9986
cmake
10087
-B ${{env.BUILD_DIR}}
10188
${{matrix.extra_build_option}}
10289
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
90+
-DCMAKE_BUILD_TYPE=Release
10391
-DUMF_BUILD_SHARED_LIBRARY=ON
10492
-DUMF_BUILD_BENCHMARKS=ON
10593
-DUMF_BUILD_BENCHMARKS_MT=ON
@@ -112,13 +100,8 @@ jobs:
112100
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
113101
114102
- name: Build UMF on Linux
115-
if: matrix.os == 'ubuntu-latest'
116103
run: cmake --build ${{env.BUILD_DIR}} -j $(nproc)
117104

118-
# - name: Build UMF on Windows
119-
# if: matrix.os == 'windows-latest'
120-
# run: cmake --build ${{env.BUILD_DIR}} --config Release -j $Env:NUMBER_OF_PROCESSORS
121-
122105
- name: Checkout UR
123106
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
124107
with:
@@ -132,14 +115,12 @@ jobs:
132115
pip install --force-reinstall -r ${{github.workspace}}/ur-repo/third_party/benchmark_requirements.txt
133116
134117
- name: Install HWLOC
135-
if: matrix.os == 'ubuntu-latest'
136118
run: |
137119
sudo apt-get update
138120
sudo apt-get install libhwloc-dev
139121
140122
- name: Run benchmarks
141123
id: benchmarks
142-
if: matrix.os == 'ubuntu-latest'
143124
working-directory: ${{env.BUILD_DIR}}
144125
run: >
145126
${{ github.workspace }}/ur-repo/scripts/benchmarks/main.py
@@ -152,16 +133,6 @@ jobs:
152133
run: >
153134
echo 'out: ${{ steps.benchmarks.outcome }}'
154135
155-
# - name: Run benchmarks
156-
# if: matrix.os == 'windows-latest'
157-
# working-directory: ${{env.BUILD_DIR}}
158-
# run: >
159-
# python3 ${{ github.workspace }}/ur-repo/scripts/benchmarks/main.py
160-
# ~/bench_workdir
161-
# --umf ${{env.BUILD_DIR}}
162-
# ${{ inputs.upload_report && '--output-html' || '' }}
163-
# ${{ inputs.bench_script_params }}
164-
165136
- name: Add comment to PR
166137
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
167138
if: ${{ always() && inputs.pr_no != 0 }}

0 commit comments

Comments
 (0)