Bump BINARY_VERSION to v1.4.1 (sm_120 / Blackwell)#739
Conversation
Consolidates the per-platform pins (v1.3.0, v1.3.1, v0.3.0rc3) into a single BINARY_VERSION used by all five mirror URLs. Picks up: - CUDA: sm_75;80;86;87;89;90;90a;100;120 (closes #656, #622 once verified on Blackwell hardware) - macOS OMP: linked against libhdf5.320 — current Homebrew ABI (likely closes #661 pending current-Homebrew smoke test) Also slots v0.6.2 (this release) into plans/release-strategy.md and bumps the downstream version slots, plus adds a v0.6.5 entry for the Intel Mac universal2 follow-up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The v1.4.0 k-wave-omp-darwin binary is Mach-O arm64 only. Without a guard, Intel Mac users would silently download a binary they can't execute and hit "exec format error" at runtime. On Intel Mac: emit a RuntimeWarning at import explaining the constraint, and skip the darwin/omp URL so we don't waste bandwidth downloading a useless binary. backend="python" continues to work. Universal2 (arm64+x86_64) coverage is tracked for v0.6.5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Addressed both blockers found in CI:
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #739 +/- ##
==========================================
- Coverage 75.63% 75.55% -0.08%
==========================================
Files 57 57
Lines 8180 8187 +7
Branches 1597 1598 +1
==========================================
- Hits 6187 6186 -1
- Misses 1373 1380 +7
- Partials 620 621 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
The v1.4.0 OMP-windows build switched compiler/OpenMP/FFT stack (Intel
compiler + Intel OpenMP + ? → MSVC + VCOMP + FFTW) and needs runtime
DLLs that aren't packaged with the release:
needed but not shipped: fftw3f.dll, VCOMP140.DLL, VCRUNTIME140_1.dll
shipped but unneeded: cufft64_10.dll, libiomp5md.dll, libmmd.dll,
svml_dispmd.dll
Windows OMP doesn't benefit from the v1.4.0 Blackwell changes anyway
(CUDA-only), so route it back to the working v1.3.0 binary until the
build is fixed in kspacefirstorder-unified#14. CUDA-windows, all linux
binaries, and darwin OMP continue to use v1.4.0.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@greptileai review |
|
Verified the Downloaded the binary directly from the Also ran a full 3D simulation (64x64x64, heterogeneous medium) via GPU detected correctly, Will also run the verification on the RTX 5070 Ti (the original hardware from #656) once available. |
…ries # Conflicts: # kwave/__init__.py
Linux + macOS pull from the rebuilt v1.4.1 mirror releases: - Linux binaries are now statically linked (CUDA + cufft + FFTW + libstdc++) and built on ubuntu-22.04 (glibc 2.35 floor). Restores the plug-and-play property the legacy Makefile build provided; permanent regression guard via check-linux-binary-deps.sh in unified. - Darwin binary picks up the fast-math fix (k-wave-omp-darwin#4) and the libhdf5.320 ABI refresh (closes #661). Windows stays pinned to v1.3.0 for both OMP and CUDA. v1.4.x windows releases don't bundle their runtime DLLs (different stacks for both flavors). The v1.4.x OMP DLL bundling is fixed in kspacefirstorder-unified#14 (awaiting production validation); CUDA DLL bundling is tracked separately in kspacefirstorder-unified#17. Pin gets flipped in v0.6.3 once both windows flavors are validated. Picks up via this bump: - #656, #622 (Blackwell sm_120 on Linux + macOS) - #661 (macOS HDF5 ABI) - kspacefirstorder-unified#15 (Linux binary regression) Closes #738
- v0.6.2 section rewritten as retrospective: v1.4.1 (not v1.4.0), Linux static linking, darwin fast-math fix, Windows pinned to v1.3.0 - v0.6.3 picks up the Windows pin flips (OMP validation + CUDA DLL packaging fix per unified#17) as carry-over items - New "Binary distribution maintenance" section captures the version-less pipeline work: mirror consolidation (unified#13) + Windows static linking (v1.5 follow-up)
Summary
BINARY_VERSIONtov1.4.1— the rebuilt static-linked Linux binaries + fast-math-fixed darwin binary published from kspacefirstorder-unified#16.__version__to0.6.2.WINDOWS_OMP_VERSION="v1.3.0"pin — the new v1.4.1 OMP-windows release ships its own DLL bundle but the consumer flip is a discrete v0.6.3 one-liner once we've validated the bundle in production.Picked up via this version bump
75;80;86;87;89;90;90a;100;120. Validated by @aconesac on RTX 5060 Laptop (sm_120, CUDA 13) and via Colab T4 (sm_75, CUDA 13.0 runtime).libhdf5.320.dylib. Confirmed on M1 install (otool -L).download_binariesdoesn't set the exec bit on Linux/macOS (fixed independently in #741, merged to master and pulled in via merge).check-linux-binary-deps.sh.Validation evidence
CUDA backend OK shape: (302,), max abs: 0.067452otool -Lconfirmslibhdf5.320.dyliblinkage--version+ 3D simulation,CUDA code arch: 12.0Outstanding
release-on-tag.ymlpublish of v1.4.1 to the mirror repos before final CI run on this PR — until then the urlretrieve inimport kwave404s against the not-yet-published assets.🤖 Generated with Claude Code
Greptile Summary
This PR bumps
BINARY_VERSIONtov1.4.1(adding NVIDIA Blackwell sm_120 support and a macOS HDF5 ABI refresh) and increments__version__to0.6.2. Windows binaries are intentionally held atv1.3.0via newWINDOWS_OMP_VERSION/WINDOWS_CUDA_VERSIONpins while runtime DLL bundling for the new compiler stack is validated._darwin_unsupportedis set whenplatform.machine() != \"arm64\"on macOS; aRuntimeWarningis emitted and the darwin OMP download URL is replaced with an empty list, preventing a silentexec format errorat binary invocation.v1.3.1, now tracksBINARY_VERSIONso both Linux CUDA and OMP move together.Confidence Score: 5/5
Safe to merge — both changed files are narrow and the logic is correct.
Both files are narrow: init.py touches only constants and the darwin download guard, and release-strategy.md is documentation. The Windows pin separation avoids regressing existing users, the Linux CUDA URL correctly moves from a stale v1.3.1 hardcode to BINARY_VERSION, and the arm64 check prevents a silent crash on Intel Macs. No logic paths are deleted or restructured.
No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[import kwave] --> B{PLATFORM} B -- linux --> C[BINARY_VERSION v1.4.1] B -- darwin --> D{platform.machine arm64?} B -- windows --> E[WINDOWS_OMP v1.3.0 / WINDOWS_CUDA v1.3.0] B -- other --> FAIL[raise NotImplementedError] D -- yes --> G[darwin omp URL set to v1.4.1 release] D -- no --> H[Emit RuntimeWarning / darwin omp URL is empty list] C --> I[Linux OMP + CUDA URLs both use v1.4.1] E --> J[Windows OMP exe + DLLs from v1.3.0 / CUDA exe from v1.3.0] I --> K{binaries_present?} G --> K H --> K2[binaries_present returns True / no download] J --> K K -- yes --> DONE[import complete] K -- no --> L[install_binaries / download + chmod + write metadata] L --> DONE K2 --> DONEReviews (7): Last reviewed commit: "Update release strategy with v0.6.2 retr..." | Re-trigger Greptile