Skip to content

Releases: BASE-Laboratory/OpenImpala

v4.2.6

26 Apr 20:39
e532cbe

Choose a tag to compare

What's Changed

  • fix AMReX 25.03 CUDA archs export with reduced arch list by @jameslehoux in #264

Full Changelog: v4.2.5...v4.2.6

What's Changed

  • fix AMReX 25.03 CUDA archs export with reduced arch list by @jameslehoux in #264

Full Changelog: v4.2.5...v4.2.6

v4.2.5

26 Apr 09:04
eba3e11

Choose a tag to compare

What's Changed

  • strip _core.so explicitly to fight 3 GB GPU wheel bloat by @jameslehoux in #263

Full Changelog: v4.2.4...v4.2.5

What's Changed

  • strip _core.so explicitly to fight 3 GB GPU wheel bloat by @jameslehoux in #263

Full Changelog: v4.2.4...v4.2.5

v4.2.4

24 Apr 08:04
c76d27d

Choose a tag to compare

What's Changed

Full Changelog: v4.2.3...v4.2.4

What's Changed

Full Changelog: v4.2.3...v4.2.4

v4.2.3

23 Apr 17:02
7b0136f

Choose a tag to compare

What's Changed

  • fix GPU wheel: install upstream NVTX3 headers for CUDA 12 compat by @jameslehoux in #261

Full Changelog: v4.2.2...v4.2.3

What's Changed

  • fix GPU wheel: install upstream NVTX3 headers for CUDA 12 compat by @jameslehoux in #261

Full Changelog: v4.2.2...v4.2.3

v4.2.2

21 Apr 16:11
b267d1c

Choose a tag to compare

What's Changed

  • fix GPU wheel: patch AMReX C++ sources for CUDA 12 NVTX header by @jameslehoux in #260

Full Changelog: v4.2.1...v4.2.2

What's Changed

  • fix GPU wheel: patch AMReX C++ sources for CUDA 12 NVTX header by @jameslehoux in #260

Full Changelog: v4.2.1...v4.2.2

v4.2.1

21 Apr 11:41
8d155b7

Choose a tag to compare

What's Changed

Full Changelog: v4.2.0...v4.2.1

What's Changed

Full Changelog: v4.2.0...v4.2.1

v4.2.0

21 Apr 07:16
8efa350

Choose a tag to compare

What's Changed

What's Changed

Full Changelog: v4.1.2...v4.2.0

v4.1.2

09 Apr 08:06
5f3ff4a

Choose a tag to compare

What's Changed

  • Fix CPU wheel build: use manylinux_2_28 image and powertools repo by @jameslehoux in #249

Full Changelog: v4.1.1...v4.1.2

What's Changed

  • Fix CPU wheel build: use manylinux_2_28 image and powertools repo by @jameslehoux in #249

Full Changelog: v4.1.1...v4.1.2

v4.1.1

09 Apr 07:59
e26223c

Choose a tag to compare

What's Changed

  • Fix CuPy solver tolerance parameter and update tutorial installations by @jameslehoux in #246
  • Fix T4 GPU TypeError in CuPy CG solver and Tutorial 2, 4 and 7 CPU install by @jameslehoux in #247
  • Build compiled CPU wheels with C++ bindings on PyPI by @jameslehoux in #248

Full Changelog: v4.1.0...v4.1.1

What's Changed

  • Fix CuPy solver tolerance parameter and update tutorial installations by @jameslehoux in #246
  • Fix T4 GPU TypeError in CuPy CG solver and Tutorial 2, 4 and 7 CPU install by @jameslehoux in #247
  • Build compiled CPU wheels with C++ bindings on PyPI by @jameslehoux in #248

Full Changelog: v4.1.0...v4.1.1

v4.1.0

04 Apr 08:40
93b0314

Choose a tag to compare

v4.1.0 — Pure-Python Solver Backend

Highlights

pip install openimpala now just works — no compiled extensions, no CUDA toolkit, no MPI required. GPU acceleration is automatic when CuPy is installed.

New Features

  • Pure-Python solver backend (openimpala/_solver.py) — a drop-in replacement for the C++ HYPRE solver using SciPy/CuPy sparse matrices
    • 7-point stencil Laplacian with harmonic-mean face coefficients (same algorithm as C++)
    • Dirichlet BCs at inlet/outlet, zero-flux Neumann on sides
    • Sparse CG solve: CuPy on GPU (auto-detected), SciPy on CPU
    • Flood-fill percolation check via scipy.ndimage.label
    • Validated against all analytical benchmarks (uniform block, series/parallel layers)
  • Automatic backend detectionSession() transparently selects C++ or Python backend based on what's available
  • Two clean install paths:
    • pip install openimpala — pure Python, works everywhere (Colab, laptops, CI)
    • pip install openimpala-cuda — compiled C++ HYPRE backend for HPC clusters

Bug Fixes

  • Fix GPU wheel CUDA device linking — added CUDA_SEPARABLE_COMPILATION and CUDA_RESOLVE_DEVICE_SYMBOLS to resolve __cudaRegisterLinkedBinary_* undefined symbols in _core.so
  • Fix MLMG solver — reverted boundary coefficient and PFMG stability changes to match master (multiple commits)
  • Fix benchmark scripts — corrected PYTHONPATH and solver list in benchmark runners

Build & Packaging

  • CPU wheel workflow replaced with pure-Python python -m build (no CMake, no cibuildwheel)
  • New python/pyproject.toml for setuptools-based pure-Python wheel build
  • scipy>=1.7 added as a core dependency
  • _solver.py added to CMake install list for compiled wheels

Documentation

  • All 7 tutorials updated: install cell is now !pip install openimpala [extras]
  • notebooks/profiling_and_tuning.ipynb simplified install
  • README, getting-started, gpu.md, index.rst updated for new install model
  • paper.md updated distribution description

What's Changed

  • Fix benchmark script not found inside Apptainer container by @jameslehoux in #235
  • Fix benchmark PYTHONPATH: use python/ not cmake_build_bench/ by @jameslehoux in #236
  • Fix MLMG boundary coefficients and improve PFMG stability by @jameslehoux in #237
  • Fix MLMG tortuosity: pin boundary cells to match HYPRE convention by @jameslehoux in #238
  • Fix TortuosityMLMG build: add missing cell_active constant by @jameslehoux in #239
  • Fix MLMG: adjust face Dirichlet values to match HYPRE cell-centre BCs by @jameslehoux in #240
  • Revert MLMG and PFMG solver changes; fix GPU wheel install by @jameslehoux in #241
  • Add CUDA runtime packages and fix GPU wheel build issues by @jameslehoux in #242
  • Fix benchmark script path and improve solver configurations by @jameslehoux in #243
  • Add pure-Python solver backend for simplified installation by @jameslehoux in #245

Full Changelog: v4.0.6...v4.1.0