Repository: intel/llvm
Pull request #18162: [UR] Add dockers to UR workflow
Author: login: rbanka1
Created: 2025-04-23T16:11:35Z | Merged: 2025-04-29T15:07:33Z

- [x] wait for https://github.com/intel/llvm/pull/18080/


Diff:
diff --git a/.github/workflows/ur-build-hw.yml b/.github/workflows/ur-build-hw.yml
index f6af36cb5bf0f..7e1203c16feff 100644
--- a/.github/workflows/ur-build-hw.yml
+++ b/.github/workflows/ur-build-hw.yml
@@ -26,6 +26,14 @@ on:
         required: false
         type: string
         default: OFF
+      docker_image:
+        required: true
+        type: string
+        default: ""
+      image_options:
+        required: true
+        type: string
+        default: ""
   workflow_dispatch:
     inputs:
       adapter_name:
@@ -51,9 +59,16 @@ on:
         required: false
         type: string
         default: OFF
+      docker_image:
+        required: true
+        type: string
+        default: ""
+      image_options:
+        required: true
+        type: string
+        default: ""
 
-permissions:
-  contents: read
+permissions: read-all
 
 env:
   UR_LOG_CUDA: "level:error;flush:error"
@@ -83,6 +98,9 @@ jobs:
         compiler: [{c: gcc, cxx: g++}]
 
     runs-on: ${{inputs.runner_name}}
+    container:
+      image: ${{ inputs.docker_image }}
+      options: ${{ inputs.image_options }}
 
     steps:
     # TODO:
