Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
72c15f3
feat: Blase evaluation via Namespace
bollu Sep 22, 2025
1886069
chore: change checkout action to be the correct namespace action
bollu Sep 24, 2025
4cd5312
chore: fix URL
bollu Sep 24, 2025
273f104
chore; target master
bollu Sep 24, 2025
4206abb
chore: add NS evaluation running script
bollu Sep 24, 2025
bff05b0
chore: not sure where checkout clones stuff
bollu Sep 24, 2025
704cfa3
chore: curl uv
bollu Sep 24, 2025
86c9002
chore: use run-on-host to build with docker
bollu Sep 24, 2025
d8dc3a0
chore: ignore snakemake
bollu Sep 24, 2025
cd6b321
chore: fix paths
bollu Sep 24, 2025
ba8e196
chore: update
bollu Sep 26, 2025
dec9368
chore: fix yaml
bollu Sep 26, 2025
f931e69
chore: fix yaml 2
bollu Sep 26, 2025
d288737
chore: fix yaml 3
bollu Sep 26, 2025
b305539
chore: remove other GH action files so that this PR only spends time …
bollu Sep 26, 2025
b1eae4f
chore: remove other GH action files so that this PR only spends time …
bollu Sep 26, 2025
5d1cb00
Merge remote-tracking branch 'origin/main' into blase-ns-evaluation
bollu Sep 26, 2025
374c42c
chore: rename to cluster-scale eval to be clear
bollu Sep 26, 2025
51a74a7
chore: lake build before cache lake
bollu Sep 26, 2025
a752449
chore: run lake cache before calling lake build, d'oh
bollu Sep 26, 2025
72701bc
chore: cache venv, fix sed
bollu Sep 26, 2025
2762848
chore: fix upload
bollu Sep 26, 2025
c2721fe
chore: fix version of download action
bollu Sep 26, 2025
45e2bfc
chore: gotta figure paths out
bollu Sep 26, 2025
c2ad308
chore: pass nbatch
bollu Sep 26, 2025
ad783ae
chore: switch to using full config, not tiny config
bollu Sep 26, 2025
73c6426
chore: add comment on how this can be improved
bollu Sep 26, 2025
3485d61
Merge remote-tracking branch 'origin/main' into blase-ns-evaluation
bollu Oct 7, 2025
06076a9
chore: update runner
bollu Oct 7, 2025
f0c7795
chore: bring back stuff
bollu Oct 7, 2025
a8169bc
chore: add cluster runner
bollu Oct 7, 2025
771292e
chore: add abstracter
bollu Oct 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
232 changes: 232 additions & 0 deletions .github/workflows/cluster-scale-multi-width-ns.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
# This can be improved by building a docker image of the deps:
# https://github.com/opencompl/lean-mlir/blob/0048c677755a4544b8e35904549f20d8b48939de/.github/workflows/docker.yml
# and then running once with that image.
name: YYY Cluster-Scale Multi-Width (NS) YYY


on:
issue_comment:
types: [created]

permissions:
contents: write
id-token: write

jobs:
run-batch:
if: github.event.issue.pull_request != null && startsWith(github.event.comment.body, "!blase")

name: Batch Run
runs-on:
- nscloud-ubuntu-24.04-amd64-16x32-with-cache
- nscloud-cache-tag-my-custom-cache
- nscloud-cache-size-100gb
- nscloud-git-mirror-5gb
- nscloud-container-image-cache
- nscloud-runner-tool-cache-20gb

strategy:
matrix:
ibatch: [0, 1, 2]
nbatch: [3]

steps:
- name: Setup Ephemeral NS Cluster
uses: namespacelabs/nscloud-setup@v0

# https://namespace.so/docs/reference/github-actions/nscloud-checkout-action
- name: Checkout Evaluation Repisitory via NS
uses: namespacelabs/nscloud-checkout-action@v7
with:
repository: "opencompl/evaluation-multi-width-bv"
ref: "master"
token: ${{ secrets.NSCLOUD_GITHUB_TOKEN }}

- name: Setup Ubuntu Dependencies
run: |
echo "set man-db/auto-update false" | sudo debconf-communicate && sudo dpkg-reconfigure man-db
sudo apt-get update
sudo apt-get install -y build-essential curl git python3 python3-pip unzip git gettext

- name: Setup UV
run: |
# Install uv (assuming it's Python-based, via pip)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Make uv available in all shells
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Cache `.elan` folders
id: cache-lean
uses: actions/cache@v4
with:
path: |
~/.elan
key: ${{ runner.os }}-elan-${{ hashFiles('leanharness/lean-toolchain') }}
restore-keys: |
${{ runner.os }}-elan-${{ hashFiles('leanharness/lean-toolchain') }}

- name: Setup Elan
run: |
# Install elan (Lean version manager)
set -o pipefail
curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh -s -- --default-toolchain none -y

- name: Make lake available
run: |
echo "$HOME/.elan/bin" >> $GITHUB_PATH

