diff --git a/.github/workflows/sycl-containers.yaml b/.github/workflows/sycl-containers.yaml index 05e5591823f6b..ef8d8b7c021d1 100644 --- a/.github/workflows/sycl-containers.yaml +++ b/.github/workflows/sycl-containers.yaml @@ -56,6 +56,11 @@ jobs: file: sle15sp4_build tag: latest build_args: "" + - name: Build Ubuntu 24.04 Docker image with CUDA 13.1 + file: ubuntu2404_build + image_name: ubuntu2404_build_cuda13 + tag: latest + build_args: "base_image=nvidia/cuda:13.1.0-devel-ubuntu24.04" steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -69,8 +74,8 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} tags: | - ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }}-${{ github.sha }} - ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }} + ghcr.io/${{ github.repository }}/${{ matrix.image_name || matrix.file }}:${{ matrix.tag }}-${{ github.sha }} + ghcr.io/${{ github.repository }}/${{ matrix.image_name || matrix.file }}:${{ matrix.tag }} build-args: ${{ matrix.build_args }} # Then build "Intel Drivers" images that depend on previous images. diff --git a/.github/workflows/sycl-linux-precommit.yml b/.github/workflows/sycl-linux-precommit.yml index 68a6ce9f939ee..32b1d3c903e6f 100644 --- a/.github/workflows/sycl-linux-precommit.yml +++ b/.github/workflows/sycl-linux-precommit.yml @@ -266,6 +266,29 @@ jobs: binaries_artifact: 'e2e_bin_new_offload_model' testing_mode: 'run-only' + E2E-cuda13: + needs: [build] + if: ${{ !cancelled() && needs.build.outputs.build_conclusion == 'success' }} + permissions: + contents: write + packages: read + uses: ./.github/workflows/sycl-linux-run-tests.yml + with: + name: NVIDIA/CUDA 13.1 + runner: '["Linux", "cuda13"]' + image: ghcr.io/${{ github.repository }}/ubuntu2404_build_cuda13:latest + image_options: -u 1001 --gpus all --cap-add SYS_ADMIN + target_devices: cuda:gpu + extra_lit_opts: >- + --param sycl_build_targets=nvidia + --param cxx_flags="-Xsycl-target-backend=nvptx64-nvidia-cuda --cuda-gpu-arch=sm_80 -Wno-unused-command-line-argument" + repo_ref: ${{ github.sha }} + toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} + toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} + toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} + testing_mode: 'full' + ur_cuda_adapter_rebuild: 'true' + test-perf: needs: [build, detect_changes] diff --git a/.github/workflows/sycl-linux-run-tests.yml b/.github/workflows/sycl-linux-run-tests.yml index 35badd106674c..46689645f281d 100644 --- a/.github/workflows/sycl-linux-run-tests.yml +++ b/.github/workflows/sycl-linux-run-tests.yml @@ -92,6 +92,14 @@ on: default: 'false' required: False + ur_cuda_adapter_rebuild: + description: | + Rebuild the UR CUDA adapter with the CUDA toolkit from the image and + replace the one in the toolchain before running tests. + type: string + default: 'false' + required: False + benchmark_upload_results: description: | Set to true to upload results to git repository storing benchmarking @@ -320,6 +328,22 @@ jobs: rm -f ${{ inputs.toolchain_artifact_filename }} echo PATH=$PWD/toolchain/bin/:$PATH >> $GITHUB_ENV echo LD_LIBRARY_PATH=$PWD/toolchain/lib/:$LD_LIBRARY_PATH >> $GITHUB_ENV + - name: Checkout Unified Runtime + if: inputs.ur_cuda_adapter_rebuild == 'true' + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + path: ur-src + ref: ${{ inputs.repo_ref || github.sha }} + sparse-checkout: unified-runtime + - name: Rebuild UR CUDA adapter with the image's CUDA toolkit + if: inputs.ur_cuda_adapter_rebuild == 'true' + run: | + cmake -G Ninja -S ur-src/unified-runtime -B ur-build \ + -DCMAKE_BUILD_TYPE=Release -DUR_BUILD_ADAPTER_CUDA=ON \ + -DUR_ENABLE_TRACING=ON -DUR_BUILD_TESTS=OFF -DUR_BUILD_EXAMPLES=OFF + grep -E "^CUDAToolkit_VERSION" ur-build/CMakeCache.txt + cmake --build ur-build --target ur_adapter_cuda + cp -P ur-build/lib/libur_adapter_cuda.so* toolchain/lib/ - name: Download SYCL toolchain using release tag if: inputs.toolchain_release_tag != '' env: diff --git a/devops/containers/ubuntu2404_build.Dockerfile b/devops/containers/ubuntu2404_build.Dockerfile index 01e8643a9d82c..7c780f97b3db0 100644 --- a/devops/containers/ubuntu2404_build.Dockerfile +++ b/devops/containers/ubuntu2404_build.Dockerfile @@ -1,4 +1,5 @@ -FROM nvidia/cuda:12.6.3-devel-ubuntu24.04 +ARG base_image=nvidia/cuda:12.6.3-devel-ubuntu24.04 +FROM $base_image ENV DEBIAN_FRONTEND=noninteractive