@@ -94,9 +112,15 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    # for some reason it's required to re-configure python for venv to work properly.
+    - name: Set up Python 3.12
+      if: ${{ inputs.docker_image == 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps' }}
+      uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
+      with:
+        python-version: '3.12'
+
     - name: Install UR python dependencies in venv
-      working-directory: ${{github.workspace}}/unified-runtime
+      working-directory: ./unified-runtime
       run: |
         python3 -m venv .venv
         . .venv/bin/activate
@@ -106,16 +130,25 @@ jobs:
 
     - name: Download DPC++
       run: |
-        wget -O ${{github.workspace}}/dpcpp_compiler.tar.gz https://github.com/intel/llvm/releases/download/nightly-2024-12-12/sycl_linux.tar.gz
-        mkdir dpcpp_compiler
-        tar -xvf ${{github.workspace}}/dpcpp_compiler.tar.gz -C dpcpp_compiler
+        wget -O dpcpp_compiler.tar.gz https://github.com/intel/llvm/releases/download/nightly-2024-12-12/sycl_linux.tar.gz
+        mkdir -p dpcpp_compiler
+        tar -xvf dpcpp_compiler.tar.gz -C dpcpp_compiler
+
+    - name: Install OpenCL
+      if: ${{ inputs.adapter_name == 'OPENCL' }}
+      run: |
+        wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
+        | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
+        echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
+        sudo apt-get update
+        sudo apt-get install -y intel-oneapi-runtime-opencl
 
     - name: Configure Unified Runtime project
-      working-directory: ${{github.workspace}}/unified-runtime
       # ">" is used to avoid adding "\" at the end of each line; this command is quite long
       run: >
         cmake
-        -B${{github.workspace}}/build
+        -S unified-runtime
+        -B build
         -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
         -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
         -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
@@ -127,32 +160,32 @@ jobs:
         ${{ matrix.adapter.other_name != '' && format('-DUR_BUILD_ADAPTER_{0}=ON', matrix.adapter.other_name) || '' }}
         -DUR_STATIC_LOADER=${{matrix.adapter.static_Loader}}
         -DUR_STATIC_ADAPTER_${{matrix.adapter.name}}=${{matrix.adapter.static_adapter}}
-        -DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-        -DUR_SYCL_LIBRARY_DIR=${{github.workspace}}/dpcpp_compiler/lib
-        -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
+        -DUR_DPCXX=./dpcpp_compiler/bin/clang++
+        -DUR_SYCL_LIBRARY_DIR=./dpcpp_compiler/lib
+        -DCMAKE_INSTALL_PREFIX=./install
         ${{ matrix.adapter.name == 'HIP' && '-DUR_CONFORMANCE_AMD_ARCH=gfx1030' || '' }}
         ${{ matrix.adapter.name == 'HIP' && '-DUR_HIP_PLATFORM=AMD' || '' }}
 
     - name: Build
       # This is so that device binaries can find the sycl runtime library
-      run: cmake --build ${{github.workspace}}/build -j $(nproc)
+      run: cmake --build build -j $(nproc)
 
     - name: Install
       # This is to check that install command does not fail
-      run: cmake --install ${{github.workspace}}/build
+      run: cmake --install build
 
     - name: Test adapter specific
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
+      run: ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
       # Don't run adapter specific tests when building multiple adapters
       if: ${{ matrix.adapter.other_name == '' }}
 
     - name: Test adapters
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: env UR_CTS_ADAPTER_PLATFORM="${{matrix.adapter.platform}}" ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "conformance" --timeout 600 -VV
+      run: env UR_CTS_ADAPTER_PLATFORM="${{matrix.adapter.platform}}" ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "conformance" --timeout 600 -VV
 
     - name: Get information about platform
       if: ${{ always() }}
-      run: ${{github.workspace}}/unified-runtime/.github/scripts/get_system_info.sh
+      run: ./unified-runtime/.github/scripts/get_system_info.sh
diff --git a/.github/workflows/ur-precommit.yml b/.github/workflows/ur-precommit.yml
index 09af48933f046..0d0824bbd334c 100644
--- a/.github/workflows/ur-precommit.yml
+++ b/.github/workflows/ur-precommit.yml
@@ -52,27 +52,54 @@ jobs:
     if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
     strategy:
       matrix:
-        # Extra native CPU jobs are here to force the loader to be used.
-        # UR will not use the loader if there is only one target.
-        adapter: [
-          {name: L0, runner: UR_L0},
-          {name: L0_V2, runner: UR_L0},
-          {name: L0, runner: UR_L0, static: ON},
-          {name: OPENCL, runner: UR_OPENCL, platform: "Intel(R) OpenCL"},
-          {name: CUDA, runner: UR_CUDA},
-          {name: HIP, runner: UR_HIP},
-          {name: NATIVE_CPU, runner: UR_NATIVE_CPU},
-          {name: OPENCL, runner: UR_OPENCL, other_adapter: NATIVE_CPU, platform: "OPENCL:Intel(R) OpenCL"},
-          {name: L0, runner: UR_L0, other_adapter: NATIVE_CPU},
-        ]
+      # Extra native CPU jobs are here to force the loader to be used.
+      # UR will not use the loader if there is only one target.
+        include:
+          - name: L0
+            runner: UR_L0
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0_V2
+            runner: UR_L0
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0
+            runner: UR_L0
+            static: ON
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0
+            runner: UR_L0
+            other_adapter: NATIVE_CPU
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: HIP
+            runner: UR_HIP
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --cap-add=SYS_ADMIN 
+          - name: CUDA
+            runner: UR_CUDA
+            image_options: -u 1001 --privileged --cap-add SYS_ADMIN --gpus all
+          - name: OPENCL
+            runner: UR_OPENCL
+            platform: "Intel(R) OpenCL"
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --privileged --cap-add SYS_ADMIN
+          - name: OPENCL
+            runner: UR_OPENCL
+            platform: "OPENCL:Intel(R) OpenCL"
+            other_adapter: NATIVE_CPU
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --privileged --cap-add SYS_ADMIN
+          - name: NATIVE_CPU
+            runner: UR_NATIVE_CPU
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
     uses: ./.github/workflows/ur-build-hw.yml
     with:
-      adapter_name: ${{ matrix.adapter.name }}
-      runner_name: ${{ matrix.adapter.runner }}
-      static_loader: ${{ matrix.adapter.static || 'OFF' }}
-      static_adapter: ${{ matrix.adapter.static || 'OFF' }}
-      platform: ${{ matrix.adapter.platform || '' }}
-      other_adapter_name: ${{ matrix.adapter.other_adapter || '' }}
+      adapter_name: ${{ matrix.name }}
+      runner_name: ${{ matrix.runner }}
+      static_loader: ${{ matrix.static || 'OFF' }}
+      static_adapter: ${{ matrix.static || 'OFF' }}
+      platform: ${{ matrix.platform || '' }}
+      other_adapter_name: ${{ matrix.other_adapter || '' }}
+      docker_image: ${{ matrix.docker_image || 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps'}}
+      image_options: ${{ matrix.image_options || '' }}
 
   macos:
     name: MacOS build only


Reviews:
user: login: lukaszstolarczuk
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T08:46:56Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:18:49Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:18:59Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:19:07Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:19:34Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:19:43Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:19:49Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:19:57Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T11:59:03Z
user: login: lukaszstolarczuk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T13:00:59Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T15:19:21Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T15:19:30Z
user: login: lukaszstolarczuk
body: beside minor issue, lgtm
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-28T07:53:30Z
user: login: RossBrunton
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-28T09:13:54Z
user: login: RossBrunton
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-28T09:16:45Z
user: login: sarnex
body: seems sane to me, thanks!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-28T15:22:54Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-29T08:16:12Z
user: login: rbanka1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-29T08:33:14Z
user: login: RossBrunton
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-29T09:30:48Z

Review comments:
diff_hunk: @@ -5,6 +5,9 @@ name: Unified Runtime Pre Commit
 
 # Note: the trigger is copy-pasted from sycl-linux-precommit.yml - probably to be fine-tuned.
 on:
+  push:
path: .github/workflows/ur-precommit.yml
user: login: lukaszstolarczuk
body: this to be removed
created_at: 2025-04-24T08:40:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -40,76 +43,109 @@ jobs:
     name: Detect Changes
     uses: ./.github/workflows/sycl-detect-changes.yml
 
-  source_checks:
-    name: Source Checks
-    needs: [detect_changes]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
-    uses: ./.github/workflows/ur-source-checks.yml
+  # source_checks:
+  #   name: Source Checks
+  #   needs: [detect_changes]
+  #   if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+  #   uses: ./.github/workflows/ur-source-checks.yml
 
   adapters:
     name: Adapters
-    needs: [detect_changes, source_checks]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
     strategy:
       matrix:
-        # Extra native CPU jobs are here to force the loader to be used.
-        # UR will not use the loader if there is only one target.
-        adapter: [
-          {name: L0, runner: UR_L0},
-          {name: L0_V2, runner: UR_L0},
-          {name: L0, runner: UR_L0, static: ON},
-          {name: OPENCL, runner: UR_OPENCL, platform: "Intel(R) OpenCL"},
-          {name: CUDA, runner: UR_CUDA},
-          {name: HIP, runner: UR_HIP},
-          {name: NATIVE_CPU, runner: UR_NATIVE_CPU},
-          {name: OPENCL, runner: UR_OPENCL, other_adapter: NATIVE_CPU, platform: "OPENCL:Intel(R) OpenCL"},
-          {name: L0, runner: UR_L0, other_adapter: NATIVE_CPU},
-        ]
+        include:
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0_V2
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+            static: ON
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+            other_adapter: NATIVE_CPU
+          - name: HIP
+            runner: UR_HIP
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --cap-add=SYS_ADMIN 
+          - name: CUDA
+            runner: UR_CUDA
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --privileged --cap-add SYS_ADMIN --gpus all
+          - name: OPENCL
+            runner: UR_OPENCL
+            platform: "Intel(R) OpenCL"
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --privileged --cap-add SYS_ADMIN
+          - name: OPENCL
+            runner: UR_OPENCL
+            platform: "OPENCL:Intel(R) OpenCL"
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --privileged --cap-add SYS_ADMIN
+            other_adapter: NATIVE_CPU
+          - name: NATIVE_CPU
+            runner: UR_NATIVE_CPU
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
     uses: ./.github/workflows/ur-build-hw.yml
     with:
-      adapter_name: ${{ matrix.adapter.name }}
-      runner_name: ${{ matrix.adapter.runner }}
-      static_loader: ${{ matrix.adapter.static || 'OFF' }}
-      static_adapter: ${{ matrix.adapter.static || 'OFF' }}
-      platform: ${{ matrix.adapter.platform || '' }}
-      other_adapter_name: ${{ matrix.adapter.other_adapter || '' }}
+      adapter_name: ${{ matrix.name }}
+      runner_name: ${{ matrix.runner }}
+      static_loader: ${{ matrix.static || 'OFF' }}
+      static_adapter: ${{ matrix.static || 'OFF' }}
+      platform: ${{ matrix.platform || '' }}
+      other_adapter_name: ${{ matrix.other_adapter || '' }}
+      docker_image: ${{ matrix.docker_image }}
+      image_options: ${{ matrix.image_options || '' }}
 
-  macos:
-    name: MacOS build only
-    needs: [detect_changes, source_checks]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
-    strategy:
-      matrix:
-        os: ['macos-13']
-    runs-on: ${{matrix.os}}
+  # macos:
+  #   name: MacOS build only
+  #   needs: [detect_changes, source_checks]
+  #   if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+  #   strategy:
+  #     matrix:
+  #       os: ['macos-13']
+  #   runs-on: ${{matrix.os}}
 
-    steps:
-    - name: Checkout LLVM
-      uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+  #   steps:
+  #   - name: Checkout LLVM
+  #     uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.0.0
-      with:
-        python-version: "3.10"
+  # - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.0.0
+  #   with:
+  #     python-version: "3.10"
 
-    - name: Install prerequisites
-      working-directory: ${{github.workspace}}/unified-runtime
-      run: |
-        python3 -m pip install -r third_party/requirements.txt
-        python3 -m pip install -r third_party/requirements_testing.txt
+  #   - name: Install prerequisites
+  #     working-directory: ${{github.workspace}}/unified-runtime
+  #     run: |
+  #       python3 -m pip install -r third_party/requirements.txt
+  #       python3 -m pip install -r third_party/requirements_testing.txt
 
-    - name: Install hwloc
-      run: brew install hwloc
+  #   - name: Install hwloc
+  #     run: brew install hwloc
 
-    - name: Configure Unified Runtime project
-      working-directory: ${{github.workspace}}/unified-runtime
-      run: >
-        cmake
-        -B${{github.workspace}}/build
-        -DUR_ENABLE_TRACING=ON
-        -DUR_DEVELOPER_MODE=ON
-        -DCMAKE_BUILD_TYPE=Release
-        -DUR_BUILD_TESTS=ON
-        -DUR_FORMAT_CPP_STYLE=ON
+  #   - name: Configure Unified Runtime project
+  #     working-directory: ${{github.workspace}}/unified-runtime
+  #     run: >
+  #       cmake
+  #       -B${{github.workspace}}/build
+  #       -DUR_ENABLE_TRACING=ON
+  #       -DUR_DEVELOPER_MODE=ON
+  #       -DCMAKE_BUILD_TYPE=Release
+  #       -DUR_BUILD_TESTS=ON
+  #       -DUR_FORMAT_CPP_STYLE=ON
 
-    - name: Build
-      run: cmake --build ${{github.workspace}}/build -j $(sysctl -n hw.logicalcpu)
+  #   - name: Build
+  #     run: cmake --build ${{github.workspace}}/build -j $(sysctl -n hw.logicalcpu)
path: .github/workflows/ur-precommit.yml
user: login: lukaszstolarczuk
body: missing EOF
created_at: 2025-04-24T08:41:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -127,32 +160,34 @@ jobs:
         ${{ matrix.adapter.other_name != '' && format('-DUR_BUILD_ADAPTER_{0}=ON', matrix.adapter.other_name) || '' }}
         -DUR_STATIC_LOADER=${{matrix.adapter.static_Loader}}
         -DUR_STATIC_ADAPTER_${{matrix.adapter.name}}=${{matrix.adapter.static_adapter}}
-        -DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-        -DUR_SYCL_LIBRARY_DIR=${{github.workspace}}/dpcpp_compiler/lib
-        -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
+        -DUR_DPCXX=./dpcpp_compiler/bin/clang++
+        -DUR_SYCL_LIBRARY_DIR=./dpcpp_compiler/lib
+        -DCMAKE_INSTALL_PREFIX=./install
         ${{ matrix.adapter.name == 'HIP' && '-DUR_CONFORMANCE_AMD_ARCH=gfx1030' || '' }}
         ${{ matrix.adapter.name == 'HIP' && '-DUR_HIP_PLATFORM=AMD' || '' }}
 
     - name: Build
       # This is so that device binaries can find the sycl runtime library
-      run: cmake --build ${{github.workspace}}/build -j $(nproc)
+      run: cmake --build build -j $(nproc)
 
     - name: Install
       # This is to check that install command does not fail
-      run: cmake --install ${{github.workspace}}/build
+      run: cmake --install build
 
     - name: Test adapter specific
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
+        ZE_DEBUG: 1
+      run: ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600
       # Don't run adapter specific tests when building multiple adapters
       if: ${{ matrix.adapter.other_name == '' }}
 
     - name: Test adapters
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: env UR_CTS_ADAPTER_PLATFORM="${{matrix.adapter.platform}}" ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "conformance" --timeout 600 -VV
+        ZE_DEBUG: 1
+      run: env UR_CTS_ADAPTER_PLATFORM="${{matrix.adapter.platform}}" ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "conformance" --timeout 600
 
     - name: Get information about platform
       if: ${{ always() }}
-      run: ${{github.workspace}}/unified-runtime/.github/scripts/get_system_info.sh
+      run: ./unified-runtime/.github/scripts/get_system_info.sh
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: missing EOF
created_at: 2025-04-24T08:41:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -127,32 +160,34 @@ jobs:
         ${{ matrix.adapter.other_name != '' && format('-DUR_BUILD_ADAPTER_{0}=ON', matrix.adapter.other_name) || '' }}
         -DUR_STATIC_LOADER=${{matrix.adapter.static_Loader}}
         -DUR_STATIC_ADAPTER_${{matrix.adapter.name}}=${{matrix.adapter.static_adapter}}
-        -DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-        -DUR_SYCL_LIBRARY_DIR=${{github.workspace}}/dpcpp_compiler/lib
-        -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
+        -DUR_DPCXX=./dpcpp_compiler/bin/clang++
+        -DUR_SYCL_LIBRARY_DIR=./dpcpp_compiler/lib
+        -DCMAKE_INSTALL_PREFIX=./install
         ${{ matrix.adapter.name == 'HIP' && '-DUR_CONFORMANCE_AMD_ARCH=gfx1030' || '' }}
         ${{ matrix.adapter.name == 'HIP' && '-DUR_HIP_PLATFORM=AMD' || '' }}
 
     - name: Build
       # This is so that device binaries can find the sycl runtime library
-      run: cmake --build ${{github.workspace}}/build -j $(nproc)
+      run: cmake --build build -j $(nproc)
 
     - name: Install
       # This is to check that install command does not fail
-      run: cmake --install ${{github.workspace}}/build
+      run: cmake --install build
 
     - name: Test adapter specific
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
+        ZE_DEBUG: 1
+      run: ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: removed `-VV` - is this on purpose?
created_at: 2025-04-24T08:42:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
+      if: ${{ inputs.docker_image == 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps' }}
+      uses: actions/setup-python@v5
+      with:
+        python-version: '3.10'
+
     - name: Install UR python dependencies in venv
-      working-directory: ${{github.workspace}}/unified-runtime
+      working-directory: ./unified-runtime
       run: |
         python3 -m venv .venv
         . .venv/bin/activate
-        echo "$PATH" >> $GITHUB_PATH
+        echo "${PWD}/.venv/bin" >> $GITHUB_PATH
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: when `activate` is called, I believe the `PATH` var is updated, this is why `echo "$PATH" >> $GITHUB_PATH` should work...
created_at: 2025-04-24T08:43:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: if you really need it, please add a comment why
created_at: 2025-04-24T08:44:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
+      if: ${{ inputs.docker_image == 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps' }}
+      uses: actions/setup-python@v5
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: pls use syntax as in other actions `...@<sha> # vXXX`
created_at: 2025-04-24T08:44:36Z
author_association: CONTRIBUTOR
diff_hunk: @@ -51,22 +59,30 @@ on:
         required: false
         type: string
         default: OFF
+      docker_image:
+        required: true
+        type: string
+        default: ""
+      image_options:
+        required: true
+        type: string
+        default: ""
 
-permissions:
-  contents: read
+permissions: read-all
 
 env:
   UR_LOG_CUDA: "level:error;flush:error"
   UR_LOG_HIP: "level:error;flush:error"
   UR_LOG_LEVEL_ZERO: "level:error;flush:error"
   UR_LOG_NATIVE_CPU: "level:error;flush:error"
   UR_LOG_OPENCL: "level:error;flush:error"
+  CURRENT_DIR: $(pwd)
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: to be removed...?
created_at: 2025-04-24T08:44:57Z
author_association: CONTRIBUTOR
diff_hunk: @@ -5,6 +5,9 @@ name: Unified Runtime Pre Commit
 
 # Note: the trigger is copy-pasted from sycl-linux-precommit.yml - probably to be fine-tuned.
 on:
+  push:
path: .github/workflows/ur-precommit.yml
user: login: rbanka1
body: done
created_at: 2025-04-24T15:18:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -40,76 +43,109 @@ jobs:
     name: Detect Changes
     uses: ./.github/workflows/sycl-detect-changes.yml
 
-  source_checks:
-    name: Source Checks
-    needs: [detect_changes]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
-    uses: ./.github/workflows/ur-source-checks.yml
+  # source_checks:
+  #   name: Source Checks
+  #   needs: [detect_changes]
+  #   if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+  #   uses: ./.github/workflows/ur-source-checks.yml
 
   adapters:
     name: Adapters
-    needs: [detect_changes, source_checks]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
     strategy:
       matrix:
-        # Extra native CPU jobs are here to force the loader to be used.
-        # UR will not use the loader if there is only one target.
-        adapter: [
-          {name: L0, runner: UR_L0},
-          {name: L0_V2, runner: UR_L0},
-          {name: L0, runner: UR_L0, static: ON},
-          {name: OPENCL, runner: UR_OPENCL, platform: "Intel(R) OpenCL"},
-          {name: CUDA, runner: UR_CUDA},
-          {name: HIP, runner: UR_HIP},
-          {name: NATIVE_CPU, runner: UR_NATIVE_CPU},
-          {name: OPENCL, runner: UR_OPENCL, other_adapter: NATIVE_CPU, platform: "OPENCL:Intel(R) OpenCL"},
-          {name: L0, runner: UR_L0, other_adapter: NATIVE_CPU},
-        ]
+        include:
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0_V2
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+            static: ON
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+            other_adapter: NATIVE_CPU
+          - name: HIP
+            runner: UR_HIP
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --cap-add=SYS_ADMIN 
+          - name: CUDA
+            runner: UR_CUDA
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --privileged --cap-add SYS_ADMIN --gpus all
+          - name: OPENCL
+            runner: UR_OPENCL
+            platform: "Intel(R) OpenCL"
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --privileged --cap-add SYS_ADMIN
+          - name: OPENCL
+            runner: UR_OPENCL
+            platform: "OPENCL:Intel(R) OpenCL"
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --device=/dev/kfd --privileged --cap-add SYS_ADMIN
+            other_adapter: NATIVE_CPU
+          - name: NATIVE_CPU
+            runner: UR_NATIVE_CPU
+            docker_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest"
+            image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
     uses: ./.github/workflows/ur-build-hw.yml
     with:
-      adapter_name: ${{ matrix.adapter.name }}
-      runner_name: ${{ matrix.adapter.runner }}
-      static_loader: ${{ matrix.adapter.static || 'OFF' }}
-      static_adapter: ${{ matrix.adapter.static || 'OFF' }}
-      platform: ${{ matrix.adapter.platform || '' }}
-      other_adapter_name: ${{ matrix.adapter.other_adapter || '' }}
+      adapter_name: ${{ matrix.name }}
+      runner_name: ${{ matrix.runner }}
+      static_loader: ${{ matrix.static || 'OFF' }}
+      static_adapter: ${{ matrix.static || 'OFF' }}
+      platform: ${{ matrix.platform || '' }}
+      other_adapter_name: ${{ matrix.other_adapter || '' }}
+      docker_image: ${{ matrix.docker_image }}
+      image_options: ${{ matrix.image_options || '' }}
 
-  macos:
-    name: MacOS build only
-    needs: [detect_changes, source_checks]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
-    strategy:
-      matrix:
-        os: ['macos-13']
-    runs-on: ${{matrix.os}}
+  # macos:
+  #   name: MacOS build only
+  #   needs: [detect_changes, source_checks]
+  #   if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+  #   strategy:
+  #     matrix:
+  #       os: ['macos-13']
+  #   runs-on: ${{matrix.os}}
 
-    steps:
-    - name: Checkout LLVM
-      uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+  #   steps:
+  #   - name: Checkout LLVM
+  #     uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.0.0
-      with:
-        python-version: "3.10"
+  # - uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.0.0
+  #   with:
+  #     python-version: "3.10"
 
-    - name: Install prerequisites
-      working-directory: ${{github.workspace}}/unified-runtime
-      run: |
-        python3 -m pip install -r third_party/requirements.txt
-        python3 -m pip install -r third_party/requirements_testing.txt
+  #   - name: Install prerequisites
+  #     working-directory: ${{github.workspace}}/unified-runtime
+  #     run: |
+  #       python3 -m pip install -r third_party/requirements.txt
+  #       python3 -m pip install -r third_party/requirements_testing.txt
 
-    - name: Install hwloc
-      run: brew install hwloc
+  #   - name: Install hwloc
+  #     run: brew install hwloc
 
-    - name: Configure Unified Runtime project
-      working-directory: ${{github.workspace}}/unified-runtime
-      run: >
-        cmake
-        -B${{github.workspace}}/build
-        -DUR_ENABLE_TRACING=ON
-        -DUR_DEVELOPER_MODE=ON
-        -DCMAKE_BUILD_TYPE=Release
-        -DUR_BUILD_TESTS=ON
-        -DUR_FORMAT_CPP_STYLE=ON
+  #   - name: Configure Unified Runtime project
+  #     working-directory: ${{github.workspace}}/unified-runtime
+  #     run: >
+  #       cmake
+  #       -B${{github.workspace}}/build
+  #       -DUR_ENABLE_TRACING=ON
+  #       -DUR_DEVELOPER_MODE=ON
+  #       -DCMAKE_BUILD_TYPE=Release
+  #       -DUR_BUILD_TESTS=ON
+  #       -DUR_FORMAT_CPP_STYLE=ON
 
-    - name: Build
-      run: cmake --build ${{github.workspace}}/build -j $(sysctl -n hw.logicalcpu)
+  #   - name: Build
+  #     run: cmake --build ${{github.workspace}}/build -j $(sysctl -n hw.logicalcpu)
path: .github/workflows/ur-precommit.yml
user: login: rbanka1
body: done
created_at: 2025-04-24T15:18:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -127,32 +160,34 @@ jobs:
         ${{ matrix.adapter.other_name != '' && format('-DUR_BUILD_ADAPTER_{0}=ON', matrix.adapter.other_name) || '' }}
         -DUR_STATIC_LOADER=${{matrix.adapter.static_Loader}}
         -DUR_STATIC_ADAPTER_${{matrix.adapter.name}}=${{matrix.adapter.static_adapter}}
-        -DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-        -DUR_SYCL_LIBRARY_DIR=${{github.workspace}}/dpcpp_compiler/lib
-        -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
+        -DUR_DPCXX=./dpcpp_compiler/bin/clang++
+        -DUR_SYCL_LIBRARY_DIR=./dpcpp_compiler/lib
+        -DCMAKE_INSTALL_PREFIX=./install
         ${{ matrix.adapter.name == 'HIP' && '-DUR_CONFORMANCE_AMD_ARCH=gfx1030' || '' }}
         ${{ matrix.adapter.name == 'HIP' && '-DUR_HIP_PLATFORM=AMD' || '' }}
 
     - name: Build
       # This is so that device binaries can find the sycl runtime library
-      run: cmake --build ${{github.workspace}}/build -j $(nproc)
+      run: cmake --build build -j $(nproc)
 
     - name: Install
       # This is to check that install command does not fail
-      run: cmake --install ${{github.workspace}}/build
+      run: cmake --install build
 
     - name: Test adapter specific
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
+        ZE_DEBUG: 1
+      run: ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600
       # Don't run adapter specific tests when building multiple adapters
       if: ${{ matrix.adapter.other_name == '' }}
 
     - name: Test adapters
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: env UR_CTS_ADAPTER_PLATFORM="${{matrix.adapter.platform}}" ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "conformance" --timeout 600 -VV
+        ZE_DEBUG: 1
+      run: env UR_CTS_ADAPTER_PLATFORM="${{matrix.adapter.platform}}" ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "conformance" --timeout 600
 
     - name: Get information about platform
       if: ${{ always() }}
-      run: ${{github.workspace}}/unified-runtime/.github/scripts/get_system_info.sh
+      run: ./unified-runtime/.github/scripts/get_system_info.sh
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: done
created_at: 2025-04-24T15:19:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -127,32 +160,34 @@ jobs:
         ${{ matrix.adapter.other_name != '' && format('-DUR_BUILD_ADAPTER_{0}=ON', matrix.adapter.other_name) || '' }}
         -DUR_STATIC_LOADER=${{matrix.adapter.static_Loader}}
         -DUR_STATIC_ADAPTER_${{matrix.adapter.name}}=${{matrix.adapter.static_adapter}}
-        -DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-        -DUR_SYCL_LIBRARY_DIR=${{github.workspace}}/dpcpp_compiler/lib
-        -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
+        -DUR_DPCXX=./dpcpp_compiler/bin/clang++
+        -DUR_SYCL_LIBRARY_DIR=./dpcpp_compiler/lib
+        -DCMAKE_INSTALL_PREFIX=./install
         ${{ matrix.adapter.name == 'HIP' && '-DUR_CONFORMANCE_AMD_ARCH=gfx1030' || '' }}
         ${{ matrix.adapter.name == 'HIP' && '-DUR_HIP_PLATFORM=AMD' || '' }}
 
     - name: Build
       # This is so that device binaries can find the sycl runtime library
-      run: cmake --build ${{github.workspace}}/build -j $(nproc)
+      run: cmake --build build -j $(nproc)
 
     - name: Install
       # This is to check that install command does not fail
-      run: cmake --install ${{github.workspace}}/build
+      run: cmake --install build
 
     - name: Test adapter specific
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
+        ZE_DEBUG: 1
+      run: ctest -C ${{matrix.build_type}} --test-dir build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: restored
created_at: 2025-04-24T15:19:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: done
created_at: 2025-04-24T15:19:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
+      if: ${{ inputs.docker_image == 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps' }}
+      uses: actions/setup-python@v5
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: done
created_at: 2025-04-24T15:19:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -51,22 +59,30 @@ on:
         required: false
         type: string
         default: OFF
+      docker_image:
+        required: true
+        type: string
+        default: ""
+      image_options:
+        required: true
+        type: string
+        default: ""
 
-permissions:
-  contents: read
+permissions: read-all
 
 env:
   UR_LOG_CUDA: "level:error;flush:error"
   UR_LOG_HIP: "level:error;flush:error"
   UR_LOG_LEVEL_ZERO: "level:error;flush:error"
   UR_LOG_NATIVE_CPU: "level:error;flush:error"
   UR_LOG_OPENCL: "level:error;flush:error"
+  CURRENT_DIR: $(pwd)
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: removed
created_at: 2025-04-24T15:19:57Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
+      if: ${{ inputs.docker_image == 'ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps' }}
+      uses: actions/setup-python@v5
+      with:
+        python-version: '3.10'
+
     - name: Install UR python dependencies in venv
-      working-directory: ${{github.workspace}}/unified-runtime
+      working-directory: ./unified-runtime
       run: |
         python3 -m venv .venv
         . .venv/bin/activate
-        echo "$PATH" >> $GITHUB_PATH
+        echo "${PWD}/.venv/bin" >> $GITHUB_PATH
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: done
created_at: 2025-04-25T11:59:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: the line is too long, either break it or just shorten the comment 😉 
created_at: 2025-04-25T12:51:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
path: .github/workflows/ur-build-hw.yml
user: login: lukaszstolarczuk
body: also, is it a true statement? I can see in the logs, that python3-venv is installed in ubu24 image
created_at: 2025-04-25T12:54:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -40,76 +40,109 @@ jobs:
     name: Detect Changes
     uses: ./.github/workflows/sycl-detect-changes.yml
 
-  source_checks:
-    name: Source Checks
-    needs: [detect_changes]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
-    uses: ./.github/workflows/ur-source-checks.yml
+  # source_checks:
+  #   name: Source Checks
+  #   needs: [detect_changes]
+  #   if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+  #   uses: ./.github/workflows/ur-source-checks.yml
 
   adapters:
     name: Adapters
-    needs: [detect_changes, source_checks]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
     strategy:
       matrix:
-        # Extra native CPU jobs are here to force the loader to be used.
-        # UR will not use the loader if there is only one target.
-        adapter: [
-          {name: L0, runner: UR_L0},
-          {name: L0_V2, runner: UR_L0},
-          {name: L0, runner: UR_L0, static: ON},
-          {name: OPENCL, runner: UR_OPENCL, platform: "Intel(R) OpenCL"},
-          {name: CUDA, runner: UR_CUDA},
-          {name: HIP, runner: UR_HIP},
-          {name: NATIVE_CPU, runner: UR_NATIVE_CPU},
-          {name: OPENCL, runner: UR_OPENCL, other_adapter: NATIVE_CPU, platform: "OPENCL:Intel(R) OpenCL"},
-          {name: L0, runner: UR_L0, other_adapter: NATIVE_CPU},
-        ]
+        include:
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0_V2
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+            static: ON
path: .github/workflows/ur-precommit.yml
user: login: lukaszstolarczuk
body: pls move UR-related options above the docker options (in this case `static`, below `other_adapter`, etc...) - docker_image  and image_options could be the last 2
created_at: 2025-04-25T12:57:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,28 +113,42 @@ jobs:
     - name: Checkout LLVM
       uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
 
-    # Latest distros do not allow global pip installation
+    - name: Set up Python 3.10
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: done
created_at: 2025-04-25T15:19:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -40,76 +40,109 @@ jobs:
     name: Detect Changes
     uses: ./.github/workflows/sycl-detect-changes.yml
 
-  source_checks:
-    name: Source Checks
-    needs: [detect_changes]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
-    uses: ./.github/workflows/ur-source-checks.yml
+  # source_checks:
+  #   name: Source Checks
+  #   needs: [detect_changes]
+  #   if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+  #   uses: ./.github/workflows/ur-source-checks.yml
 
   adapters:
     name: Adapters
-    needs: [detect_changes, source_checks]
-    if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
+    # needs: [detect_changes, source_checks]
+    # if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
     strategy:
       matrix:
-        # Extra native CPU jobs are here to force the loader to be used.
-        # UR will not use the loader if there is only one target.
-        adapter: [
-          {name: L0, runner: UR_L0},
-          {name: L0_V2, runner: UR_L0},
-          {name: L0, runner: UR_L0, static: ON},
-          {name: OPENCL, runner: UR_OPENCL, platform: "Intel(R) OpenCL"},
-          {name: CUDA, runner: UR_CUDA},
-          {name: HIP, runner: UR_HIP},
-          {name: NATIVE_CPU, runner: UR_NATIVE_CPU},
-          {name: OPENCL, runner: UR_OPENCL, other_adapter: NATIVE_CPU, platform: "OPENCL:Intel(R) OpenCL"},
-          {name: L0, runner: UR_L0, other_adapter: NATIVE_CPU},
-        ]
+        include:
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0_V2
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+          - name: L0
+            runner: UR_L0
+            docker_image: "ghcr.io/intel/llvm/ubuntu2404_intel_drivers:alldeps"
+            image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
+            static: ON
path: .github/workflows/ur-precommit.yml
user: login: rbanka1
body: done
created_at: 2025-04-25T15:19:30Z
author_association: CONTRIBUTOR
diff_hunk: @@ -52,27 +52,58 @@ jobs:
     if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
     strategy:
       matrix:
-        # Extra native CPU jobs are here to force the loader to be used.
-        # UR will not use the loader if there is only one target.
-        adapter: [
-          {name: L0, runner: UR_L0},
-          {name: L0_V2, runner: UR_L0},
-          {name: L0, runner: UR_L0, static: ON},
-          {name: OPENCL, runner: UR_OPENCL, platform: "Intel(R) OpenCL"},
-          {name: CUDA, runner: UR_CUDA},
-          {name: HIP, runner: UR_HIP},
-          {name: NATIVE_CPU, runner: UR_NATIVE_CPU},
-          {name: OPENCL, runner: UR_OPENCL, other_adapter: NATIVE_CPU, platform: "OPENCL:Intel(R) OpenCL"},
-          {name: L0, runner: UR_L0, other_adapter: NATIVE_CPU},
-        ]
+        include:
path: .github/workflows/ur-precommit.yml
user: login: lukaszstolarczuk
body: you missed the original comment - "Extra native CPU..." - pls add it back
created_at: 2025-04-28T07:51:40Z
author_association: CONTRIBUTOR
diff_hunk: @@ -127,32 +160,34 @@ jobs:
         ${{ matrix.adapter.other_name != '' && format('-DUR_BUILD_ADAPTER_{0}=ON', matrix.adapter.other_name) || '' }}
         -DUR_STATIC_LOADER=${{matrix.adapter.static_Loader}}
         -DUR_STATIC_ADAPTER_${{matrix.adapter.name}}=${{matrix.adapter.static_adapter}}
-        -DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-        -DUR_SYCL_LIBRARY_DIR=${{github.workspace}}/dpcpp_compiler/lib
-        -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
+        -DUR_DPCXX=./dpcpp_compiler/bin/clang++
+        -DUR_SYCL_LIBRARY_DIR=./dpcpp_compiler/lib
+        -DCMAKE_INSTALL_PREFIX=./install
         ${{ matrix.adapter.name == 'HIP' && '-DUR_CONFORMANCE_AMD_ARCH=gfx1030' || '' }}
         ${{ matrix.adapter.name == 'HIP' && '-DUR_HIP_PLATFORM=AMD' || '' }}
 
     - name: Build
       # This is so that device binaries can find the sycl runtime library
-      run: cmake --build ${{github.workspace}}/build -j $(nproc)
+      run: cmake --build build -j $(nproc)
 
     - name: Install
       # This is to check that install command does not fail
-      run: cmake --install ${{github.workspace}}/build
+      run: cmake --install build
 
     - name: Test adapter specific
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
+        ZE_DEBUG: 1
path: .github/workflows/ur-build-hw.yml
user: login: RossBrunton
body: https://github.com/intel/llvm/pull/17836

Probably a bad merge resolution, but this was removed in an earlier patch.
created_at: 2025-04-28T09:13:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -26,6 +26,14 @@ on:
         required: false
         type: string
         default: OFF
+      docker_image:
+        required: true
+        type: string
+        default: ""
path: .github/workflows/ur-build-hw.yml
user: login: RossBrunton
body: Since all but one of the jobs use `ghcr.io/intel/llvm/ubuntu2204_build:latest`, is it worth just having that be the default rather than specifying it several times?
created_at: 2025-04-28T09:16:45Z
author_association: CONTRIBUTOR
diff_hunk: @@ -52,27 +52,58 @@ jobs:
     if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
     strategy:
       matrix:
-        # Extra native CPU jobs are here to force the loader to be used.
-        # UR will not use the loader if there is only one target.
-        adapter: [
-          {name: L0, runner: UR_L0},
-          {name: L0_V2, runner: UR_L0},
-          {name: L0, runner: UR_L0, static: ON},
-          {name: OPENCL, runner: UR_OPENCL, platform: "Intel(R) OpenCL"},
-          {name: CUDA, runner: UR_CUDA},
-          {name: HIP, runner: UR_HIP},
-          {name: NATIVE_CPU, runner: UR_NATIVE_CPU},
-          {name: OPENCL, runner: UR_OPENCL, other_adapter: NATIVE_CPU, platform: "OPENCL:Intel(R) OpenCL"},
-          {name: L0, runner: UR_L0, other_adapter: NATIVE_CPU},
-        ]
+        include:
path: .github/workflows/ur-precommit.yml
user: login: rbanka1
body: done
created_at: 2025-04-29T08:15:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -26,6 +26,14 @@ on:
         required: false
         type: string
         default: OFF
+      docker_image:
+        required: true
+        type: string
+        default: ""
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: done, I defined it in ur-precommit.yml below strategy matrix 
created_at: 2025-04-29T08:16:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -127,32 +160,34 @@ jobs:
         ${{ matrix.adapter.other_name != '' && format('-DUR_BUILD_ADAPTER_{0}=ON', matrix.adapter.other_name) || '' }}
         -DUR_STATIC_LOADER=${{matrix.adapter.static_Loader}}
         -DUR_STATIC_ADAPTER_${{matrix.adapter.name}}=${{matrix.adapter.static_adapter}}
-        -DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-        -DUR_SYCL_LIBRARY_DIR=${{github.workspace}}/dpcpp_compiler/lib
-        -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
+        -DUR_DPCXX=./dpcpp_compiler/bin/clang++
+        -DUR_SYCL_LIBRARY_DIR=./dpcpp_compiler/lib
+        -DCMAKE_INSTALL_PREFIX=./install
         ${{ matrix.adapter.name == 'HIP' && '-DUR_CONFORMANCE_AMD_ARCH=gfx1030' || '' }}
         ${{ matrix.adapter.name == 'HIP' && '-DUR_HIP_PLATFORM=AMD' || '' }}
 
     - name: Build
       # This is so that device binaries can find the sycl runtime library
-      run: cmake --build ${{github.workspace}}/build -j $(nproc)
+      run: cmake --build build -j $(nproc)
 
     - name: Install
       # This is to check that install command does not fail
-      run: cmake --install ${{github.workspace}}/build
+      run: cmake --install build
 
     - name: Test adapter specific
       env:
         ZE_ENABLE_LOADER_DEBUG_TRACE: 1
-      run: ctest -C ${{matrix.build_type}} --test-dir ${{github.workspace}}/build --output-on-failure -L "adapter-specific" -E "memcheck" --timeout 600 -VV
+        ZE_DEBUG: 1
path: .github/workflows/ur-build-hw.yml
user: login: rbanka1
body: done
created_at: 2025-04-29T08:33:14Z
author_association: CONTRIBUTOR

PR comments:
user: login: sarnex
created_at: 2025-04-23T17:26:33Z
body: Is this ready for review?
author_association: CONTRIBUTOR
user: login: lukaszstolarczuk
created_at: 2025-04-24T08:46:44Z
body: > Is this ready for review?

I think this is the "almost ready" version 😉 
author_association: CONTRIBUTOR
user: login: rbanka1
created_at: 2025-04-25T16:43:48Z
body: now it is ready for review 
author_association: CONTRIBUTOR
user: login: lukaszstolarczuk
created_at: 2025-04-28T07:49:47Z
body: @intel/dpcpp-devops-reviewers and maybe @intel/unified-runtime-reviewers pls take a look
author_association: CONTRIBUTOR
user: login: lukaszstolarczuk
created_at: 2025-04-29T13:25:15Z
body: @intel/llvm-gatekeepers - I believe this is ready for merge.
author_association: CONTRIBUTOR