- name: Cache lake.
id: cache-lake
uses: actions/cache@v4
with:
path: |
leanharness/.lake
key: ${{ runner.os }}-lake-${{ hashFiles('leanharness/lake-manifest.json') }}
restore-keys: |
${{ runner.os }}-lake-${{ hashFiles('leanharness/lake-manifest.json') }}

- name: Lake Build
run: |
pushd leanharness; lake build; popd

- name: Unzip goals
run: |
unzip -o goals.zip

- name: Cache Venv
id: cache-venv
uses: actions/cache@v4
with:
path: |
.venv
key: ${{ runner.os }}-venv-${{ hashFiles('uv.lock', 'pyproject.toml') }}
restore-keys: |
${{ runner.os }}-venv-${{ hashFiles('uv.lock', 'pyproject.toml') }}

- name: Run Minibatch
run: |
ls
pwd
set -o pipefail
curl -LsSf https://astral.sh/uv/install.sh | sh
cp config.full.yaml config.yaml
uv tool run snakemake run_minibatch --cores all --config nbatch=${{matrix.nbatch}} ibatch=${{matrix.ibatch}}

- name: Upload Data As Artifact
uses: namespace-actions/upload-artifact@v1
with:
name: ${{ github.run_id }}-ibatch-${{matrix.ibatch}}
retention-days: 1
path: |
autogenerated/*.jsonl
compression-level: 9



generate-plots:
needs: run-batch
name: Generate Reports
runs-on:
- nscloud-ubuntu-24.04-amd64-16x32-with-cache
- nscloud-cache-tag-my-custom-cache
- nscloud-cache-size-100gb
- nscloud-git-mirror-5gb
- nscloud-container-image-cache
- nscloud-runner-tool-cache-20gb
strategy:
matrix:
nbatch: [3]

steps:
- name: Setup Ephemeral NS Cluster
uses: namespacelabs/nscloud-setup@v0

- name: Checkout Evaluation Repisitory via NS
uses: namespacelabs/nscloud-checkout-action@v7
with:
repository: "opencompl/evaluation-multi-width-bv"
ref: "master"
token: ${{ secrets.NSCLOUD_GITHUB_TOKEN }}

- name: Download Data From Artifact
uses: namespace-actions/download-artifact@v1
with:
path: autogenerated/
pattern: ${{ github.run_id }}-ibatch-*
merge-multiple: true

- name: Setup Ubuntu Dependencies
run: |
echo "set man-db/auto-update false" | sudo debconf-communicate && sudo dpkg-reconfigure man-db
sudo apt-get update
sudo apt-get install -y build-essential curl git python3 python3-pip unzip git gettext

- name: Setup UV
run: |
# Install uv (assuming it's Python-based, via pip)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Make uv available in all shells
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Cache `.elan` folders
id: cache-lean
uses: actions/cache@v4
with:
path: |
~/.elan
key: ${{ runner.os }}-elan-${{ hashFiles('leanharness/lean-toolchain') }}
restore-keys: |
${{ runner.os }}-elan-${{ hashFiles('leanharness/lean-toolchain') }}

- name: Setup Elan
run: |
# Install elan (Lean version manager)
set -o pipefail
curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh -s -- --default-toolchain none -y

- name: Cache lake.
id: cache-lake
uses: actions/cache@v4
with:
path: |
leanharness/.lake
key: ${{ runner.os }}-lake-${{ hashFiles('leanharness/lake-manifest.json') }}
restore-keys: |
${{ runner.os }}-lake-${{ hashFiles('leanharness/lake-manifest.json') }}

- name: Make lake available
run: |
echo "$HOME/.elan/bin" >> $GITHUB_PATH

- name: Lake Build
run: |
pushd leanharness; lake build; popd


- name: Unzip goals
run: |
unzip -o goals.zip

- name: Cache Venv
id: cache-venv
uses: actions/cache@v4
with:
path: |
.venv
key: ${{ runner.os }}-venv-${{ hashFiles('uv.lock', 'pyproject.toml') }}
restore-keys: |
${{ runner.os }}-venv-${{ hashFiles('uv.lock', 'pyproject.toml') }}


- name: Run Plotting Script
run: |
find autogenerated/

cp config.full.yaml config.yaml
sed -i 's@upload: False@upload: True@g' config.yaml
# only allow rules to collate 'jsonl' and to plot.
uv tool run snakemake all --cores all \
--config nbatch=${{matrix.nbatch}} \
--allowed-rules plot epoch_jsonl --cores all
2 changes: 2 additions & 0 deletions Blase/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ For stable releases, please change the `rev` to the desired version tag.

#### Algorithms Improvements TODO

- [ ] Write a tactic that takes a goal state with BVs and generalizes them to an arbitrary width.
Call this `bv_abstract`.
- [ ] Add evaluation from Sam Coward.
- [ ] Add evaluation from Lean's bitvector suite.
- [ ] Add right shift and division support by eliminating into left-shift and multiplication.
Expand Down
Loading