Skip to content
Merged
Changes from all commits
Commits
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
99 changes: 99 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,104 @@
# Changelog

## [0.0.6](https://github.com/ccam80/cubie/compare/v0.0.5...v0.0.6) (2025-12-27)


### Features

* ``raw`` output type added to output device array copies with no processing ([22cef9f](https://github.com/ccam80/cubie/commit/22cef9ff02000d1e60a6576a3ef54a54918e6658))
* add time logging to cellml import ([#257](https://github.com/ccam80/cubie/issues/257)) ([6a220f8](https://github.com/ccam80/cubie/commit/6a220f8e78653f1727967b2092002f78ba41db71))
* Additional summary output metrics added ([#212](https://github.com/ccam80/cubie/issues/212)) ([daccbae](https://github.com/ccam80/cubie/commit/daccbae24945c081d75585a6052ec95a45885808))
* Buffer indexing, sizing, and locating now consolidated into a BufferSettings object ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* Buffer memory locations on GPU now user-selectable (between local and shared) ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* build_grid() surfaced to user API ([#338](https://github.com/ccam80/cubie/issues/338)) ([45cfa90](https://github.com/ccam80/cubie/commit/45cfa90a77f2892d29966bd856215c4b54475cc0))
* CellML to Cubie adapter layer added ([#221](https://github.com/ccam80/cubie/issues/221)) ([b8f448e](https://github.com/ccam80/cubie/commit/b8f448e532c6c5410fd06aa13a87531301468de3))
* CUDAFactory.update() now updates nested dicts and attrs classes ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* device buffers are now togglable (local, shared, local persistent) and managed centrally by buffer_registry ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* Global stores now have cache write-through hints, closes [#291](https://github.com/ccam80/cubie/issues/291) ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* load_from_cellml updated to parse complicated models ([#238](https://github.com/ccam80/cubie/issues/238)) ([50341f6](https://github.com/ccam80/cubie/commit/50341f62704f44f95f9e591635609e3c1e3bcd74))
* newton and linear solvers now fully-functional CUDAFactory subclasses ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* optional configuration parameters are no longer explicit in inits, they are filtered and collected in kwargs ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* py39 compatibility removed due to a Numba update. ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* Solver API now skips extra memory and grid-building work when possible ([#324](https://github.com/ccam80/cubie/issues/324)) ([5f225a0](https://github.com/ccam80/cubie/commit/5f225a023fc38d17e90a688f51a91d5b7c9db6ee))
* summary metrics combined (eg. extrema, [mean, std, rms]) to reduce buffer space ([daccbae](https://github.com/ccam80/cubie/commit/daccbae24945c081d75585a6052ec95a45885808))
* summary metrics now respect numerical precision ([daccbae](https://github.com/ccam80/cubie/commit/daccbae24945c081d75585a6052ec95a45885808))
* Sympy inputs from CellML now go Sympy->Sympy instead of through strings ([#259](https://github.com/ccam80/cubie/issues/259)) ([23e201d](https://github.com/ccam80/cubie/commit/23e201df19c0c607ee8bc4512f2b04147bdb29be))
* time logging added to parsing, codegen, and CUDA compilation ([#256](https://github.com/ccam80/cubie/issues/256)) ([5d8f75b](https://github.com/ccam80/cubie/commit/5d8f75b800ef59f02a049e037ac9333f03fdbefd))
* Trajectories with errors (nonzero status codes) now return NaNs in solveresult ([#333](https://github.com/ccam80/cubie/issues/333)) ([6068ebc](https://github.com/ccam80/cubie/commit/6068ebc68e0af517462744e8ead23eb57c8c578a))
* update() methods now unpack settings dicts provided to them ([#332](https://github.com/ccam80/cubie/issues/332)) ([f016e4d](https://github.com/ccam80/cubie/commit/f016e4dfab6c8b22b759f363f68ad83380aba940))
* Warp-friendly FSAL caching implented, redundant accumulation removed ([#211](https://github.com/ccam80/cubie/issues/211)) ([96a9dd0](https://github.com/ccam80/cubie/commit/96a9dd00fc35e9d65fede8ade7f6579ec3e896e3))


### Bug Fixes

* _ensure_context() method added to avoid segfaults in CI ([#265](https://github.com/ccam80/cubie/issues/265)) ([60acecc](https://github.com/ccam80/cubie/commit/60acecccb787913c0837d072f40d9e51e347fd3a))
* `shift` value in standard deviation calcs now updates after each save. ([073d406](https://github.com/ccam80/cubie/commit/073d406f4578cff67db5d223da607e5ecd437138))
* Adaptive step controllers now sum errors correctly, closes [#302](https://github.com/ccam80/cubie/issues/302) ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* add set_stride_order method for access from solver ([e4b80d3](https://github.com/ccam80/cubie/commit/e4b80d3985366c9b1f2ce2f5da7baac3c4210452))
* All algorithms now exit when the next save time is > end time ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* buffer aliasing logic now child-location-agnostic ([377ad10](https://github.com/ccam80/cubie/commit/377ad10c4818d4faeb9c1e8cb6ecbbb3a871ead5))
* Compile-timing kernels now use device arrays ([16bf1d6](https://github.com/ccam80/cubie/commit/16bf1d62953596610e628d2677cc23ef5c6773d8))
* consolidate timing parameter sets for fewer fixture builds ([#350](https://github.com/ccam80/cubie/issues/350)) ([4698e9e](https://github.com/ccam80/cubie/commit/4698e9e78bbba37c0a9a28e06832b160c11efad0))
* contiguous arrays now marked as such for the compiler to do its grim work ([#276](https://github.com/ccam80/cubie/issues/276)) ([fe97291](https://github.com/ccam80/cubie/commit/fe972918a79518dc407750a7be552182291701ed))
* Controller-algorithm compatibility enforced ([4ab0230](https://github.com/ccam80/cubie/commit/4ab0230c9261e3857f099167db2735db6a6c2955))
* correct FIRK algorithm implementation ([#408](https://github.com/ccam80/cubie/issues/408)) ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* correct fsal warp-vote implementation ([60448f1](https://github.com/ccam80/cubie/commit/60448f10b3976533152450fa3d2b56ebae0af337))
* Counters array added to ERK signature ([99db833](https://github.com/ccam80/cubie/commit/99db8337e75be96ed69fe582b230264e1e2ea425))
* CUDA-breaking simsafe 'local' module adapter removed ([d205979](https://github.com/ccam80/cubie/commit/d205979d9894057a1787ac4b0307eca8ea21ee9c))
* CUDAFactories now only precompile if timelogging is on ([836da2a](https://github.com/ccam80/cubie/commit/836da2a417d197bbfdc06ad8188b991ae184ca78))
* dead code and duplications pruned from codegenned device functions ([#266](https://github.com/ccam80/cubie/issues/266)) ([de0dda8](https://github.com/ccam80/cubie/commit/de0dda8f14a4c50ec1c1794c01634907bd87d4c7))
* default precision types have been removed from all but entry points ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* fast path through batchgridbuilder for arrays provided verbatim added ([080ab66](https://github.com/ccam80/cubie/commit/080ab66d7fc8b4a6cd9e4291392e773c44152175))
* FIRK no longer does an extra f(x) calculation after performing its nonlinear solve ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* Fixed steppers now use a slower but more sensible save time incrementing technique ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* FSAL warp test now doesn't break everything ([2e68692](https://github.com/ccam80/cubie/commit/2e68692da71f643aa725ed0a1ad8c10a8c2b980a))
* gustafsson controller prev error ratio flipped, various test edits for GPU runs ([3e04438](https://github.com/ccam80/cubie/commit/3e04438881a55ba03306b6f112e35c2d3e3400b5))
* host arrays now pinned to facilitate asynchronous transfers ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* infinite loops in adaptive steppers under dummy compile now finite ([b0547fd](https://github.com/ccam80/cubie/commit/b0547fdcc0c379c84af10375ceedf479da67dc4d))
* lineinfo toggle for CUDA compilation now conditional on CUDASIM status ([#280](https://github.com/ccam80/cubie/issues/280)) ([6d5bf57](https://github.com/ccam80/cubie/commit/6d5bf57a6a381379e9e22f9c5901326051dd5835))
* Loop iterators now 32-bit ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* loops now accumulate time in f64, no longer get stuck when dt < 1e-7 * time ([#281](https://github.com/ccam80/cubie/issues/281)) ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb)), closes [#272](https://github.com/ccam80/cubie/issues/272)
* make shape validator np.int compatible in BaseArrayManager.py ([e77d800](https://github.com/ccam80/cubie/commit/e77d8008de8c1cecd715df6c29bf79794c10bd6b))
* make stage_increment buffer persistent in rosenbrock ([#411](https://github.com/ccam80/cubie/issues/411)) ([4b0b6bc](https://github.com/ccam80/cubie/commit/4b0b6bc2102bf7af5f4bee2877a0bce5c0b5a860))
* Missing iteration_counters type added to device signature in BatchSolverKernel ([6eefd67](https://github.com/ccam80/cubie/commit/6eefd67140767d8b452b99fbdcf8d19bf7e91edb))
* move stream sync function to after chunked queue ([e4b80d3](https://github.com/ccam80/cubie/commit/e4b80d3985366c9b1f2ce2f5da7baac3c4210452))
* n_saves calculation now includes start time, closes [#282](https://github.com/ccam80/cubie/issues/282) ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* numeric literals now wrapped with precision() or int32 in CUDA code generation ([#258](https://github.com/ccam80/cubie/issues/258)) ([21850f2](https://github.com/ccam80/cubie/commit/21850f293b6743e2fe677b4fccc85129f86cdbca))
* partially update cuda signatures with contiguity ([8754661](https://github.com/ccam80/cubie/commit/87546613825922befad0c2145e28807b04ab62d8))
* reduced nonlinear solver memory footprint (3n → 2n buffers) ([#224](https://github.com/ccam80/cubie/issues/224)) ([c4d95d4](https://github.com/ccam80/cubie/commit/c4d95d419f72ce12e1242767fd9bd7056e81ce5d))
* Remaining hard-coded buffers now managed by buffer_registry ([#412](https://github.com/ccam80/cubie/issues/412)) ([92e9313](https://github.com/ccam80/cubie/commit/92e93139a54c6e4e290bc8a6b4e0de85d2890a24))
* remove redundant overwrite of initial values host array until [#76](https://github.com/ccam80/cubie/issues/76) is implemented in device code ([bc39fbb](https://github.com/ccam80/cubie/commit/bc39fbbc52ea3475cbe2b8581a59f8ae6c7fdfc9))
* Replace PEP 604 union syntax with Union[] for Python 3.8 compatibility ([#236](https://github.com/ccam80/cubie/issues/236)) ([ea1e1fb](https://github.com/ccam80/cubie/commit/ea1e1fb89db14e798d0d12a1ed2e68f6b114c81a))
* shared and local memory requirement names now consistent across package. ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* size-1 runs no longer break Cubie (closes [#142](https://github.com/ccam80/cubie/issues/142)) ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* steps now own solvers, and newton_krylov solver now owns it's internal krylov solver ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* Tableau-driven algorithm loop indexing reorganised to give the compiler an easier job ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* tsit5 tableau corrected ([480df1a](https://github.com/ccam80/cubie/commit/480df1aed16fee4be48781315afddb44bfbfefeb))
* types corrected in all step algorithms and solvers to run in 'precision' only ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* update all-in-one rosenbrock function to use updated prod format ([fa32a16](https://github.com/ccam80/cubie/commit/fa32a1607824a2342dcb46649b7f1d3ca8cbd86f))
* update placeholder parameters to not hide exception ([8754661](https://github.com/ccam80/cubie/commit/87546613825922befad0c2145e28807b04ab62d8))
* updating a solverkernel with new outputtypes now correctly changes buffer and output array sizes. ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* Use a warp-vote for FSAL caching, otherwise there is no benefit and potential divergence ([d0334a2](https://github.com/ccam80/cubie/commit/d0334a2841518467f2b794fa7a325861b7e9471a))
* Vern7 tableau corrected to match source ([e6b900a](https://github.com/ccam80/cubie/commit/e6b900a0452926a953709e1cf65f89fc147a1c97))


### Performance Improvements

* DIRK function profiled and streamlined ([#355](https://github.com/ccam80/cubie/issues/355)) ([fd1f639](https://github.com/ccam80/cubie/commit/fd1f639b1394ce8d1f6068d5cc846daea560a2d4))
* firk rewirked for a large speedup ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* newton and linear solver branching and predication removed for a reasonable speedup ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))
* rosenbrock function reworked for a moderate speedup ([39107a9](https://github.com/ccam80/cubie/commit/39107a925d63e4f708b3e18ef198cb75ead52262))


### Documentation

* cubie_internal_structure.md filled with agent reference ([#177](https://github.com/ccam80/cubie/issues/177)) ([02738e0](https://github.com/ccam80/cubie/commit/02738e06f7343910e292721d43cdc0ec127adf4e))


### Miscellaneous Chores

* Release 0.0.6 ([baa2523](https://github.com/ccam80/cubie/commit/baa2523e21c4278dd2c88b1268b689f6ef8a6bac))

## [Unreleased]

### Features
Expand Down