diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 99f87b9cf..dbde573f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,118 +28,132 @@ jobs: # MSRV=$(cat ./rust-toolchain) # echo "MSRV=$MSRV" | tee --append "$GITHUB_OUTPUT" - check_clippy: - runs-on: ubuntu-24.04 - name: Clippy - steps: - - uses: actions/checkout@v4 - - name: Install required packages - run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev - - name: Run cargo clippy - run: cargo clippy --all-targets --workspace -- -D warnings - - check_fmt: - runs-on: ubuntu-24.04 - name: Checking fmt - steps: - - uses: actions/checkout@v4 - - name: Run cargo fmt - run: cargo fmt --all -- --check - - test_release: + #check_clippy: + # runs-on: ubuntu-24.04 + # name: Clippy + # steps: + # - uses: actions/checkout@v4 + # - name: Install required packages + # run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev + # - name: Run cargo clippy + # run: cargo clippy --all-targets --workspace -- -D warnings + # + #check_fmt: + # runs-on: ubuntu-24.04 + # name: Checking fmt + # steps: + # - uses: actions/checkout@v4 + # - name: Run cargo fmt + # run: cargo fmt --all -- --check + # + #test_release: + # runs-on: ubuntu-24.04 + # name: Test in release mode + # strategy: + # matrix: + # cargo-args: ['', '--features fixed-rows-to-discard'] + # env: + # # Run all tests with multicore-SDR enabled. + # FIL_PROOFS_USE_MULTICORE_SDR: true + # steps: + # - uses: actions/checkout@v4 + # - name: Install required packages + # run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev + # + # - name: Download the proof params + # uses: ./.github/actions/proof-params-download + # with: + # github-token: ${{ secrets.GITHUB_TOKEN }} + # + # - name: Run usual tests in release profile + # run: cargo test --verbose --release --workspace --all-targets ${{ matrix.cargo-args }} -- --nocapture + # - name: Run isolated PoRep tests in release profile + # # Getting the cores does not work on GitHub Actions, hence skip that + # # specific test. + # run: cargo test --release -p storage-proofs-porep --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --skip stacked::vanilla::cores::tests::test_checkout_cores + # - name: Run isolated update tests in release profile + # # Some `storage-proofs-update` tests need to run sequentially due to + # # their high memory usage. + # run: cargo test --release -p storage-proofs-update --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --test-threads=1 + # + #test_ignored_release: + # runs-on: ubuntu-24.04 + # name: Test ignored in release mode + # steps: + # - uses: actions/checkout@v4 + # - name: Install required packages + # run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev + # + # - name: Download the proof params + # uses: ./.github/actions/proof-params-download + # with: + # github-token: ${{ secrets.GITHUB_TOKEN }} + # + # - name: Test ignored in release profile + # run: cargo test --release --workspace -- ignored --nocapture + # + #test_no_default_features: + # runs-on: ubuntu-24.04 + # name: Test without default features + # steps: + # - uses: actions/checkout@v4 + # - name: Install required packages + # run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev + # + # - name: Download the proof params + # uses: ./.github/actions/proof-params-download + # with: + # github-token: ${{ secrets.GITHUB_TOKEN }} + # + # - name: Test ignored in release profile + # run: cargo test --release --workspace --no-default-features + # + #build_gpu: + # runs-on: ubuntu-24.04 + # name: Build with various GPU support enabled + # steps: + # - uses: actions/checkout@v4 + # - name: Install required packages + # run: sudo apt install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev + # + # #- name: Setup tmate session + # # uses: mxschmitt/action-tmate@v3 + # # with: + # # limit-access-to-actor: true + # + # - name: Build with `cuda` and `opencl` features enabled + # run: cargo build --workspace --features cuda,opencl + # - name: Build with `cuda-supraseal` feature enabled + # run: CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo build --workspace --no-default-features --features cuda-supraseal + + test_gpu: runs-on: ubuntu-24.04 - name: Test in release mode + name: Test on GPUs strategy: matrix: - cargo-args: ['', '--features fixed-rows-to-discard'] + test-args: ['', '--ignored'] env: - # Run all tests with multicore-SDR enabled. - FIL_PROOFS_USE_MULTICORE_SDR: true - steps: - - uses: actions/checkout@v4 - - name: Install required packages - run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev - - - name: Download the proof params - uses: ./.github/actions/proof-params-download - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Run usual tests in release profile - run: cargo test --verbose --release --workspace --all-targets ${{ matrix.cargo-args }} -- --nocapture - - name: Run isolated PoRep tests in release profile - # Getting the cores does not work on GitHub Actions, hence skip that - # specific test. - run: cargo test --release -p storage-proofs-porep --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --skip stacked::vanilla::cores::tests::test_checkout_cores - - name: Run isolated update tests in release profile - # Some `storage-proofs-update` tests need to run sequentially due to - # their high memory usage. - run: cargo test --release -p storage-proofs-update --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --test-threads=1 - - test_ignored_release: - runs-on: ubuntu-24.04 - name: Test ignored in release mode - steps: - - uses: actions/checkout@v4 - - name: Install required packages - run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev - - - name: Download the proof params - uses: ./.github/actions/proof-params-download - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Test ignored in release profile - run: cargo test --release --workspace -- ignored --nocapture - - test_no_default_features: - runs-on: ubuntu-24.04 - name: Test without default features - steps: - - uses: actions/checkout@v4 - - name: Install required packages - run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev - - - name: Download the proof params - uses: ./.github/actions/proof-params-download - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Test ignored in release profile - run: cargo test --release --workspace --no-default-features - - - # TODO test GPU target - #- name: SupraSeal filecoin-proofs tests in release profile - # run: | - # cargo test -p filecoin-proofs --release --no-default-features --features cuda-supraseal -- --nocapture --test-threads=1 - # cargo test -p filecoin-proofs --release --no-default-features --features cuda-supraseal -- --nocapture --test-threads=1 --ignored - - build_gpu: - runs-on: ubuntu-24.04 - name: Build with various GPU support enabled + FIL_PROOFS_USE_GPU_COLUMN_BUILDER: true + FIL_PROOFS_USE_GPU_TREE_BUILDER: true + BELLMAN_CUDA_NVCC_ARGS: --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75 + NEPTUNE_CUDA_NVCC_ARGS: --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75 steps: - uses: actions/checkout@v4 - name: Install required packages run: sudo apt install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev - #- name: Setup tmate session - # uses: mxschmitt/action-tmate@v3 - # with: - # limit-access-to-actor: true - - - name: Build with `cuda` and `opencl` features enabled - run: cargo build --workspace --features cuda,opencl - - name: Build with `cuda-supraseal` feature enabled - run: CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo build --workspace --no-default-features --features cuda-supraseal + - name: Test with CUDA + run: cargo test --verbose --release --workspace --features cuda -- --nocapture ${{ matrix.test-args }} + - name: Test with `cuda-supraseal` + run: CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo test -p filecoin-proofs --release --no-default-features --features cuda-supraseal -- --nocapture --test-threads=1 ${{ matrix.test-args }} test_macos: runs-on: macos-latest name: Test in release mode on MacOS steps: - uses: actions/checkout@v4 - #- name: Install required packages - # run: sudo apt install --no-install-recommends --yes libhwloc-dev ocl-icd-opencl-dev + - name: Install required packages + run: HOMEBREW_NO_AUTO_UPDATE=1 brew install hwloc - name: Download the proof params uses: ./.github/actions/proof-params-download