Skip to content

v0.3.4 — Smaller wheel: every CUDA kernel compiled once

Choose a tag to compare

@GeophyAI GeophyAI released this 02 Oct 17:31
· 114 commits to dev since this release

sweep-solver 0.3.4

A packaging release on top of 0.3.3: the same solver in less than half the download. Upgrade with pip install -U sweep-solver; sweepx 0.3.4 requires it, so pip install -U sweepx brings it too.

Changed

  • Smaller wheel: every CUDA kernel is compiled once. (#105)
    • Size: the wheel drops from 93.1 to 42.4 MB, and the installed cores from 157.3 / 189.9 MB (cu12 / cu13) to 70.8 / 85.8 MB.
    • Cause: a kernel template launched from a header was instantiated in every translation unit that included it -- an equation's forward and backward units, and every equation sharing a kernel family.
    • Fix: each family is now instantiated once, in its kernels.cu, and launched through a table of its stencil-order specializations.
    • Results are unchanged. The machine code of every kernel on every architecture is byte-identical to 0.3.3's. Records and gradients match 0.3.3 bitwise wherever 0.3.3 reproduces them run to run.

The CUDA cores are rebuilt (manylinux_2_28, ABI 2): cu12 67973271, cu13 efe981db.

Full changelog: v0.3.3...v0.3.4