auto-differentiation-dev
released this
30 Nov 22:08
·
8 commits
to main
since this release
This release features extensive performance improvements.
Added
- Template Variables: Added support for C++17 type traits such as
std::is_floating_point_v
(#127). - CI/CD Workflows: Updated workflows to target the C++17 standard (#127).
- New Sample: Introduced a Monte-Carlo swaption portfolio pricer, including path-wise derivative calculations (#126).
Changed
-
Performance Improvements (#150):
- Optimised
OperationsContainer
for handling slots and multipliers. - Enhanced iteration efficiency in
computeAdjoints
by avoiding redundant operations. - Implemented joint tape appending for multipliers and slots in a single operation.
- Removed the overhead of
std::fma
calls, relying on compiler-level optimisations. - Added pre-checks to skip derivative calculations when tape is not required.
- Provided branch prediction hints using
XAD_LIKELY
andXAD_UNLIKELY
. - Introduced a paired operations container variant for improved performance at a slight memory cost, with a
XAD_REDUCED_MEMORY
CMake option to toggle memory usage.
- Optimised
-
Documentation Updates: Improved and expanded documentation (#125).
-
CMake Module Renaming: Renamed helper modules to avoid name clashes (by @raneamri, #123).
Fixed
Contributors
This release is a testament to the hard work and dedication of our contributors.
We extend our heartfelt gratitude to everyone who contributed their time and expertise to achieve these performance advancements.
Below is the list of contributors for this release:
- @5tirner
- @Abdell-Rabiai
- @abouramd
- @ayoubHam2000
- @barrak7
- @creativity
- @ErabaReta
- @flytoox
- @het-tale
- @ibrahimesseddyq
- @jchakir
- @m-zeroual
- @mberrouk
- @Mouad-El-Asri
- @mowdl
- @ochouikh
- @ossamakhiar
- @raneamri
- @rghouzra
- @Rhnizar
- @SALAH-NAME
- @soufianeessarhir
- @TmcTrevor
- @whoismtrx
- @yasseraitnasser
- @yrhiba
- @zfarini
Full Changelog: v1.6.0...v1.7.0