Create bindings for hipblasLt (#510) #111
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: ZLUDA | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [ master ] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| CARGO_PROFILE: release-lto | |
| SCCACHE_GHA_ENABLED: "true" | |
| RUSTC_WRAPPER: "sccache" | |
| ROCM_VERSION: "6.3.1" | |
| jobs: | |
| build_linux: | |
| name: Build (Linux) | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: jlumbroso/free-disk-space@main | |
| with: | |
| # Removing Android stuff should be enough | |
| android: true | |
| dotnet: false | |
| haskell: false | |
| large-packages: false | |
| docker-images: false | |
| swap-storage: false | |
| - uses: actions/checkout@v4 | |
| # fetch-depth and fetch-tags are required to properly tag pre-release builds | |
| with: | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| submodules: true | |
| - name: Install ROCm | |
| run: sudo bash .github/workflows/rocm_setup_build.sh ${{ env.ROCM_VERSION }} | |
| - name: Run sccache-cache | |
| uses: mozilla-actions/sccache-action@v0.0.9 | |
| - name: Build | |
| # https://github.com/actions/upload-artifact/issues/39 | |
| run: | | |
| cargo xtask zip --profile ${{ env.CARGO_PROFILE }} | |
| mkdir target/${{ env.CARGO_PROFILE }}/zluda | |
| tar -xzf target/${{ env.CARGO_PROFILE }}/zluda.tar.gz -C target/${{ env.CARGO_PROFILE }}/zluda | |
| - name: Set revision hash | |
| run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: zluda-linux-${{ env.SHORT_SHA }} | |
| path: target/${{ env.CARGO_PROFILE }}/zluda | |
| - name: Prepare artifact for release | |
| run: | | |
| mv target/${{ env.CARGO_PROFILE }}/zluda.tar.gz target/${{ env.CARGO_PROFILE }}/zluda-linux-${{ env.SHORT_SHA }}.tar.gz | |
| latest_tag=$(git tag -l "v*" | grep -E "^v[0-9]+$" | sort -V | tail -n 1) | |
| next_version="$((${latest_tag:1} + 1))" | |
| offset=$(git rev-list $latest_tag..HEAD --count) | |
| echo "VERSION=$next_version-preview.$offset" >> $GITHUB_OUTPUT | |
| id: prepare_artifacts | |
| - uses: ncipollo/release-action@v1 | |
| with: | |
| prerelease: true | |
| generateReleaseNotes: true | |
| allowUpdates: true | |
| omitNameDuringUpdate: true | |
| artifacts: "target/${{ env.CARGO_PROFILE }}/zluda-linux-${{ env.SHORT_SHA }}.tar.gz" | |
| name: "Version ${{ steps.prepare_artifacts.outputs.VERSION }}" | |
| tag: "v${{ steps.prepare_artifacts.outputs.VERSION }}" | |
| build_windows: | |
| name: Build (Windows) | |
| runs-on: windows-2022 | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # fetch-depth and fetch-tags are required to properly tag pre-release builds | |
| with: | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| submodules: true | |
| - name: Run sccache-cache | |
| uses: mozilla-actions/sccache-action@v0.0.9 | |
| - name: Build | |
| run: | | |
| cargo xtask zip --profile ${{ env.CARGO_PROFILE }} | |
| Expand-Archive -Path target/${{ env.CARGO_PROFILE }}/zluda.zip -DestinationPath target/${{ env.CARGO_PROFILE }}/zluda | |
| - name: Set revision hash | |
| run: echo "SHORT_SHA=$("${{ github.sha }}".SubString(0, 7))" >> $env:GITHUB_ENV | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: zluda-windows-${{ env.SHORT_SHA }} | |
| path: target/${{ env.CARGO_PROFILE }}/zluda | |
| - name: Prepare artifact for release | |
| shell: bash | |
| working-directory: ${{ github.workspace }} | |
| run: | | |
| mv target/${{ env.CARGO_PROFILE }}/zluda.zip target/${{ env.CARGO_PROFILE }}/zluda-windows-${{ env.SHORT_SHA }}.zip | |
| latest_tag=$(git tag -l "v*" | grep -E "^v[0-9]+$" | sort -V | tail -n 1) | |
| next_version="$((${latest_tag:1} + 1))" | |
| offset=$(git rev-list $latest_tag..HEAD --count) | |
| echo "VERSION=$next_version-preview.$offset" >> $GITHUB_OUTPUT | |
| id: prepare_artifacts | |
| - uses: ncipollo/release-action@v1 | |
| with: | |
| prerelease: true | |
| generateReleaseNotes: true | |
| allowUpdates: true | |
| omitNameDuringUpdate: true | |
| artifacts: "target/${{ env.CARGO_PROFILE }}/zluda-windows-${{ env.SHORT_SHA }}.zip" | |
| name: "Version ${{ steps.prepare_artifacts.outputs.VERSION }}" | |
| tag: "v${{ steps.prepare_artifacts.outputs.VERSION }}" | |
| build_tests: | |
| name: Build AMD GPU unit tests | |
| runs-on: ubuntu-22.04 | |
| outputs: | |
| test_package: ${{ steps.upload_artifacts.outputs.artifact-id }} | |
| steps: | |
| - uses: jlumbroso/free-disk-space@main | |
| with: | |
| # Removing Android stuff should be enough | |
| android: true | |
| dotnet: false | |
| haskell: false | |
| large-packages: false | |
| docker-images: false | |
| swap-storage: false | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Install ROCm | |
| run: sudo bash .github/workflows/rocm_setup_build.sh ${{ env.ROCM_VERSION }} | |
| - name: Run sccache-cache | |
| uses: mozilla-actions/sccache-action@v0.0.9 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-export | |
| - name: Build | |
| run: | | |
| cargo export target/tests -- test --features ci_build --workspace --exclude cuda_macros --exclude ptx_parser_macros | |
| mkdir -p target/amdgpu | |
| bash .github/workflows/move_tests.sh target/tests amdgpu | |
| strip target/amdgpu/* | |
| - name: Upload | |
| id: upload_artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: tests | |
| path: target/amdgpu | |
| retention-days: 7 | |
| run_tests: | |
| name: Run AMD GPU unit tests | |
| runs-on: gpu_small | |
| needs: [build_tests] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: false | |
| sparse-checkout: .github | |
| - name: Install ROCm | |
| run: sudo bash .github/workflows/rocm_setup_run.sh ${{ env.ROCM_VERSION }} | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| artifact-ids: ${{ needs.build_tests.outputs.test_package }} | |
| path: target | |
| - name: Run tests | |
| run: | | |
| chmod +x target/tests/* | |
| error_occurred=0 | |
| for exe in target/tests/*; do | |
| ./"$exe" _amdgpu || { error_occurred=1; true; } | |
| done | |
| exit $error_occurred |