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"