From 8e89bf3f6f498de77c54f657244e186cb6036d21 Mon Sep 17 00:00:00 2001 From: Patryk Kaminski <patryk.kaminski@intel.com> Date: Fri, 28 Mar 2025 15:01:07 +0100 Subject: [PATCH 1/4] Add sycl benchmark to Nightly benchmark workflow --- .github/workflows/nightly.yml | 16 +++++++++ .github/workflows/reusable_benchmarks.yml | 43 +++++++++++++++++++---- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index b841fa06d..09eb8fb99 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -345,6 +345,7 @@ jobs: os: "['ubuntu-22.04', 'ubuntu-24.04', 'ubuntu-24.10']" Benchmarks: + if: false uses: ./.github/workflows/reusable_benchmarks.yml permissions: contents: write @@ -353,5 +354,20 @@ jobs: pr_no: '0' bench_script_params: '--save Baseline_PVC' + Benchmarks-sycl: + uses: ./.github/workflows/reusable_benchmarks.yml + permissions: + contents: write + pull-requests: write + with: + pr_no: '0' + bench_script_params: >- + --adapter level_zero_v2 + --compute-runtime + --build-igc + --preset Minimal + --exit-on-failure + runner: 'L0_PERF_GPU' + SYCL: uses: ./.github/workflows/reusable_sycl.yml diff --git a/.github/workflows/reusable_benchmarks.yml b/.github/workflows/reusable_benchmarks.yml index af657d209..987c5be31 100644 --- a/.github/workflows/reusable_benchmarks.yml +++ b/.github/workflows/reusable_benchmarks.yml @@ -128,13 +128,14 @@ jobs: - name: Install benchmarking scripts deps run: | - python -m venv .venv + python3 -m venv .venv source .venv/bin/activate pip install -r ${{github.workspace}}/sc/devops/scripts/benchmarks/requirements.txt - name: Set core range and GPU mask run: | - # Compute the core range for the second NUMA node; first node is for SYCL/UR jobs. + # On the L0_PERF runner, compute the core range for the second NUMA node; + # first node is for SYCL/UR jobs. # Skip the first 4 cores - the kernel is likely to schedule more work on these. CORES=$(lscpu | awk ' /NUMA node1 CPU|On-line CPU/ {line=$0} @@ -147,20 +148,48 @@ jobs: echo "Selected core: $CORES" echo "CORES=$CORES" >> $GITHUB_ENV - ZE_AFFINITY_MASK=1 + ZE_AFFINITY_MASK=${{ inputs.runner == 'L0_PERF_GPU' && '0' || '1' }} echo "ZE_AFFINITY_MASK=$ZE_AFFINITY_MASK" >> $GITHUB_ENV - - name: Run UMF benchmarks + - name: Download latest sycl + run: | + llvm_tag=$(curl -s https://api.github.com/repos/intel/llvm/releases | awk -F'"' '/"tag_name": "nightly/ {print $4; exit}') + download_url="https://github.com/intel/llvm/releases/download/${llvm_tag}/sycl_linux.tar.gz" + echo "llvm tag: $llvm_tag" + wget --no-verbose $download_url -O sycl_linux.tar.gz + + - name: Unpack sycl + run: | + mkdir -p sycl + tar -xzf sycl_linux.tar.gz -C sycl --strip-components=1 + rm sycl_linux.tar.gz + echo "SYCL_DIR=${{ github.workspace }}/sycl" >> $GITHUB_ENV + echo "${{ github.workspace }}/sycl/bin" >> $GITHUB_PATH + echo "LD_LIBRARY_PATH=${{ github.workspace }}/sycl/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV + + - name: Remove UMF libraries from sycl + run: rm -f ${{ env.SYCL_DIR }}/lib/libumf* + + - name: Run sycl-ls + env: + LD_LIBRARY_PATH: ${{ env.SYCL_DIR }}/lib + SYCL_UR_TRACE: 1 + SYCL_UR_USE_LEVEL_ZERO_V2: 1 + run: ${{ env.SYCL_DIR }}/bin/sycl-ls + + - name: Run benchmarks id: benchmarks + env: + LD_LIBRARY_PATH: ${{ env.SYCL_DIR }}/lib + CPATH: ${{ env.SYCL_DIR }}/include run: > source .venv/bin/activate && taskset -c ${{ env.CORES }} ./sc/devops/scripts/benchmarks/main.py ~/bench_workdir_umf - --umf ${{env.BUILD_DIR}} - --timeout 3000 - --output-html remote --results-dir ${{ github.workspace }}/results-repo --output-markdown + ${{ (inputs.runner == 'L0_PERF') && format('--umf {0} --timeout 3000 --output-html remote', env.BUILD_DIR) || '' }} + ${{ (inputs.runner == 'L0_PERF_GPU') && format('--sycl {0} --ur {0} --timeout 18000', env.SYCL_DIR) || '' }} ${{ env.bench_params }} # In case it failed to add a comment, we can still print the results. From 04169681a0c0e65d9fce0421f4237aff1e30b032 Mon Sep 17 00:00:00 2001 From: Patryk Kaminski <patryk.kaminski@intel.com> Date: Fri, 28 Mar 2025 15:06:53 +0100 Subject: [PATCH 2/4] [DEBUG] Test nightly benchmark workflow --- .github/workflows/nightly.yml | 12 ++++++++++++ .github/workflows/pr_push.yml | 1 + 2 files changed, 13 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 09eb8fb99..141986a9e 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -6,6 +6,8 @@ on: workflow_dispatch: schedule: - cron: '0 4 * * *' + push: + pull_request: permissions: contents: read @@ -16,6 +18,7 @@ env: jobs: fuzz-test: + if: false name: Fuzz test strategy: fail-fast: false @@ -55,6 +58,7 @@ jobs: run: ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long" valgrind: + if: false name: Valgrind strategy: fail-fast: false @@ -93,6 +97,7 @@ jobs: run: ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}} Windows-generators: + if: false name: Windows ${{matrix.generator}} generator strategy: matrix: @@ -186,6 +191,7 @@ jobs: ${{ matrix.static_hwloc == 'ON' && '--hwloc' || '' }} icx: + if: false name: ICX env: 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" @@ -273,6 +279,7 @@ jobs: # Scenarios where UMF_LINK_HWLOC_STATICALLY is set to OFF and hwloc is not installed in the system # The hwloc library is fetched implicitly hwloc-fallback: + if: false name: "Fallback to static hwloc build" strategy: matrix: @@ -319,17 +326,20 @@ jobs: run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test L0: + if: false uses: ./.github/workflows/reusable_gpu.yml with: provider: "LEVEL_ZERO" runner: "L0" L0-BMG: + if: false uses: ./.github/workflows/reusable_gpu.yml with: provider: "LEVEL_ZERO" runner: "L0-BMG" os: "['Ubuntu']" CUDA: + if: false uses: ./.github/workflows/reusable_gpu.yml with: provider: "CUDA" @@ -337,6 +347,7 @@ jobs: # Full execution of QEMU tests QEMU: + if: false uses: ./.github/workflows/reusable_qemu.yml with: short_run: false @@ -370,4 +381,5 @@ jobs: runner: 'L0_PERF_GPU' SYCL: + if: false uses: ./.github/workflows/reusable_sycl.yml diff --git a/.github/workflows/pr_push.yml b/.github/workflows/pr_push.yml index 5d6155a37..192883b5c 100644 --- a/.github/workflows/pr_push.yml +++ b/.github/workflows/pr_push.yml @@ -17,6 +17,7 @@ permissions: jobs: CodeChecks: + if: false uses: ./.github/workflows/reusable_checks.yml FastBuild: name: Fast builds From bd16422ab960037579e634e6a022b26caeb7c471 Mon Sep 17 00:00:00 2001 From: Patryk Kaminski <patryk.kaminski@intel.com> Date: Tue, 1 Apr 2025 21:31:01 +0200 Subject: [PATCH 3/4] [DEBUG] Leave umf installed with sycl --- .github/workflows/reusable_benchmarks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/reusable_benchmarks.yml b/.github/workflows/reusable_benchmarks.yml index 987c5be31..dfd0e56f9 100644 --- a/.github/workflows/reusable_benchmarks.yml +++ b/.github/workflows/reusable_benchmarks.yml @@ -168,6 +168,7 @@ jobs: echo "LD_LIBRARY_PATH=${{ github.workspace }}/sycl/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - name: Remove UMF libraries from sycl + if: false run: rm -f ${{ env.SYCL_DIR }}/lib/libumf* - name: Run sycl-ls From f310c0100a2ddf4c9612cd473bcfc4c0923131ac Mon Sep 17 00:00:00 2001 From: Patryk Kaminski <patryk.kaminski@intel.com> Date: Wed, 16 Apr 2025 12:55:16 +0200 Subject: [PATCH 4/4] [CI] Commit results only when Benchmark ended with success --- .github/workflows/reusable_benchmarks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/reusable_benchmarks.yml b/.github/workflows/reusable_benchmarks.yml index dfd0e56f9..79b432285 100644 --- a/.github/workflows/reusable_benchmarks.yml +++ b/.github/workflows/reusable_benchmarks.yml @@ -226,6 +226,7 @@ jobs: - name: Commit data.json and results directory working-directory: results-repo + if: false run: | git config --global user.name "GitHub Actions Bot" git config --global user.email "actions@github.com"