Sycl nightly workflow #7
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' && false | |
| name: Latest release | |
| runs-on: [DSS-LEVEL_ZERO, DSS-UBUNTU] | |
| steps: | |
| # - name: Install apt packages | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install -y cmake libhwloc-dev ninja-build python3 wget | |
| # 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 }}/umf_install | |
| -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) | |
| # Build SYCL | |
| - name: Download latest SYCL 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 SYCL | |
| run: | | |
| mkdir llvm | |
| tar -xzf sycl_linux.tar.gz -C llvm --strip-components=1 | |
| - name: Add sycl to environment variables | |
| run: | | |
| echo "export PATH=${{ github.workspace }}/llvm/bin:$PATH" >> $GITHUB_PATH | |
| echo "export LD_LIBRARY_PATH=${{ github.workspace }}/llvm/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
| - name: Build SYCL | |
| working-directory: llvm | |
| run: | | |
| python3 buildbot/configure.py | |
| python3 buildbot/compile.py -j $(nproc) | |
| - name: Copy latest UMF to sycl | |
| run: echo "Copy latest UMF to sycl" | |
| - name: Run sycl-ls | |
| run: echo "Run sycl-ls" | |
| latest-daily: | |
| # run only on upstream; forks will not have the HW | |
| if: github.repository == 'oneapi-src/unified-memory-framework' | |
| name: Latest daily build | |
| runs-on: ["DSS-LEVEL_ZERO", "DSS-UBUNTU"] | |
| steps: | |
| # - name: Install apt packages | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install -y cmake libhwloc-dev ninja-build python3 wget | |
| # Install SYCL | |
| - name: Download latest SYCL 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 SYCL | |
| run: | | |
| mkdir llvm | |
| tar -xzf sycl_linux.tar.gz -C llvm --strip-components=1 | |
| - name: Add sycl to environment variables | |
| run: | | |
| echo "export PATH=${{ github.workspace }}/llvm/bin:$PATH" >> $GITHUB_PATH | |
| echo "export 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 SYCL | |
| 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: Build standalone tests | |
| working-directory: sycl_repo/sycl/test-e2e | |
| run: > | |
| cmake | |
| -B build | |
| -DCMAKE_CXX_COMPILER=clang++ | |
| -DSYCL_TEST_E2E_TARGETS="level_zero:gpu" | |
| - name: Run standalone tests | |
| working-directory: sycl_repo/sycl/test-e2e | |
| run: cmake --build build --target check-sycl-e2e | |
| - name: Run sycl tests built locally | |
| working-directory: sycl_repo | |
| run: | | |
| clang++ -fsycl sycl/test-e2e/AbiNeutral/submit-kernel.cpp -o submit-kernel | |
| ONEAPI_DEVICE_SELECTOR=level_zero:gpu ./submit-kernel | |
| - name: Run llvm-lit sycl tests | |
| working-directory: sycl_repo | |
| run: | | |
| llvm-lit --param sycl_devices="level_zero:gpu" sycl/test-e2e |