-
Notifications
You must be signed in to change notification settings - Fork 800
[CI] Introduce yarpgen testing #20829
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: sycl
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,66 +9,99 @@ on: | |
| permissions: read-all | ||
|
|
||
| jobs: | ||
| ubuntu2204_build: | ||
| if: github.repository == 'intel/llvm' | ||
| uses: ./.github/workflows/sycl-linux-build.yml | ||
| secrets: inherit | ||
| with: | ||
| build_cache_root: "/__w/" | ||
| build_configure_extra_args: '' | ||
| # ubuntu2204_build: | ||
| # if: github.repository == 'intel/llvm' | ||
| # uses: ./.github/workflows/sycl-linux-build.yml | ||
| # secrets: inherit | ||
| # with: | ||
| # build_cache_root: "/__w/" | ||
| # build_configure_extra_args: '' | ||
|
|
||
| toolchain_artifact: sycl_linux_default | ||
| # toolchain_artifact: sycl_linux_default | ||
|
|
||
| # This job builds SYCL-CTS with -fsycl-use-spirv-backend-for-spirv-gen. | ||
| build-sycl-cts: | ||
| needs: ubuntu2204_build | ||
| permissions: | ||
| contents: write | ||
| packages: read | ||
| if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
| uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
| with: | ||
| name: Build SYCL-CTS | ||
| runner: '["Linux", "build"]' | ||
| testing_mode: 'build-only' | ||
| image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| tests_selector: cts | ||
| repo_ref: ${{ github.sha }} | ||
| toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }} | ||
| toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }} | ||
| toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }} | ||
| extra_cmake_args: -DDPCPP_FLAGS=-fsycl-use-spirv-backend-for-spirv-gen | ||
| binaries_artifact: sycl_cts_bin | ||
| # # This job builds SYCL-CTS with -fsycl-use-spirv-backend-for-spirv-gen. | ||
| # build-sycl-cts: | ||
| # needs: ubuntu2204_build | ||
| # permissions: | ||
| # contents: write | ||
| # packages: read | ||
| # if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
| # uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
| # with: | ||
| # name: Build SYCL-CTS | ||
| # runner: '["Linux", "build"]' | ||
| # testing_mode: 'build-only' | ||
| # image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| # tests_selector: cts | ||
| # repo_ref: ${{ github.sha }} | ||
| # toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }} | ||
| # toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }} | ||
| # toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }} | ||
| # extra_cmake_args: -DDPCPP_FLAGS=-fsycl-use-spirv-backend-for-spirv-gen | ||
| # binaries_artifact: sycl_cts_bin | ||
|
|
||
| run-sycl-cts: | ||
| needs: [ubuntu2204_build, build-sycl-cts] | ||
| permissions: | ||
| contents: write | ||
| packages: read | ||
| if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - name: SYCL-CTS on OCL CPU PVC w/ LLVM SPIR-V Backend | ||
| runner: '["Linux", "pvc"]' | ||
| image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| target_devices: opencl:cpu | ||
| # run-sycl-cts: | ||
| # needs: [ubuntu2204_build, build-sycl-cts] | ||
| # permissions: | ||
| # contents: write | ||
| # packages: read | ||
| # if: ${{ !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} | ||
| # strategy: | ||
| # fail-fast: false | ||
| # matrix: | ||
| # include: | ||
| # - name: SYCL-CTS on OCL CPU PVC w/ LLVM SPIR-V Backend | ||
| # runner: '["Linux", "pvc"]' | ||
| # image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| # target_devices: opencl:cpu | ||
|
|
||
| - name: SYCL-CTS on L0 GPU PVC w/ LLVM SPIR-V Backend | ||
| runner: '["Linux", "pvc"]' | ||
| image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| target_devices: level_zero:gpu | ||
| uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
| with: | ||
| name: ${{ matrix.name }} | ||
| runner: ${{ matrix.runner }} | ||
| testing_mode: 'run-only' | ||
| image_options: ${{ matrix.image_options }} | ||
| target_devices: ${{ matrix.target_devices }} | ||
| tests_selector: cts | ||
| repo_ref: ${{ github.sha }} | ||
| toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }} | ||
| toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }} | ||
| toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }} | ||
| binaries_artifact: sycl_cts_bin | ||
| # - name: SYCL-CTS on L0 GPU PVC w/ LLVM SPIR-V Backend | ||
| # runner: '["Linux", "pvc"]' | ||
| # image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN | ||
| # target_devices: level_zero:gpu | ||
| # uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
| # with: | ||
| # name: ${{ matrix.name }} | ||
| # runner: ${{ matrix.runner }} | ||
| # testing_mode: 'run-only' | ||
| # image_options: ${{ matrix.image_options }} | ||
| # target_devices: ${{ matrix.target_devices }} | ||
| # tests_selector: cts | ||
| # repo_ref: ${{ github.sha }} | ||
| # toolchain_artifact: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact }} | ||
| # toolchain_artifact_filename: ${{ needs.ubuntu2204_build.outputs.toolchain_artifact_filename }} | ||
| # toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.toolchain_decompress_command }} | ||
| # binaries_artifact: sycl_cts_bin | ||
|
|
||
| yarpgen: | ||
| if: ${{ !cancelled() }} | ||
| runs-on: [Linux, build] | ||
| container: | ||
| # This workflow runs on Sundays, so in almost all cases there are no new | ||
| # commits on Saturday, and therefore the latest nightly can be used. | ||
| # TODO: Consider switching sycl-cts run to nightly build. | ||
| image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest | ||
| # Is it the minimum set of options to get a working toolchain? | ||
| options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | ||
| steps: | ||
| - name: Set up yarpgen | ||
| run: | | ||
| git clone https://github.com/intel/yarpgen.git | ||
| cmake -B yarpgen/build -G Ninja yarpgen/ | ||
| ninja -C yarpgen/build | ||
| - name: Run yarpgen | ||
| run: | | ||
| cd yarpgen | ||
| python3 --version | ||
| # A system hits OOM when using all available threads. | ||
| python3 scripts/run_gen.py --target clang -j4 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For how long does it run by default? I suggest we set the duration here explicitly
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It takes just 10 minutes with this amount of jobs. I'm not sure if more jobs reduce the time or even increase:D
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You mean to set the time limit for this job?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I mean yarpgen can continue generating and trying programs indefinitely, if you say it so. My point was to pass |
||
| - name: Pack results | ||
| run: tar -czf yarpgen_results.tar.gz yarpgen/testing | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I hope results aren't too huge. If they are, we can consider shorter retention policy if no issues were discovered
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The archive takes just 1mb, as I understand without Intel SDE there are not many compiled programs. The issue is I have no idea how to download Intel SDE via console. |
||
| - uses: actions/upload-artifact@v5 | ||
| with: | ||
| name: yarpgen_results | ||
| path: yarpgen_results.tar.gz | ||
| retention-days: 7 | ||
| - name: Clean up | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would like this job to somehow report the fuzzing outcome. The tool does print some summary, but there are also errors which should not be considered as problems. For example, when a generated kernel uses too many arguments and they exceed implementation limits. |
||
| if: always() | ||
| run: rm -rf yarpgen yarpgen_results.tar.gz | ||
Uh oh!
There was an error while loading. Please reload this page.