diff --git a/.github/workflows/sycl-nightly.yml b/.github/workflows/sycl-nightly.yml index 06b8b50719dc7..73ace0226b3f0 100644 --- a/.github/workflows/sycl-nightly.yml +++ b/.github/workflows/sycl-nightly.yml @@ -323,7 +323,7 @@ jobs: # functionality, make sure Linux/Windows names follow the same pattern. toolchain_artifact_filename: sycl_windows.tar.gz # Disable the spirv-dis requirement as to not require SPIR-V Tools. - build_configure_extra_args: -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=off -DSYCL_BUILD_INFO="Nightly ${{ needs.get_date.outputs.date }}" + build_configure_extra_args: --cuda -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=off -DSYCL_BUILD_INFO="Nightly ${{ needs.get_date.outputs.date }}" build_target: all e2e-win: @@ -337,7 +337,7 @@ jobs: fail-fast: false matrix: enable_new_offload_model: ['False', 'True'] - gpu_type: ['gen12', 'arc', 'bmg'] + gpu_type: ['gen12', 'arc', 'bmg', 'cuda'] include: - gpu_type: 'gen12' name: Intel Gen12 GPU @@ -351,11 +351,16 @@ jobs: name: Intel Battlemage GPU runner: '["Windows", "bmg"]' + - gpu_type: 'cuda' + name: NVIDIA A100 GPU + runner: '["Windows", "cuda"]' + target_devices: cuda:gpu + uses: ./.github/workflows/sycl-windows-run-tests.yml with: name: ${{ matrix.name }} runner: ${{ matrix.runner }} - target_devices: level_zero:gpu + target_devices: ${{ matrix.target_devices || 'level_zero:gpu' }} toolchain_artifact_filename: ${{ needs.build-win.outputs.toolchain_artifact_filename }} extra_lit_opts: --param enable_new_offload_model=${{ matrix.enable_new_offload_model }} diff --git a/.github/workflows/sycl-windows-build.yml b/.github/workflows/sycl-windows-build.yml index da370d946fe8a..4b21bf63f2f39 100644 --- a/.github/workflows/sycl-windows-build.yml +++ b/.github/workflows/sycl-windows-build.yml @@ -105,10 +105,10 @@ jobs: outputs: build_conclusion: ${{ steps.build.conclusion }} env: - # Intel GPU architectures of the run-only E2E runners in + # AOT GPU architectures of the run-only E2E runners in # sycl-windows-precommit.yml. Keep in sync when adding or removing one. # Gen12 and older (gen12 runner) are not supported by Windows ocloc. - GPU_AOT_TARGET: intel_gpu_acm_g10,intel_gpu_bmg_g21 + GPU_AOT_TARGET: intel_gpu_acm_g10,intel_gpu_bmg_g21${{ (contains(inputs.build_configure_extra_args, '--cuda') && ',nvidia_gpu_sm_80') || '' }} steps: - name: Detect hung tests if: always() @@ -262,7 +262,7 @@ jobs: testing_mode: build-only target_devices: all binaries_artifact: ${{ inputs.e2e_binaries_artifact }} - extra_lit_opts: --param sycl_build_targets="spir" --param gpu_aot_target=${{ env.GPU_AOT_TARGET }} + extra_lit_opts: --param sycl_build_targets="spir${{ (contains(inputs.build_configure_extra_args, '--cuda') && ';nvidia') || '' }}" --param gpu_aot_target=${{ env.GPU_AOT_TARGET }} cxx: ${{ inputs.cxx }} - name: Build E2E tests with New Offload Model @@ -277,7 +277,7 @@ jobs: testing_mode: build-only target_devices: all binaries_artifact: ${{ inputs.e2e_binaries_new_offload_model_artifact }} - extra_lit_opts: --param sycl_build_targets="spir" --param enable_new_offload_model=True --param gpu_aot_target=${{ env.GPU_AOT_TARGET }} + extra_lit_opts: --param sycl_build_targets="spir${{ (contains(inputs.build_configure_extra_args, '--cuda') && ';nvidia') || '' }}" --param enable_new_offload_model=True --param gpu_aot_target=${{ env.GPU_AOT_TARGET }} cxx: ${{ inputs.cxx }} - name: Detect hung tests diff --git a/sycl/test-e2e/lit.cfg.py b/sycl/test-e2e/lit.cfg.py index 55aaa7d3c644c..eb7d9de0a158e 100644 --- a/sycl/test-e2e/lit.cfg.py +++ b/sycl/test-e2e/lit.cfg.py @@ -775,7 +775,9 @@ def remove_level_zero_suffix(devices): if dev not in available_devices[be] and not "arch-" in dev: lit_config.error("Unsupported device {}".format(d)) -if "cuda:gpu" in config.sycl_devices: +if "cuda:gpu" in config.sycl_devices or ( + config.test_mode == "build-only" and "target-nvidia" in config.sycl_build_targets +): if "CUDA_PATH" not in os.environ: if platform.system() == "Windows": cuda_root = r"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA" @@ -836,7 +838,7 @@ def remove_level_zero_suffix(devices): # Detect CUDA version and add version-specific features for conditional test execution cuda_version_json = os.path.join(os.environ["CUDA_PATH"], "version.json") - if os.path.exists(cuda_version_json): + if config.test_mode != "build-only" and os.path.exists(cuda_version_json): try: with open(cuda_version_json, "r") as f: version_data = json.load(f)