diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ffe4327a4..9d367d666 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -119,18 +119,11 @@ jobs: toolchain: nightly-2025-01-02 - name: Run benchmark run: | - sudo apt update && sudo apt install -y gnuplot + cargo install cargo-criterion ./scripts/bench.sh | tee output.txt - pwd - ls -l + echo "######################" cat output.txt - - - name: Download previous benchmark data - uses: actions/cache@v4 - with: - path: ./cache - key: ${{ runner.os }}-${{github.event.pull_request.base.ref}}-benchmark - + echo "######################" - name: Store benchmark result uses: benchmark-action/github-action-benchmark@v1 with: @@ -142,6 +135,12 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} comment-on-alert: true alert-comment-cc-users: "@shaharsamocha7" + - name: Download previous benchmark data + uses: actions/cache@v4 + with: + path: ./cache + key: ${{ runner.os }}-benchmark + run-avx512-bench-parallel: runs-on: avx @@ -152,13 +151,13 @@ jobs: toolchain: nightly-2025-01-02 - name: Run benchmark run: | - apt update && apt install -y gnuplot + cargo install cargo-criterion ./scripts/bench.sh --features="parallel" | tee output.txt - name: Download previous benchmark data uses: actions/cache@v4 with: path: ./cache - key: ${{ runner.os }}-${{github.event.pull_request.base.ref}}-benchmark + key: ${{ runner.os }}-benchmark - name: Store benchmark result uses: benchmark-action/github-action-benchmark@v1 with: diff --git a/scripts/bench.sh b/scripts/bench.sh index 0dfc6b9dc..4c9ae026c 100755 --- a/scripts/bench.sh +++ b/scripts/bench.sh @@ -2,4 +2,4 @@ # Can be used as a drop in replacement for `cargo bench`. # For example, `./scripts/bench.sh` will run all benchmarks. # or `./scripts/bench.sh M31` will run only the M31 benchmarks. -RUSTFLAGS="-Awarnings -C target-cpu=native -C opt-level=3" cargo bench $@ +RUSTFLAGS="-Awarnings -C target-cpu=native -C target-feature=+avx512f -C opt-level=3" cargo criterion --output-format bencher $@