From dd9e999771ab2d11939632617bc49b02b526afa2 Mon Sep 17 00:00:00 2001 From: Pavel V Chupin Date: Thu, 17 Nov 2022 17:31:57 -0800 Subject: [PATCH 01/28] [CI] Enable llvm-test-suite on Windows post-commit testing. --- .github/workflows/sycl_gen_test_matrix.yml | 14 ++-- .github/workflows/sycl_post_commit.yml | 10 +-- .github/workflows/sycl_precommit.yml | 2 +- .../workflows/sycl_windows_build_and_test.yml | 81 ++++++++++++++++++- devops/actions/llvm_test_suite_win/action.yml | 49 +++++++++++ devops/scripts/generate_test_matrix.js | 34 ++++++-- devops/test_configs.json | 10 +++ 7 files changed, 177 insertions(+), 23 deletions(-) create mode 100644 devops/actions/llvm_test_suite_win/action.yml diff --git a/.github/workflows/sycl_gen_test_matrix.yml b/.github/workflows/sycl_gen_test_matrix.yml index 2e7773c41763e..34b5562da4d94 100644 --- a/.github/workflows/sycl_gen_test_matrix.yml +++ b/.github/workflows/sycl_gen_test_matrix.yml @@ -34,21 +34,25 @@ on: required: false default: ${{ github.sha }} outputs: - lts_matrix: - description: "Generated Matrix" - value: ${{ jobs.test_matrix.outputs.lts_matrix }} + lts_lx_matrix: + description: "Generated Linux LTS Matrix" + value: ${{ jobs.test_matrix.outputs.lts_lx_matrix }} + lts_wn_matrix: + description: "Generated Windows LTS Matrix" + value: ${{ jobs.test_matrix.outputs.lts_wn_matrix }} cts_matrix: description: "Generated SYCL CTS Matrix" value: ${{ jobs.test_matrix.outputs.cts_matrix }} lts_aws_matrix: - description: "Generated Matrix AWS subset" + description: "Generated Linux AWS Matrix" value: ${{ jobs.test_matrix.outputs.lts_aws_matrix }} jobs: test_matrix: name: Generate Test Matrix runs-on: ubuntu-20.04 outputs: - lts_matrix: ${{ steps.work.outputs.lts_matrix }} + lts_lx_matrix: ${{ steps.work.outputs.lts_lx_matrix }} + lts_wn_matrix: ${{ steps.work.outputs.lts_wn_matrix }} cts_matrix: ${{ steps.work.outputs.cts_matrix }} lts_aws_matrix: ${{ steps.work.outputs.lts_aws_matrix }} steps: diff --git a/.github/workflows/sycl_post_commit.yml b/.github/workflows/sycl_post_commit.yml index ba3ec13752082..6e8110e813e1c 100644 --- a/.github/workflows/sycl_post_commit.yml +++ b/.github/workflows/sycl_post_commit.yml @@ -22,24 +22,21 @@ jobs: if: github.repository == 'intel/llvm' uses: ./.github/workflows/sycl_gen_test_matrix.yml with: - lts_config: "l0_gen9" + lts_config: "l0_gen9;win_l0_gen9" cts_config: "cuda" linux_default: name: Linux Default - if: github.repository == 'intel/llvm' needs: test_matrix uses: ./.github/workflows/sycl_linux_build_and_test.yml secrets: inherit with: build_cache_root: "/__w/llvm" build_artifact_suffix: "post_commit" - lts_matrix: ${{ needs.test_matrix.outputs.lts_matrix }} + lts_matrix: ${{ needs.test_matrix.outputs.lts_lx_matrix }} cts_matrix: ${{ needs.test_matrix.outputs.cts_matrix }} lts_aws_matrix: ${{ needs.test_matrix.outputs.lts_aws_matrix }} - build_configure_extra_args: --hip --cuda --enable-esimd-emulator --cmake-opt="-DSYCL_ENABLE_STACK_PRINTING=ON" --cmake-opt="-DSYCL_LIB_WITH_DEBUG_SYMBOL=ON" linux_no_assert: name: Linux (no assert) - if: github.repository == 'intel/llvm' uses: ./.github/workflows/sycl_linux_build_and_test.yml secrets: inherit with: @@ -120,8 +117,11 @@ jobs: windows_default: name: Windows + needs: test_matrix if: github.repository == 'intel/llvm' uses: ./.github/workflows/sycl_windows_build_and_test.yml + with: + lts_matrix: ${{ needs.test_matrix.outputs.lts_wn_matrix }} macos_default: name: macOS diff --git a/.github/workflows/sycl_precommit.yml b/.github/workflows/sycl_precommit.yml index bc73d86eb6050..561668f35e63b 100644 --- a/.github/workflows/sycl_precommit.yml +++ b/.github/workflows/sycl_precommit.yml @@ -64,5 +64,5 @@ jobs: build_cache_size: "8G" build_artifact_suffix: "default" build_cache_suffix: "default" - lts_matrix: ${{ needs.test_matrix.outputs.lts_matrix }} + lts_matrix: ${{ needs.test_matrix.outputs.lts_lx_matrix }} lts_aws_matrix: ${{ needs.test_matrix.outputs.lts_aws_matrix }} diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index c995cee514429..e8aa921ab605f 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -10,11 +10,31 @@ on: build_ref: type: string required: false + lts_matrix: + type: string + required: false + default: "[]" + lts_aws_matrix: + type: string + required: false + default: "[]" + lts_cmake_extra_args: + type: string + required: false + default: "" + lts_ref: + type: string + required: false + default: 'intel' jobs: build: name: Build + LIT runs-on: [Windows, build] + strategy: + matrix: + include: ${{ fromJSON(inputs.lts_matrix) }} + #runs-on: windows-latest # TODO use cached checkout steps: - uses: ilammy/msvc-dev-cmd@7315a94840631165970262a99c72cfb48a65d25d @@ -50,9 +70,23 @@ jobs: --cmake-opt="-DCMAKE_C_COMPILER_LAUNCHER=sccache" - name: Build id: build + shell: cmd + # TODO replace utility installation with a single CMake target run: | - cmake --build build --target sycl-toolchain - sccache --show-stats + cmake --build build --target deploy-sycl-toolchain + cmake --build build --target utils/FileCheck/install + cmake --build build --target utils/count/install + cmake --build build --target utils/not/install + cmake --build build --target utils/lit/install + cmake --build build --target utils/llvm-lit/install + cmake --build build --target install-clang-format + cmake --build build --target install-clang-tidy + cmake --build build --target install-llvm-size + cmake --build build --target install-llvm-cov + cmake --build build --target install-llvm-profdata + cmake --build build --target install-compiler-rt + #Copy FileCheck to intall/bin for use by E2E tests. + copy %GITHUB_WORKSPACE%\build\bin\FileCheck.exe %GITHUB_WORKSPACE%\install\bin\. - name: check-llvm shell: bash if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} @@ -79,10 +113,49 @@ jobs: run: | cmake --build build --target check-xptifw - name: Install + if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash - run: cmake --build build --target deploy-sycl-toolchain + run: | + cmake --build build --target deploy-sycl-toolchain - name: Upload toolchain + if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} uses: actions/upload-artifact@v3 with: name: sycl_windows_default - path: install/**/* + path: install + + llvm_test_suite: + needs: build + if: ${{ !failure() && inputs.lts_matrix != '[]' }} + strategy: + fail-fast: false + matrix: + include: ${{ fromJSON(inputs.lts_matrix) }} + name: ${{ matrix.name }} + runs-on: ${{ matrix.runs-on }} + env: ${{ matrix.env }} + steps: + - uses: ilammy/msvc-dev-cmd@7315a94840631165970262a99c72cfb48a65d25d + with: + arch: amd64 + - name: Set env + run: | + git config --system core.longpaths true + git config --global core.autocrlf false + echo "C:\Program Files\Git\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "SCCACHE_DIR=D:\github\_work\cache\${{ inputs.build_cache_suffix }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + # TODO: use cached_checkout + - uses: actions/checkout@v3 + with: + persist-credentials: false + ref: ${{ inputs.build_ref || github.ref }} + path: llvm + - name: Register cleanup after job is finished + uses: ./llvm/devops/actions/cleanup + - uses: ./llvm/devops/actions/llvm_test_suite_win + name: Run LLVM Test Suite + with: + sycl_artifact: sycl_windows_default + check_sycl_all: ${{ matrix.check_sycl_all }} + results_name_suffix: ${{ matrix.config }}_default + cmake_args: '${{ matrix.cmake_args }} ${{ inputs.lts_cmake_extra_args }}' diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/llvm_test_suite_win/action.yml new file mode 100644 index 0000000000000..745b02f990ae7 --- /dev/null +++ b/devops/actions/llvm_test_suite_win/action.yml @@ -0,0 +1,49 @@ +name: 'Run llvm-test-suite testing' +description: 'Run E2E SYCL tests from llvm-test-suite' +inputs: + sycl_artifact: + description: 'Name of the artifact, that contains compiler toolchain' + required: true + results_name_suffix: + description: 'Name suffix of the results artifact' + required: true + check_sycl_all: + description: 'List of SYCL backends with set of target devices per each to be tested iteratively' + required: true + cmake_args: + description: 'Extra arguments to cmake command' + required: false + +post-if: false +runs: + using: "composite" + steps: + - name: Download compiler toolchain + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.sycl_artifact }} + path: install + - name: Configure + shell: cmd + run: | + mkdir build-e2e + set PATH=%GITHUB_WORKSPACE%\install\bin;%PATH% + cmake -GNinja -B build-e2e -S.\llvm\sycl\test-e2e -DSYCL_TEST_E2E_TARGETS="${{ inputs.check_sycl_all }}" -DCMAKE_CXX_COMPILER="clang++" -DLLVM_LIT="..\llvm\llvm\utils\lit\lit.py" ${{ inputs.cmake_args }} + - name: Run testing + shell: bash + run: | + # Run E2E tests. + export LIT_OPTS="-v --no-progress-bar --show-unsupported --max-time 3600 --time-tests -o results_${{ inputs.results_name_suffix }}.json" + cmake --build build-e2e --target check-sycl-e2e + - name: Upload test results + uses: actions/upload-artifact@v1 + if: always() + with: + name: lit_results_windows + path: build-e2e/results_${{ inputs.results_name_suffix }}.json + - name: Cleanup + shell: cmd + if: always() + run: | + rmdir /q /s install + rmdir /q /s build-e2e diff --git a/devops/scripts/generate_test_matrix.js b/devops/scripts/generate_test_matrix.js index 4d90f8e89a9ab..a8d7f1d6275ed 100644 --- a/devops/scripts/generate_test_matrix.js +++ b/devops/scripts/generate_test_matrix.js @@ -2,7 +2,7 @@ module.exports = ({core, process}) => { const fs = require('fs'); fs.readFile('./test_configs.json', 'utf8', (err, data) => { if (err) { - console.log(`Error reading file from disk: ${err}`); + console.error(`Error reading file from disk: ${err}`); } else { const driverNew = JSON.parse(fs.readFileSync('./dependencies.json', 'utf8')); @@ -28,9 +28,12 @@ module.exports = ({core, process}) => { const ltsConfigs = inputs.lts_config.split(';'); - const enabledLTSConfigs = []; + const enabledLTSLxConfigs = []; + const enabledLTSWnConfigs = []; const enabledLTSAWSConfigs = []; + // Process LTS (LLVM Test Suite) + testConfigs.lts.forEach(v => { if (ltsConfigs.includes(v.config)) { if (needsDrivers) { @@ -47,22 +50,33 @@ module.exports = ({core, process}) => { } else { v["env"] = {}; } - enabledLTSConfigs.push(v); + if (v["runs-on"].includes("Windows")) + enabledLTSWnConfigs.push(v); + else if (v["runs-on"].includes("Linux")) + enabledLTSLxConfigs.push(v); + else + console.error("runs-on OS is not recognized"); if (v["aws-type"]) enabledLTSAWSConfigs.push(v); } }); - let ltsString = JSON.stringify(enabledLTSConfigs); + let ltsLxString = JSON.stringify(enabledLTSLxConfigs); + let ltsWnString = JSON.stringify(enabledLTSWnConfigs); let ltsAWSString = JSON.stringify(enabledLTSAWSConfigs); - console.log(ltsString); + console.log("Linux LTS config:") + console.log(ltsLxString); + console.log("Windows LTS config:") + console.log(ltsWnString); + console.log("Linux AWS LTS config:") console.log(ltsAWSString) + // drivers update is supported on Linux only for (let [key, value] of Object.entries(inputs)) { - ltsString = ltsString.replaceAll("${{ inputs." + key + " }}", value); + ltsLxString = ltsLxString.replaceAll("${{ inputs." + key + " }}", value); ltsAWSString = ltsAWSString.replaceAll("${{ inputs." + key + " }}", value); } if (needsDrivers) { - ltsString = ltsString.replaceAll( + ltsLxString = ltsLxString.replaceAll( "ghcr.io/intel/llvm/ubuntu2004_intel_drivers:latest", "ghcr.io/intel/llvm/ubuntu2004_base:latest"); ltsAWSString = ltsAWSString.replaceAll( @@ -70,9 +84,12 @@ module.exports = ({core, process}) => { "ghcr.io/intel/llvm/ubuntu2004_base:latest"); } - core.setOutput('lts_matrix', ltsString); + core.setOutput('lts_lx_matrix', ltsLxString); + core.setOutput('lts_wn_matrix', ltsWnString); core.setOutput('lts_aws_matrix', ltsAWSString); + // Process CTS (Conformance Test Suite) + const ctsConfigs = inputs.cts_config.split(';'); const enabledCTSConfigs = []; @@ -98,6 +115,7 @@ module.exports = ({core, process}) => { }); let ctsString = JSON.stringify(enabledCTSConfigs); + console.log("CTS config:") console.log(ctsString); for (let [key, value] of Object.entries(inputs)) { diff --git a/devops/test_configs.json b/devops/test_configs.json index ceeb2c21b5da3..6736cc15350ca 100644 --- a/devops/test_configs.json +++ b/devops/test_configs.json @@ -12,6 +12,16 @@ "check_sycl_all": "level_zero:gpu", "cmake_args": "" }, + { + "config": "win_l0_gen12", + "name": "L0 GEN12 LLVM Test Suite", + "runs-on": [ + "Windows", + "gen12" + ], + "check_sycl_all": "level_zero:gpu", + "cmake_args": "" + }, { "config": "ocl_gen9", "name": "OCL GEN9 LLVM Test Suite", From 3ed77a712f35962e55e0bdcce84e6e2a97e4b32b Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Thu, 23 Mar 2023 11:59:11 -0700 Subject: [PATCH 02/28] Fix typo. --- .github/workflows/sycl_post_commit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sycl_post_commit.yml b/.github/workflows/sycl_post_commit.yml index 6e8110e813e1c..5d2431d2d490a 100644 --- a/.github/workflows/sycl_post_commit.yml +++ b/.github/workflows/sycl_post_commit.yml @@ -22,7 +22,7 @@ jobs: if: github.repository == 'intel/llvm' uses: ./.github/workflows/sycl_gen_test_matrix.yml with: - lts_config: "l0_gen9;win_l0_gen9" + lts_config: "l0_gen9;win_l0_gen12" cts_config: "cuda" linux_default: name: Linux Default From 9f488449f9da7987b97bcc61e6d40be4a82196e6 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 24 Mar 2023 12:06:53 -0700 Subject: [PATCH 03/28] Address reviews; remove redundant changes. --- .github/workflows/sycl_gen_test_matrix.yml | 8 ++++---- .github/workflows/sycl_post_commit.yml | 3 +++ .../workflows/sycl_windows_build_and_test.yml | 19 ++++--------------- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/.github/workflows/sycl_gen_test_matrix.yml b/.github/workflows/sycl_gen_test_matrix.yml index 34b5562da4d94..5f108f2a441b4 100644 --- a/.github/workflows/sycl_gen_test_matrix.yml +++ b/.github/workflows/sycl_gen_test_matrix.yml @@ -35,16 +35,16 @@ on: default: ${{ github.sha }} outputs: lts_lx_matrix: - description: "Generated Linux LTS Matrix" + description: "Linux LTS" value: ${{ jobs.test_matrix.outputs.lts_lx_matrix }} lts_wn_matrix: - description: "Generated Windows LTS Matrix" + description: "Windows LTS" value: ${{ jobs.test_matrix.outputs.lts_wn_matrix }} cts_matrix: - description: "Generated SYCL CTS Matrix" + description: "SYCL CTS" value: ${{ jobs.test_matrix.outputs.cts_matrix }} lts_aws_matrix: - description: "Generated Linux AWS Matrix" + description: "Linux AWS" value: ${{ jobs.test_matrix.outputs.lts_aws_matrix }} jobs: test_matrix: diff --git a/.github/workflows/sycl_post_commit.yml b/.github/workflows/sycl_post_commit.yml index 5d2431d2d490a..7551a10d1c5f0 100644 --- a/.github/workflows/sycl_post_commit.yml +++ b/.github/workflows/sycl_post_commit.yml @@ -26,6 +26,7 @@ jobs: cts_config: "cuda" linux_default: name: Linux Default + if: github.repository == 'intel/llvm' needs: test_matrix uses: ./.github/workflows/sycl_linux_build_and_test.yml secrets: inherit @@ -35,8 +36,10 @@ jobs: lts_matrix: ${{ needs.test_matrix.outputs.lts_lx_matrix }} cts_matrix: ${{ needs.test_matrix.outputs.cts_matrix }} lts_aws_matrix: ${{ needs.test_matrix.outputs.lts_aws_matrix }} + build_configure_extra_args: --hip --cuda --enable-esimd-emulator --cmake-opt="-DSYCL_ENABLE_STACK_PRINTING=ON" --cmake-opt="-DSYCL_LIB_WITH_DEBUG_SYMBOL=ON" linux_no_assert: name: Linux (no assert) + if: github.repository == 'intel/llvm' uses: ./.github/workflows/sycl_linux_build_and_test.yml secrets: inherit with: diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index e8aa921ab605f..863fff72c8003 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -14,10 +14,6 @@ on: type: string required: false default: "[]" - lts_aws_matrix: - type: string - required: false - default: "[]" lts_cmake_extra_args: type: string required: false @@ -34,7 +30,6 @@ jobs: strategy: matrix: include: ${{ fromJSON(inputs.lts_matrix) }} - #runs-on: windows-latest # TODO use cached checkout steps: - uses: ilammy/msvc-dev-cmd@7315a94840631165970262a99c72cfb48a65d25d @@ -73,20 +68,14 @@ jobs: shell: cmd # TODO replace utility installation with a single CMake target run: | - cmake --build build --target deploy-sycl-toolchain - cmake --build build --target utils/FileCheck/install cmake --build build --target utils/count/install cmake --build build --target utils/not/install cmake --build build --target utils/lit/install cmake --build build --target utils/llvm-lit/install - cmake --build build --target install-clang-format - cmake --build build --target install-clang-tidy cmake --build build --target install-llvm-size cmake --build build --target install-llvm-cov cmake --build build --target install-llvm-profdata cmake --build build --target install-compiler-rt - #Copy FileCheck to intall/bin for use by E2E tests. - copy %GITHUB_WORKSPACE%\build\bin\FileCheck.exe %GITHUB_WORKSPACE%\install\bin\. - name: check-llvm shell: bash if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} @@ -113,12 +102,13 @@ jobs: run: | cmake --build build --target check-xptifw - name: Install - if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target deploy-sycl-toolchain + cmake --build build --target utils/FileCheck/install + # Copy FileCheck to install/bin for use by E2E tests. + copy %GITHUB_WORKSPACE%\build\bin\FileCheck.exe %GITHUB_WORKSPACE%\install\bin\. - name: Upload toolchain - if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} uses: actions/upload-artifact@v3 with: name: sycl_windows_default @@ -126,7 +116,7 @@ jobs: llvm_test_suite: needs: build - if: ${{ !failure() && inputs.lts_matrix != '[]' }} + if: ${{ needs.build.result == 'success' && inputs.lts_matrix != '[]' }} strategy: fail-fast: false matrix: @@ -143,7 +133,6 @@ jobs: git config --system core.longpaths true git config --global core.autocrlf false echo "C:\Program Files\Git\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - echo "SCCACHE_DIR=D:\github\_work\cache\${{ inputs.build_cache_suffix }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append # TODO: use cached_checkout - uses: actions/checkout@v3 with: From dfc8027a5fdb0810b186f0bcc8c73285fa73ac62 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 24 Mar 2023 12:14:33 -0700 Subject: [PATCH 04/28] Some more changes. --- .github/workflows/sycl_windows_build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 863fff72c8003..a1646cf51b8ff 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -55,7 +55,7 @@ jobs: mkdir build mkdir install IF NOT EXIST D:\github\_work\cache MKDIR D:\github\_work\cache - IF NOT EXIST D:\github\_work\cache\sycl_${{inputs.build_cache_suffix}} MKDIR D:\github\_work\cache\${{inputs.build_cache_suffix}} + IF NOT EXIST D:\github\_work\cache\${{inputs.build_cache_suffix}} MKDIR D:\github\_work\cache\${{inputs.build_cache_suffix}} python.exe src/buildbot/configure.py -o build ^ --ci-defaults ^ --cmake-opt="-DCMAKE_C_COMPILER=cl" ^ From 22b0672b2f9e9a4ca37d56c96d1a2cdf89f2e44e Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 07:56:33 -0700 Subject: [PATCH 05/28] Remove more redundant code. Move soe cmake commands to install. --- .../workflows/sycl_windows_build_and_test.yml | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index a1646cf51b8ff..db5dae940aa97 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -68,14 +68,7 @@ jobs: shell: cmd # TODO replace utility installation with a single CMake target run: | - cmake --build build --target utils/count/install - cmake --build build --target utils/not/install - cmake --build build --target utils/lit/install - cmake --build build --target utils/llvm-lit/install - cmake --build build --target install-llvm-size - cmake --build build --target install-llvm-cov - cmake --build build --target install-llvm-profdata - cmake --build build --target install-compiler-rt + cmake --build build --target sycl-toolchain - name: check-llvm shell: bash if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} @@ -104,10 +97,19 @@ jobs: - name: Install shell: bash run: | - cmake --build build --target deploy-sycl-toolchain + cmake --build build --target utils/count/install + cmake --build build --target utils/not/install + cmake --build build --target utils/lit/install + cmake --build build --target utils/llvm-lit/install + cmake --build build --target install-llvm-size + cmake --build build --target install-llvm-cov + cmake --build build --target install-llvm-profdata cmake --build build --target utils/FileCheck/install + cmake --build build --target install-compiler-rt + cmake --build build --target deploy-sycl-toolchain + ls ./install/bin # [UDIT]: Remove this. # Copy FileCheck to install/bin for use by E2E tests. - copy %GITHUB_WORKSPACE%\build\bin\FileCheck.exe %GITHUB_WORKSPACE%\install\bin\. + # copy %GITHUB_WORKSPACE%\build\bin\FileCheck.exe %GITHUB_WORKSPACE%\install\bin\. - name: Upload toolchain uses: actions/upload-artifact@v3 with: @@ -116,7 +118,7 @@ jobs: llvm_test_suite: needs: build - if: ${{ needs.build.result == 'success' && inputs.lts_matrix != '[]' }} + if: ${{ inputs.lts_matrix != '[]' }} strategy: fail-fast: false matrix: From 2d2fe781b0813b667261bef040b8f83999e210c9 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 08:25:32 -0700 Subject: [PATCH 06/28] Build default target for LIT. --- .github/workflows/sycl_windows_build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index db5dae940aa97..cea2ddf7d3b75 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -68,7 +68,7 @@ jobs: shell: cmd # TODO replace utility installation with a single CMake target run: | - cmake --build build --target sycl-toolchain + cmake --build build - name: check-llvm shell: bash if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} From a5d8b9e09e98f22feaa44e23a3e1e65f432afdb3 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 09:23:02 -0700 Subject: [PATCH 07/28] Pack toolchain. Explicitly copy FileCheck.exe binary. --- .github/workflows/sycl_windows_build_and_test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index cea2ddf7d3b75..c7c440379b6a6 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -107,9 +107,13 @@ jobs: cmake --build build --target utils/FileCheck/install cmake --build build --target install-compiler-rt cmake --build build --target deploy-sycl-toolchain - ls ./install/bin # [UDIT]: Remove this. # Copy FileCheck to install/bin for use by E2E tests. - # copy %GITHUB_WORKSPACE%\build\bin\FileCheck.exe %GITHUB_WORKSPACE%\install\bin\. + cp build/bin/FileCheck.exe install/bin/. + - name: Pack toolchain + shell: bash + run: | + gzip ./install + ls - name: Upload toolchain uses: actions/upload-artifact@v3 with: From 0ea453564ddb63e07ae1d8624a082629f38735dd Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 10:14:23 -0700 Subject: [PATCH 08/28] Pack & unpack toolchain for E2E tests. --- .github/workflows/sycl_windows_build_and_test.yml | 5 ++--- devops/actions/llvm_test_suite_win/action.yml | 8 +++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index c7c440379b6a6..36806e0e2a3d3 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -112,13 +112,12 @@ jobs: - name: Pack toolchain shell: bash run: | - gzip ./install - ls + tar -cJf llvm_sycl.tar.xz -C install . - name: Upload toolchain uses: actions/upload-artifact@v3 with: name: sycl_windows_default - path: install + path: llvm_sycl.tar.xz llvm_test_suite: needs: build diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/llvm_test_suite_win/action.yml index 745b02f990ae7..138da03dac20c 100644 --- a/devops/actions/llvm_test_suite_win/action.yml +++ b/devops/actions/llvm_test_suite_win/action.yml @@ -22,7 +22,13 @@ runs: uses: actions/download-artifact@v3 with: name: ${{ inputs.sycl_artifact }} - path: install + - name: Extract SYCL toolchain + shell: bash + run: | + mkdir install + ls + tar -xf llvm_sycl.tar.xz -C install + ls install/. - name: Configure shell: cmd run: | From ccbc8822c0a9f33f9c85a9919bb5d21e588736ee Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 10:29:59 -0700 Subject: [PATCH 09/28] Set build target to sycl-toolchain --- .github/workflows/sycl_windows_build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 36806e0e2a3d3..f623693ff8583 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -68,7 +68,7 @@ jobs: shell: cmd # TODO replace utility installation with a single CMake target run: | - cmake --build build + cmake --build build --target sycl-toolchain - name: check-llvm shell: bash if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} From f06eaef090bbb0ac04a0d73778b58fbd4ebe365b Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 10:41:06 -0700 Subject: [PATCH 10/28] Fix formatting --- devops/scripts/generate_test_matrix.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/devops/scripts/generate_test_matrix.js b/devops/scripts/generate_test_matrix.js index a8d7f1d6275ed..165e8988a4c46 100644 --- a/devops/scripts/generate_test_matrix.js +++ b/devops/scripts/generate_test_matrix.js @@ -51,11 +51,11 @@ module.exports = ({core, process}) => { v["env"] = {}; } if (v["runs-on"].includes("Windows")) - enabledLTSWnConfigs.push(v); + enabledLTSWnConfigs.push(v); else if (v["runs-on"].includes("Linux")) - enabledLTSLxConfigs.push(v); + enabledLTSLxConfigs.push(v); else - console.error("runs-on OS is not recognized"); + console.error("runs-on OS is not recognized"); if (v["aws-type"]) enabledLTSAWSConfigs.push(v); } }); @@ -72,7 +72,8 @@ module.exports = ({core, process}) => { // drivers update is supported on Linux only for (let [key, value] of Object.entries(inputs)) { - ltsLxString = ltsLxString.replaceAll("${{ inputs." + key + " }}", value); + ltsLxString = + ltsLxString.replaceAll("${{ inputs." + key + " }}", value); ltsAWSString = ltsAWSString.replaceAll("${{ inputs." + key + " }}", value); } if (needsDrivers) { From a7b995df4a825956540a61cf530a4fdd9ce0c3de Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 11:11:07 -0700 Subject: [PATCH 11/28] Fix pack/unpack toolchain --- .github/workflows/sycl_windows_build_and_test.yml | 7 +++++-- devops/actions/llvm_test_suite_win/action.yml | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index f623693ff8583..6aa00a716bf2e 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -112,12 +112,15 @@ jobs: - name: Pack toolchain shell: bash run: | - tar -cJf llvm_sycl.tar.xz -C install . + where xz + where tar + where gzip + tar -czf llvm_sycl.tar.gz -C install . - name: Upload toolchain uses: actions/upload-artifact@v3 with: name: sycl_windows_default - path: llvm_sycl.tar.xz + path: llvm_sycl.tar.gz llvm_test_suite: needs: build diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/llvm_test_suite_win/action.yml index 138da03dac20c..03aff370e5acc 100644 --- a/devops/actions/llvm_test_suite_win/action.yml +++ b/devops/actions/llvm_test_suite_win/action.yml @@ -27,7 +27,7 @@ runs: run: | mkdir install ls - tar -xf llvm_sycl.tar.xz -C install + tar -xf llvm_sycl.tar.gz -C install ls install/. - name: Configure shell: cmd From 592db5e13a77a2355ffb40088580d4abf1ac254a Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 11:43:44 -0700 Subject: [PATCH 12/28] Remove debugging statement --- .github/workflows/sycl_windows_build_and_test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 6aa00a716bf2e..a84e5f277a82e 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -112,9 +112,6 @@ jobs: - name: Pack toolchain shell: bash run: | - where xz - where tar - where gzip tar -czf llvm_sycl.tar.gz -C install . - name: Upload toolchain uses: actions/upload-artifact@v3 From 313dd6cf2a30fbc015e4e6cbbe61450f2f927d03 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 12:36:55 -0700 Subject: [PATCH 13/28] Disable some builds and checks to speed up debugging. --- .github/workflows/sycl_windows_build_and_test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index a84e5f277a82e..1fa4ce87d1f43 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -71,26 +71,26 @@ jobs: cmake --build build --target sycl-toolchain - name: check-llvm shell: bash - if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} run: | cmake --build build --target check-llvm - name: check-clang - if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-clang - name: check-sycl - if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-sycl - name: check-llvm-spirv - if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-llvm-spirv - name: check-xptifw - if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-xptifw From 8c65e5f27c5718b8bda0a8f306d166bd64e6d779 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 13:03:24 -0700 Subject: [PATCH 14/28] Re-enable checks. --- .github/workflows/sycl_windows_build_and_test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 1fa4ce87d1f43..a84e5f277a82e 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -71,26 +71,26 @@ jobs: cmake --build build --target sycl-toolchain - name: check-llvm shell: bash - if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} run: | cmake --build build --target check-llvm - name: check-clang - if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-clang - name: check-sycl - if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-sycl - name: check-llvm-spirv - if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-llvm-spirv - name: check-xptifw - if: ${{ false() && always() && !cancelled() && steps.build.outcome == 'success' }} + if: ${{ always() && !cancelled() && steps.build.outcome == 'success' }} shell: bash run: | cmake --build build --target check-xptifw From dfe3c53c977e96ac19a0b7d3b1f70e7a294a079c Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 14:58:50 -0700 Subject: [PATCH 15/28] Remove debug statements. --- devops/actions/llvm_test_suite_win/action.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/llvm_test_suite_win/action.yml index 03aff370e5acc..298b21bfd4ddf 100644 --- a/devops/actions/llvm_test_suite_win/action.yml +++ b/devops/actions/llvm_test_suite_win/action.yml @@ -26,9 +26,8 @@ runs: shell: bash run: | mkdir install - ls tar -xf llvm_sycl.tar.gz -C install - ls install/. + rm llvm_sycl.tar.gz - name: Configure shell: cmd run: | From 2cc579cedd220315413d4d78ac16b06401928c35 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 27 Mar 2023 15:02:01 -0700 Subject: [PATCH 16/28] Minor changes. --- .github/workflows/sycl_windows_build_and_test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index a84e5f277a82e..7813662a36a9c 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -65,8 +65,7 @@ jobs: --cmake-opt="-DCMAKE_C_COMPILER_LAUNCHER=sccache" - name: Build id: build - shell: cmd - # TODO replace utility installation with a single CMake target + shell: bash run: | cmake --build build --target sycl-toolchain - name: check-llvm @@ -97,6 +96,7 @@ jobs: - name: Install shell: bash run: | + # TODO replace utility installation with a single CMake target cmake --build build --target utils/count/install cmake --build build --target utils/not/install cmake --build build --target utils/lit/install From b5160867f7d33263b646d05b38b4ea8eafa9f5cf Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Tue, 28 Mar 2023 05:23:11 -0700 Subject: [PATCH 17/28] Install llvm-foreach to the install dir. --- .github/workflows/sycl_windows_build_and_test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 7813662a36a9c..1ffe7173eeeb5 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -107,8 +107,9 @@ jobs: cmake --build build --target utils/FileCheck/install cmake --build build --target install-compiler-rt cmake --build build --target deploy-sycl-toolchain - # Copy FileCheck to install/bin for use by E2E tests. + # Copy FileCheck and llvm-foreach to install/bin for use by E2E tests. cp build/bin/FileCheck.exe install/bin/. + cp build/bin/llvm-foreach.exe install/bin/. - name: Pack toolchain shell: bash run: | From 4a43fbd209deb330fe900b00db2bb4917612e7b3 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 31 Mar 2023 10:41:29 -0700 Subject: [PATCH 18/28] Download and install Intel's OCLOC. --- devops/actions/llvm_test_suite_win/action.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/llvm_test_suite_win/action.yml index 298b21bfd4ddf..b4e3e11c603cf 100644 --- a/devops/actions/llvm_test_suite_win/action.yml +++ b/devops/actions/llvm_test_suite_win/action.yml @@ -28,6 +28,15 @@ runs: mkdir install tar -xf llvm_sycl.tar.gz -C install rm llvm_sycl.tar.gz + - name: Download and Install OCLOC + shell: bash + run: | + curl https://registrationcenter-download.intel.com/akdlm/IRC_NAS/283b6f29-43d2-4bc9-b599-eefc2e33627f/ocloc_win_101.4146.zip + unzip ocloc_win_101.4146.zip + cp ocloc_win_101.4146/* ./install/bin/. + rm ocloc_win_101.4146.zip + rm -r ocloc_win_101.4146/ + ls ./install/bin/. #[Udit] For Debugging. Remove it. - name: Configure shell: cmd run: | From c58750689cb0ecb8e44ba0098f0b1eac0f573c7a Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 31 Mar 2023 12:26:39 -0700 Subject: [PATCH 19/28] Fix typo --- devops/actions/llvm_test_suite_win/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/llvm_test_suite_win/action.yml index b4e3e11c603cf..b4fbdf497be33 100644 --- a/devops/actions/llvm_test_suite_win/action.yml +++ b/devops/actions/llvm_test_suite_win/action.yml @@ -31,7 +31,7 @@ runs: - name: Download and Install OCLOC shell: bash run: | - curl https://registrationcenter-download.intel.com/akdlm/IRC_NAS/283b6f29-43d2-4bc9-b599-eefc2e33627f/ocloc_win_101.4146.zip + curl https://registrationcenter-download.intel.com/akdlm/IRC_NAS/283b6f29-43d2-4bc9-b599-eefc2e33627f/ocloc_win_101.4146.zip -o ocloc_win_101.4146.zip unzip ocloc_win_101.4146.zip cp ocloc_win_101.4146/* ./install/bin/. rm ocloc_win_101.4146.zip From dc4d5e9325b79d6d2865fe50af2d000250878740 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 31 Mar 2023 14:01:56 -0700 Subject: [PATCH 20/28] Remove debugging statements. --- .github/workflows/sycl_windows_build_and_test.yml | 3 +-- devops/actions/llvm_test_suite_win/action.yml | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 1ffe7173eeeb5..7813662a36a9c 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -107,9 +107,8 @@ jobs: cmake --build build --target utils/FileCheck/install cmake --build build --target install-compiler-rt cmake --build build --target deploy-sycl-toolchain - # Copy FileCheck and llvm-foreach to install/bin for use by E2E tests. + # Copy FileCheck to install/bin for use by E2E tests. cp build/bin/FileCheck.exe install/bin/. - cp build/bin/llvm-foreach.exe install/bin/. - name: Pack toolchain shell: bash run: | diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/llvm_test_suite_win/action.yml index b4fbdf497be33..8d70959e98cbc 100644 --- a/devops/actions/llvm_test_suite_win/action.yml +++ b/devops/actions/llvm_test_suite_win/action.yml @@ -36,7 +36,6 @@ runs: cp ocloc_win_101.4146/* ./install/bin/. rm ocloc_win_101.4146.zip rm -r ocloc_win_101.4146/ - ls ./install/bin/. #[Udit] For Debugging. Remove it. - name: Configure shell: cmd run: | From 46f484d3183c2698098c66759cd5d4fb0ecd3219 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 3 Apr 2023 11:43:54 -0700 Subject: [PATCH 21/28] Rename LLVM test suite to SYCL E2E tests. --- .github/workflows/sycl_windows_build_and_test.yml | 8 ++++---- .../{llvm_test_suite_win => e2e-tests-win}/action.yml | 8 ++++---- devops/test_configs.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) rename devops/actions/{llvm_test_suite_win => e2e-tests-win}/action.yml (88%) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index 7813662a36a9c..efef1bcd27fbf 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -119,7 +119,7 @@ jobs: name: sycl_windows_default path: llvm_sycl.tar.gz - llvm_test_suite: + e2e-tests: needs: build if: ${{ inputs.lts_matrix != '[]' }} strategy: @@ -146,10 +146,10 @@ jobs: path: llvm - name: Register cleanup after job is finished uses: ./llvm/devops/actions/cleanup - - uses: ./llvm/devops/actions/llvm_test_suite_win - name: Run LLVM Test Suite + - uses: ./llvm/devops/actions/e2e-tests-win + name: Run SYCL End-to-End tests with: sycl_artifact: sycl_windows_default - check_sycl_all: ${{ matrix.check_sycl_all }} + targets: ${{ matrix.targets }} results_name_suffix: ${{ matrix.config }}_default cmake_args: '${{ matrix.cmake_args }} ${{ inputs.lts_cmake_extra_args }}' diff --git a/devops/actions/llvm_test_suite_win/action.yml b/devops/actions/e2e-tests-win/action.yml similarity index 88% rename from devops/actions/llvm_test_suite_win/action.yml rename to devops/actions/e2e-tests-win/action.yml index 8d70959e98cbc..13658f0feccc5 100644 --- a/devops/actions/llvm_test_suite_win/action.yml +++ b/devops/actions/e2e-tests-win/action.yml @@ -1,5 +1,5 @@ -name: 'Run llvm-test-suite testing' -description: 'Run E2E SYCL tests from llvm-test-suite' +name: 'Run SYCL End-to-End testing' +description: 'Run SYCL End-to-End testing' inputs: sycl_artifact: description: 'Name of the artifact, that contains compiler toolchain' @@ -7,7 +7,7 @@ inputs: results_name_suffix: description: 'Name suffix of the results artifact' required: true - check_sycl_all: + targets: description: 'List of SYCL backends with set of target devices per each to be tested iteratively' required: true cmake_args: @@ -41,7 +41,7 @@ runs: run: | mkdir build-e2e set PATH=%GITHUB_WORKSPACE%\install\bin;%PATH% - cmake -GNinja -B build-e2e -S.\llvm\sycl\test-e2e -DSYCL_TEST_E2E_TARGETS="${{ inputs.check_sycl_all }}" -DCMAKE_CXX_COMPILER="clang++" -DLLVM_LIT="..\llvm\llvm\utils\lit\lit.py" ${{ inputs.cmake_args }} + cmake -GNinja -B build-e2e -S.\llvm\sycl\test-e2e -DSYCL_TEST_E2E_TARGETS="${{ inputs.targets }}" -DCMAKE_CXX_COMPILER="clang++" -DLLVM_LIT="..\llvm\llvm\utils\lit\lit.py" ${{ inputs.cmake_args }} - name: Run testing shell: bash run: | diff --git a/devops/test_configs.json b/devops/test_configs.json index 6736cc15350ca..ef2eed6ab9cbf 100644 --- a/devops/test_configs.json +++ b/devops/test_configs.json @@ -19,7 +19,7 @@ "Windows", "gen12" ], - "check_sycl_all": "level_zero:gpu", + "targets": "level_zero:gpu", "cmake_args": "" }, { From 77ed608254113ca60f876ca0091d8cb3743efeec Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 3 Apr 2023 11:47:54 -0700 Subject: [PATCH 22/28] Remove OCLOC stuff --- devops/actions/e2e-tests-win/action.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/devops/actions/e2e-tests-win/action.yml b/devops/actions/e2e-tests-win/action.yml index 13658f0feccc5..42b2e7375e601 100644 --- a/devops/actions/e2e-tests-win/action.yml +++ b/devops/actions/e2e-tests-win/action.yml @@ -28,14 +28,6 @@ runs: mkdir install tar -xf llvm_sycl.tar.gz -C install rm llvm_sycl.tar.gz - - name: Download and Install OCLOC - shell: bash - run: | - curl https://registrationcenter-download.intel.com/akdlm/IRC_NAS/283b6f29-43d2-4bc9-b599-eefc2e33627f/ocloc_win_101.4146.zip -o ocloc_win_101.4146.zip - unzip ocloc_win_101.4146.zip - cp ocloc_win_101.4146/* ./install/bin/. - rm ocloc_win_101.4146.zip - rm -r ocloc_win_101.4146/ - name: Configure shell: cmd run: | From 8aee683979ee1c85e143c2aa6274a990db28e31b Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 3 Apr 2023 12:23:31 -0700 Subject: [PATCH 23/28] Disable Basic/build_log on Windows as it depends on OCLOC compiler which is not available on the Windows CI. --- sycl/test-e2e/Basic/build_log.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/test-e2e/Basic/build_log.cpp b/sycl/test-e2e/Basic/build_log.cpp index 60d245f2f0c4d..7a55f2d24ee8e 100644 --- a/sycl/test-e2e/Basic/build_log.cpp +++ b/sycl/test-e2e/Basic/build_log.cpp @@ -1,5 +1,5 @@ // REQUIRES: opencl || level_zero, gpu -// UNSUPPORTED: gpu-intel-dg1 +// UNSUPPORTED: gpu-intel-dg1 || windows // // RUN: %clangxx -fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend=spir64_gen "-device dg1" %s -o %t.out // RUN: %GPU_RUN_PLACEHOLDER env SYCL_RT_WARNING_LEVEL=2 %t.out 2>&1 %GPU_CHECK_PLACEHOLDER From 5c04e14704a94c071896bee8c12d1cfef3b38b00 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 3 Apr 2023 12:47:57 -0700 Subject: [PATCH 24/28] Address Comments --- .github/workflows/sycl_windows_build_and_test.yml | 6 +----- devops/actions/e2e-tests-win/action.yml | 11 +---------- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index efef1bcd27fbf..a962d49fd4e47 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -18,10 +18,6 @@ on: type: string required: false default: "" - lts_ref: - type: string - required: false - default: 'intel' jobs: build: @@ -142,7 +138,7 @@ jobs: - uses: actions/checkout@v3 with: persist-credentials: false - ref: ${{ inputs.build_ref || github.ref }} + ref: ${{ inputs.build_ref || github.sha }} path: llvm - name: Register cleanup after job is finished uses: ./llvm/devops/actions/cleanup diff --git a/devops/actions/e2e-tests-win/action.yml b/devops/actions/e2e-tests-win/action.yml index 42b2e7375e601..a1988744d5182 100644 --- a/devops/actions/e2e-tests-win/action.yml +++ b/devops/actions/e2e-tests-win/action.yml @@ -4,9 +4,6 @@ inputs: sycl_artifact: description: 'Name of the artifact, that contains compiler toolchain' required: true - results_name_suffix: - description: 'Name suffix of the results artifact' - required: true targets: description: 'List of SYCL backends with set of target devices per each to be tested iteratively' required: true @@ -38,14 +35,8 @@ runs: shell: bash run: | # Run E2E tests. - export LIT_OPTS="-v --no-progress-bar --show-unsupported --max-time 3600 --time-tests -o results_${{ inputs.results_name_suffix }}.json" + export LIT_OPTS="-v --no-progress-bar --show-unsupported --max-time 3600 --time-tests" cmake --build build-e2e --target check-sycl-e2e - - name: Upload test results - uses: actions/upload-artifact@v1 - if: always() - with: - name: lit_results_windows - path: build-e2e/results_${{ inputs.results_name_suffix }}.json - name: Cleanup shell: cmd if: always() From 68015f005a56b4a0da290f7aa08150eed6096515 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 3 Apr 2023 15:30:01 -0700 Subject: [PATCH 25/28] Minor changes. Add TODOs, remove one redundant input. --- .github/workflows/sycl_windows_build_and_test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sycl_windows_build_and_test.yml b/.github/workflows/sycl_windows_build_and_test.yml index a962d49fd4e47..38a47637b428e 100644 --- a/.github/workflows/sycl_windows_build_and_test.yml +++ b/.github/workflows/sycl_windows_build_and_test.yml @@ -100,6 +100,8 @@ jobs: cmake --build build --target install-llvm-size cmake --build build --target install-llvm-cov cmake --build build --target install-llvm-profdata + # TODO: Figure out why installing FileCheck does not install + # the FileCheck binary in the install/bin directory. cmake --build build --target utils/FileCheck/install cmake --build build --target install-compiler-rt cmake --build build --target deploy-sycl-toolchain @@ -147,5 +149,4 @@ jobs: with: sycl_artifact: sycl_windows_default targets: ${{ matrix.targets }} - results_name_suffix: ${{ matrix.config }}_default cmake_args: '${{ matrix.cmake_args }} ${{ inputs.lts_cmake_extra_args }}' From 8a04329540535e667dff9da3381d0c3060b08800 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 3 Apr 2023 15:41:49 -0700 Subject: [PATCH 26/28] Disable regression_reduction_resource_leak_usm test on Windows with ze_debug on. --- sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp b/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp index 3284ed9a7b7a0..0874d781f91e9 100644 --- a/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp +++ b/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp @@ -1,6 +1,6 @@ // REQUIRES: level_zero, level_zero_dev_kit -// TODO: ZE_DEBUG=4 produces no output on Windows. Enable when fixed. // XFAIL: windows +// UNSUPPORTED: (ze_debug && windows) // // RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %level_zero_options %s -o %t.out // RUN: env ONEAPI_DEVICE_SELECTOR="level_zero:*" ZE_DEBUG=4 %GPU_RUN_PLACEHOLDER %t.out 2>&1 %GPU_CHECK_PLACEHOLDER From 2d71439f068ed433af65884862ca0640da53f916 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 3 Apr 2023 21:34:35 -0700 Subject: [PATCH 27/28] Temporarily disable test on Windows as it's likely flaky. --- sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp b/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp index 0874d781f91e9..0365eecaeb78c 100644 --- a/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp +++ b/sycl/test-e2e/Regression/reduction_resource_leak_usm.cpp @@ -1,6 +1,6 @@ // REQUIRES: level_zero, level_zero_dev_kit -// XFAIL: windows -// UNSUPPORTED: (ze_debug && windows) +// TODO: ZE_DEBUG=4 produces no output on Windows. Enable when fixed. +// UNSUPPORTED: windows // // RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %level_zero_options %s -o %t.out // RUN: env ONEAPI_DEVICE_SELECTOR="level_zero:*" ZE_DEBUG=4 %GPU_RUN_PLACEHOLDER %t.out 2>&1 %GPU_CHECK_PLACEHOLDER From bfd5d7bf100fdbe80bcc267134acc14f0d47bc94 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Wed, 5 Apr 2023 12:12:48 -0700 Subject: [PATCH 28/28] Disable some E2E tests on Windows (see issue #8934) --- sycl/test-e2e/ESIMD/dword_atomic_cmpxchg.cpp | 3 +++ sycl/test-e2e/ESIMD/dword_atomic_cmpxchg_scalar_off.cpp | 3 +++ sycl/test-e2e/ESIMD/dword_atomic_smoke.cpp | 3 +++ sycl/test-e2e/ESIMD/dword_atomic_smoke_scalar_off.cpp | 3 +++ 4 files changed, 12 insertions(+) diff --git a/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg.cpp b/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg.cpp index 03d5ac53ab82c..24c9838033631 100644 --- a/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg.cpp +++ b/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg.cpp @@ -10,6 +10,9 @@ // REQUIRES: gpu // UNSUPPORTED: gpu-intel-gen9 && windows // UNSUPPORTED: cuda || hip +// TODO: Re-enable this test on Windows after the following issue gets fixed: +// https://github.com/intel/llvm/issues/8934 +// UNSUPPORTED: windows // TODO: esimd_emulator fails due to random timeouts (_XFAIL_: esimd_emulator) // UNSUPPORTED: esimd_emulator // RUN: %clangxx -fsycl %s -o %t.out diff --git a/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg_scalar_off.cpp b/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg_scalar_off.cpp index 38bd49fd68f82..9a8adf008ea8c 100644 --- a/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg_scalar_off.cpp +++ b/sycl/test-e2e/ESIMD/dword_atomic_cmpxchg_scalar_off.cpp @@ -10,6 +10,9 @@ // REQUIRES: gpu // UNSUPPORTED: gpu-intel-gen9 && windows // UNSUPPORTED: cuda || hip +// TODO: Re-enable this test on Windows after the following issue gets fixed: +// https://github.com/intel/llvm/issues/8934 +// UNSUPPORTED: windows // TODO: esimd_emulator fails due to random timeouts (_XFAIL_: esimd_emulator) // UNSUPPORTED: esimd_emulator // RUN: %clangxx -fsycl %s -o %t.out diff --git a/sycl/test-e2e/ESIMD/dword_atomic_smoke.cpp b/sycl/test-e2e/ESIMD/dword_atomic_smoke.cpp index b56d68e396908..9b09442a79c88 100644 --- a/sycl/test-e2e/ESIMD/dword_atomic_smoke.cpp +++ b/sycl/test-e2e/ESIMD/dword_atomic_smoke.cpp @@ -10,6 +10,9 @@ // REQUIRES: gpu // UNSUPPORTED: gpu-intel-gen9 && windows // UNSUPPORTED: cuda || hip +// TODO: Re-enable this test on Windows after the following issue gets fixed: +// https://github.com/intel/llvm/issues/8934 +// UNSUPPORTED: windows // RUN: %clangxx -fsycl %s -o %t.out // RUN: %GPU_RUN_PLACEHOLDER %t.out diff --git a/sycl/test-e2e/ESIMD/dword_atomic_smoke_scalar_off.cpp b/sycl/test-e2e/ESIMD/dword_atomic_smoke_scalar_off.cpp index 51ed70ae061ae..81e464f112d0d 100644 --- a/sycl/test-e2e/ESIMD/dword_atomic_smoke_scalar_off.cpp +++ b/sycl/test-e2e/ESIMD/dword_atomic_smoke_scalar_off.cpp @@ -10,6 +10,9 @@ // REQUIRES: gpu // UNSUPPORTED: gpu-intel-gen9 && windows // UNSUPPORTED: cuda || hip +// TODO: Re-enable this test on Windows after the following issue gets fixed: +// https://github.com/intel/llvm/issues/8934 +// UNSUPPORTED: windows // TODO: esimd_emulator fails due to random timeouts (_XFAIL_: esimd_emulator) // UNSUPPORTED: esimd_emulator // RUN: %clangxx -fsycl %s -o %t.out