Sycl nightly workflow #41
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: SYCL | |
| on: [workflow_call, push, pull_request] | |
| permissions: | |
| contents: read | |
| jobs: | |
| sycl-compatibility: | |
| # run only on upstream; forks will not have the HW | |
| if: github.repository == 'oneapi-src/unified-memory-framework' | |
| name: ${{matrix.llvm_tag}} llvm build | |
| runs-on: ["DSS-LEVEL_ZERO", "DSS-UBUNTU"] | |
| strategy: | |
| matrix: | |
| llvm_tag: ["latest", "nightly-2024-12-07"] # "latest" or llvm with UMF v0.10.0 | |
| steps: | |
| # Install sycl | |
| - name: Download llvm daily release | |
| run: | | |
| if [ "${{ matrix.llvm_tag }}" == "latest" ]; then | |
| llvm_tag=$(curl -s https://api.github.com/repos/intel/llvm/releases | awk -F'"' '/"tag_name":/ {print $4; exit}') | |
| else | |
| llvm_tag="${{ matrix.llvm_tag }}" | |
| fi | |
| download_url="https://github.com/intel/llvm/releases/download/${llvm_tag}/sycl_linux.tar.gz" | |
| wget --no-verbose $download_url -O sycl_linux.tar.gz | |
| - name: Extract llvm | |
| run: | | |
| mkdir llvm | |
| tar -xzf sycl_linux.tar.gz -C llvm --strip-components=1 | |
| - name: Add sycl to PATH | |
| run: | | |
| echo "${{ github.workspace }}/llvm/bin:$PATH" >> $GITHUB_PATH | |
| echo "LD_LIBRARY_PATH=${{ github.workspace }}/llvm/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
| # Install UMF | |
| - name: Checkout UMF | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| path: umf_repo | |
| fetch-depth: 0 | |
| - name: Configure UMF | |
| working-directory: umf_repo | |
| run: > | |
| cmake | |
| -B build | |
| -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/llvm | |
| -DCMAKE_BUILD_TYPE=Release | |
| -DCMAKE_C_COMPILER=gcc | |
| -DCMAKE_CXX_COMPILER=g++ | |
| -DUMF_BUILD_SHARED_LIBRARY=ON | |
| -DUMF_BUILD_TESTS=OFF | |
| -DUMF_BUILD_EXAMPLES=OFF | |
| - name: Remove UMF installed with llvm | |
| run: rm -f llvm/lib/libumf* | |
| - name: Build and install UMF | |
| working-directory: umf_repo | |
| run: cmake --build build --target install -j$(nproc) | |
| - name: Print installed lib files | |
| run: ls -l llvm/lib | |
| # Test sycl-ls | |
| - name: Run sycl-ls | |
| run: | | |
| ./llvm/bin/sycl-ls | |
| # Test several sycl e2e test | |
| - name: Checkout sycl | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| repository: intel/llvm | |
| path: sycl_repo | |
| fetch-depth: 1 | |
| ref: sycl | |
| - name: Create sycl tests build directory | |
| run: | | |
| TESTS_BUILD_DIR=${{ github.workspace }}/sycl_repo/sycl/test-e2e/build | |
| mkdir $TESTS_BUILD_DIR | |
| echo "TESTS_BUILD_DIR=$TESTS_BUILD_DIR" >> $GITHUB_ENV | |
| - name: Build sycl e2e tests | |
| working-directory: sycl_repo | |
| run: | | |
| ${{github.workspace}}/llvm/bin/clang++ -fsycl sycl/test-e2e/AbiNeutral/submit-kernel.cpp -o ${{env.TESTS_BUILD_DIR}}/submit-kernel -Iinclude | |
| ${{github.workspace}}/llvm/bin/clang++ -fsycl sycl/test-e2e/Adapters/interop-l0-direct.cpp -o ${{env.TESTS_BUILD_DIR}}/interop-l0-direct -lze_loader -Iinclude | |
| ${{github.workspace}}/llvm/bin/clang++ -fsycl sycl/test-e2e/Adapters/level_zero_interop_memcpy.cpp -o ${{env.TESTS_BUILD_DIR}}/level_zero_interop_memcpy -Iinclude | |
| ${{github.workspace}}/llvm/bin/clang++ -fsycl sycl/test-e2e/Basic/build_log.cpp -o ${{env.TESTS_BUILD_DIR}}/build_log -Iinclude | |
| ${{github.workspace}}/llvm/bin/clang++ -fsycl sycl/test-e2e/PerformanceTests/ParallelFor/parallel_for_range_roundup.cpp -fsycl-range-rounding=force -o ${{env.TESTS_BUILD_DIR}}/parallel_for_range_roundup -Iinclude | |
| ${{github.workspace}}/llvm/bin/clang++ -fsycl sycl/test-e2e/USM/fill_any_size.cpp -o ${{env.TESTS_BUILD_DIR}}/fill_any_size -Iinclude | |
| - name: Run sycl e2e tests | |
| env: | |
| ONEAPI_DEVICE_SELECTOR: level_zero:gpu | |
| UMF_LOG: "level:debug;flush:debug;output:stdout;pid:yes" | |
| working-directory: ${{env.TESTS_BUILD_DIR}} | |
| run: | | |
| echo "Run submit-kernel test" && ./submit-kernel | |
| echo "\nRun interop-l0-direct test" && ./interop-l0-direct | |
| echo "\nRun level_zero_interop_memcpy test" && ./level_zero_interop_memcpy | |
| echo "\nRun build_log test" && ./build_log | |
| echo "\nRun parallel_for_range_roundup test" && parallel_for_range_roundup | |
| echo "\nRun fill_any_size test" && fill_any_size | |
| - name: Clean up | |
| if: always() | |
| run: rm -rf llvm sycl_linux.tar.gz |