11# Executes benchmarks implemented in this repository
2+ # using scripts for benchmark results visualisation,
3+ # which are downloaded from Unified Runtime repository.
24name : Benchmarks
35
46on :
57 workflow_call :
68 inputs :
79 pr_no :
8- required : true
910 # even though this is a number, this is a workaround for issues with
1011 # reusable workflow calls that result in "Unexpected value '0'" error.
1112 type : string
@@ -24,24 +25,26 @@ permissions:
2425 pull-requests : write
2526
2627env :
27- BUILD_DIR : " ${{github.workspace}}/build "
28- INSTL_DIR : " ${{github.workspace}}/../install-dir "
28+ UMF_DIR : " ${{github.workspace}}/umf-repo "
29+ BUILD_DIR : " ${{github.workspace}}/umf-repo/build "
2930
3031jobs :
3132 benchmarks :
3233 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"
3534 strategy :
3635 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'
36+ os : ['ubuntu-latest']
4237 runs-on : ${{matrix.os}}
4338
4439 steps :
40+ # Workspace on self-hosted runners is not cleaned automatically.
41+ # We have to delete the files created outside of using actions.
42+ - name : Cleanup self-hosted workspace
43+ if : always()
44+ run : |
45+ ls -la ./
46+ rm -rf ./* || true
47+
4548 - name : Add comment to PR
4649 uses : actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
4750 if : ${{ always() && inputs.pr_no != 0 }}
@@ -59,14 +62,16 @@ jobs:
5962 body: body
6063 })
6164
62- - name : Checkout
65+ - name : Checkout UMF
6366 uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
6467 with :
68+ path : ${{env.UMF_DIR}}
6569 fetch-depth : 0
6670
6771 # We need to fetch special ref for proper PR's merge commit. Note, this ref may be absent if the PR is already merged.
6872 - name : Fetch PR's merge commit
6973 if : ${{ inputs.pr_no != 0 }}
74+ working-directory : ${{env.UMF_DIR}}
7075 env :
7176 PR_NO : ${{ inputs.pr_no }}
7277 run : |
@@ -75,31 +80,16 @@ jobs:
7580 git rev-parse origin/pr/${PR_NO}/merge
7681
7782 - name : Install apt packages
78- if : matrix.os == 'ubuntu-latest'
7983 run : |
8084 sudo apt-get update
8185 sudo apt-get install -y cmake libhwloc-dev libnuma-dev libtbb-dev
8286
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}}"
9787 - name : Configure build
9888 run : >
9989 cmake
90+ -S ${{env.UMF_DIR}}
10091 -B ${{env.BUILD_DIR}}
101- ${{matrix.extra_build_option}}
102- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
92+ -DCMAKE_BUILD_TYPE=Release
10393 -DUMF_BUILD_SHARED_LIBRARY=ON
10494 -DUMF_BUILD_BENCHMARKS=ON
10595 -DUMF_BUILD_BENCHMARKS_MT=ON
@@ -110,15 +100,13 @@ jobs:
110100 -DUMF_BUILD_CUDA_PROVIDER=ON
111101 -DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
112102 -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
103+ -DUMF_BUILD_EXAMPLES=OFF
113104
114- - name : Build UMF on Linux
115- if : matrix.os == 'ubuntu-latest'
105+ - name : Build UMF
116106 run : cmake --build ${{env.BUILD_DIR}} -j $(nproc)
117107
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-
108+ # We are going to clone Unified Runtime repository in order to run
109+ # the most up-to-date UR scripts for benchmark data visualisation
122110 - name : Checkout UR
123111 uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
124112 with :
@@ -127,19 +115,12 @@ jobs:
127115 fetch-depth : 1
128116 fetch-tags : false
129117
130- - name : Install pip packages
118+ - name : Install pip packages for benchmarking scripts from UR
131119 run : |
132120 pip install --force-reinstall -r ${{github.workspace}}/ur-repo/third_party/benchmark_requirements.txt
133121
134- - name : Install HWLOC
135- if : matrix.os == 'ubuntu-latest'
136- run : |
137- sudo apt-get update
138- sudo apt-get install libhwloc-dev
139-
140- - name : Run benchmarks
122+ - name : Run dedicated for UMF benchmarking scripts from UR
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
@@ -148,20 +129,6 @@ jobs:
148129 ${{ inputs.upload_report && '--output-html' || '' }}
149130 ${{ inputs.bench_script_params }}
150131
151- - name : Test output
152- run : >
153- echo 'out: ${{ steps.benchmarks.outcome }}'
154-
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-
165132 - name : Add comment to PR
166133 uses : actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
167134 if : ${{ always() && inputs.pr_no != 0 }}
0 commit comments