heyoka 2.0.0 #347
bluescarni
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This new release of heyoka focuses on several LLVM-related improvements and fixes.
In-memory cache
heyoka now features an in-memory cache which avoids re-optimisation and re-compilation of code that was already optimised and compiled during program execution. See this tutorial for a detailed explanation and a couple of examples where this new feature leads to noticeable speedups.
Support for the SLP vectoriser
heyoka can now optionally take advantage of the LLVM SLP vectoriser. The vectoriser can be enabled via the boolean keyword argument
kw::slp_vectorize
(false
by default), which can be passed to any heyoka function/class that uses JIT compilation (e.g., the Taylor adaptive integrators).Although the SLP vectoriser can lead to noticeable speedups in the performance of JIT-compiled code, it is disabled by default because it can considerably increase the cost of JIT compilation.
Automatic vectorisation of math functions
On recent LLVM versions, heyoka has gained the ability to automatically vectorise scalar calls to math functions. This includes not only math functions implemented as LLVM builtins (e.g.,
sqrt
,sin/cos
, etc.), but also external math functions from the C++ math library.This feature is automatically enabled on recent LLVM versions when SLP vectorisation is turned on and if heyoka was built with support for the SLEEF library.
Dropping support for LLVM 10, support LLVM 17
This release drops support for LLVM 10 and enables support for the freshly-released LLVM 17.
New CR3BP model
An implementation of the circular restricted three-body problem has been added to the
models
module. The new model provides the non-dimensional equations of motion and the formula for the Jacobi constant.Fixes
This discussion was created from the release heyoka 2.0.0.
Beta Was this translation helpful? Give feedback.
All reactions