Sycl nightly workflow #31
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: | |
| latest-release: | |
| # run only on upstream; forks will not have the HW | |
| if: github.repository == 'oneapi-src/unified-memory-framework' | |
| name: Latest release | |
| runs-on: [DSS-LEVEL_ZERO, DSS-UBUNTU] | |
| steps: | |
| # Install sycl | |
| - name: Download latest llvm release | |
| run: | | |
| latest_release=$(curl -s https://api.github.com/repos/intel/llvm/releases/latest | grep "tag_name" | cut -d '"' -f 4) | |
| download_url="https://github.com/intel/llvm/archive/refs/tags/${latest_release}.tar.gz" | |
| wget --no-verbose $download_url -O sycl_linux.tar.gz | |
| - name: Extract llvm | |
| run: | | |
| mkdir sycl_repo | |
| tar -xzf sycl_linux.tar.gz -C sycl_repo --strip-components=1 | |
| - name: Build llvm | |
| working-directory: sycl_repo | |
| run: | | |
| python3 buildbot/configure.py | |
| python3 buildbot/compile.py -j $(nproc) | |
| - name: Add llvm install directory to environment | |
| run: | | |
| echo "SYCL_INSTALL_DIR=${{ github.workspace }}/sycl_repo/build/install" >> $GITHUB_ENV | |
| - name: Add llvm to PATH | |
| run: | | |
| echo "${{ github.workspace }}/llvm/bin:$PATH" >> $GITHUB_PATH | |
| echo "LD_LIBRARY_PATH=${{env.SYCL_INSTALL_DIR}}/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
| - name: Remove UMF installed with llvm | |
| run: rm -f ${{env.SYCL_INSTALL_DIR}}/lib/libumf* | |
| - name: Print installed sycl files | |
| run: | | |
| tree -L 2 ${{env.SYCL_INSTALL_DIR}} | |
| # 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=${{ env.SYCL_INSTALL_DIR }} | |
| -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: Build and install UMF | |
| working-directory: umf_repo | |
| run: cmake --build build --target install -j$(nproc) | |
| - name: Print installed lib files | |
| run: ls -l ${{env.SYCL_INSTALL_DIR}}/lib | |
| # Test sycl | |
| - name: Run sycl-ls | |
| run: | | |
| ${{env.SYCL_INSTALL_DIR}}/bin/sycl-ls | |
| - name: Run sycl tests built locally | |
| working-directory: sycl_repo | |
| run: | | |
| clang++ -fsycl sycl/test-e2e/AbiNeutral/submit-kernel.cpp -o submit-kernel -I${{env.SYCL_INSTALL_DIR}}/include -I${{env.SYCL_INSTALL_DIR}}/include/sycl | |
| ONEAPI_DEVICE_SELECTOR=level_zero:gpu ./submit-kernel | |
| - name: Clean up | |
| if: always() | |
| run: rm -rf llvm sycl_repo sycl_linux.tar.gz | |
| latest-daily: | |
| # run only on upstream; forks will not have the HW | |
| if: github.repository == 'oneapi-src/unified-memory-framework' && false | |
| name: Latest daily build | |
| runs-on: ["DSS-LEVEL_ZERO", "DSS-UBUNTU"] | |
| steps: | |
| # Install sycl | |
| - name: Download latest llvm daily release | |
| run: | | |
| latest_tag=$(curl -s https://api.github.com/repos/intel/llvm/releases | awk -F'"' '/"tag_name":/ {print $4; exit}') | |
| download_url="https://github.com/intel/llvm/releases/download/${latest_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: Run sycl tests built locally | |
| working-directory: sycl_repo | |
| run: | | |
| clang++ -fsycl sycl/test-e2e/AbiNeutral/submit-kernel.cpp -o submit-kernel -Iinclude | |
| ONEAPI_DEVICE_SELECTOR=level_zero:gpu ./submit-kernel | |
| - name: Clean up | |
| if: always() | |
| run: rm -rf llvm sycl_linux.tar.gz |