@@ -113,17 +113,19 @@ runs:
113113 # modified output the entire sycl build dir as an artifact, in which the
114114 # intermediate files required can be stitched together from the build files.
115115 # However, this is not exactly "clean" or "fun to maintain"...
116- - name : Build Unified Runtime
116+ - name : Build LLVM
117117 shell : bash
118118 run : |
119- # Build Unified Runtime
119+ echo "::group::checkout_llvm"
120120 # Sparse-checkout UR at build ref:
121121 git clone --depth 1 --no-checkout https://github.com/intel/llvm ur
122122 cd ur
123123 git sparse-checkout init
124124 git sparse-checkout set unified-runtime
125125 git fetch origin ${{ inputs.build_ref }}
126126 git checkout FETCH_HEAD
127+ echo "::endgroup::"
128+ echo "::group::configure_llvm"
127129
128130 # Configure UR
129131 mkdir build install
@@ -135,39 +137,50 @@ runs:
135137 -DUR_BUILD_ADAPTER_L0=ON \
136138 -DUR_BUILD_ADAPTER_L0_V2=ON
137139
138- # Build and install UR
140+ echo "::endgroup::"
141+ echo "::group::build_and_install_llvm"
142+
139143 cmake --build build -j "$(nproc)"
140144 cmake --install build
141145
142146 cd -
147+
148+ echo "::endgroup::"
143149 # Install level zero v1.25.2
144150 # This is to have the latest level zero required by Compute Benchmarks
145151 # Remove this w/a once the sycl nightly images are updated to have level zero v1.25.2
146152 - name : Install level zero v1.25.2
147153 shell : bash
148154 run : |
149- # Install level zero v1.25.2
155+ echo "::group::checkout_level_zero"
150156 # Checkout Level Zero at build ref:
151157 wget https://github.com/oneapi-src/level-zero/archive/refs/tags/v1.25.2.tar.gz -O level-zero-v1.25.2.tar.gz
152158 tar -xvf level-zero-v1.25.2.tar.gz
153159 cd level-zero-1.25.2
154160
155- # Configure Level Zero
161+ echo "::endgroup::"
162+ echo "::group::configure_level_zero"
163+
156164 cmake -DCMAKE_BUILD_TYPE=Release \
157165 -Bbuild
158166
159- # Build and install Level Zero
167+ echo "::endgroup::"
168+ echo "::group::build_and_install_level_zero"
169+
160170 cmake --build build -j "$(nproc)"
161171 sudo cmake --install build
162172
163173 cd -
174+ echo "::endgroup::"
164175 # Linux tools installed during docker creation may not match the self-hosted
165176 # kernel version, so we need to install the correct version here.
166177 - name : Install perf in version matching the host kernel
167178 shell : bash
168179 run : |
180+ echo "::group::install_linux_tools"
169181 sudo apt-get update
170182 sudo apt-get install -y linux-tools-$(uname -r)
183+ echo "::endgroup::"
171184 - name : Set env var for results branch
172185 shell : bash
173186 run : |
@@ -188,18 +201,19 @@ runs:
188201 SAVE_PREFIX : ${{ inputs.save_name }}
189202 shell : bash
190203 run : |
191- # Build and run benchmarks
192204 # TODO generate summary + display helpful message here
193205 export CMPLR_ROOT=./toolchain
194- echo "-----"
206+ echo "::group::install_python_deps"
207+ echo "Installing python dependencies..."
195208 # Using --break-system-packages because:
196209 # - venv is not installed
197210 # - unable to install anything via pip, as python packages in the docker
198211 # container are managed by apt
199212 # - apt is unable to install anything due to unresolved dpkg dependencies,
200213 # as a result of how the sycl nightly images are created
201214 pip install --user --break-system-packages -r ./devops/scripts/benchmarks/requirements.txt
202- echo "-----"
215+ echo "::endgroup::"
216+ echo "::group::sycl_ls"
203217
204218 # By default, the benchmark scripts forceload level_zero
205219 FORCELOAD_ADAPTER="${ONEAPI_DEVICE_SELECTOR%%:*}"
@@ -235,7 +249,8 @@ runs:
235249 export COMPUTE_RUNTIME_TAG_CACHE="$(cat ./devops/dependencies.json | jq -r .linux.compute_runtime.github_tag)"
236250
237251 sycl-ls
238- echo "-----"
252+ echo "::endgroup::"
253+ echo "::group::run_benchmarks"
239254
240255 WORKDIR="$(realpath ./llvm_test_workdir)"
241256 if [ -n "$WORKDIR" ] && [ -d "$WORKDIR" ] && [[ "$WORKDIR" == *llvm_test_workdir* ]]; then rm -rf "$WORKDIR" ; fi
@@ -254,7 +269,8 @@ runs:
254269 ${{ inputs.exit_on_failure == 'true' && '--exit-on-failure --iterations 1' || '' }}
255270 # TODO: add back: "--flamegraph inclusive" once works properly
256271
257- echo "-----"
272+ echo "::endgroup::"
273+ echo "::group::compare_results"
258274 python3 ./devops/scripts/benchmarks/compare.py to_hist \
259275 --avg-type EWMA \
260276 --cutoff "$(date -u -d '7 days ago' +'%Y%m%d_%H%M%S')" \
@@ -267,7 +283,9 @@ runs:
267283 --produce-github-summary \
268284 ${{ inputs.dry_run == 'true' && '--dry-run' || '' }} \
269285
270- echo "-----"
286+ echo "::endgroup::"
287+
288+ LLVM_BENCHMARKS_UNIT_TESTING=1 COMPUTE_BENCHMARKS_BUILD_PATH=$WORKDIR/compute-benchmarks-build python3 ./devops/scripts/benchmarks/tests/test_integration.py
271289
272290 - name : Cache changes and upload github summary
273291 if : always()
0 commit comments