MatrixAlgebraKit v0.6.8
Bug-fix release addressing several pullback issues — GPU compatibility for svd_pullback!, eigh, and eig pullbacks, correct handling of fully truncated decompositions, a cotangent-mutation bug in the LQ pullback, and an Enzyme caching fix — plus an svd gauge-fixing performance improvement and a new project logo. (Shout-out to @VictorVanthilt)
Highlights
svd_pullback!now works on the GPU (#232).eighandeigpullbacks now work on CUDA arrays (#235, #236).- Pullbacks of
eig_trunc,eigh_trunc, andsvd_truncno longer error when truncation keeps no values; the zero-rank case insvd_pullback!is also handled (#233). - LQ pullback no longer mutates the input cotangents (#226).
- Corrected the Enzyme rule's check for when the cached output argument must be copied (#239).
- Improved
svdgauge-fixing performance (#238). - Extended AD test coverage to CUDA arrays for the polar decomposition and Mooncake projection rules (#237, #240).
- New MatrixAlgebraKit logo (#230).
Full Changelog
See CHANGELOG for the complete list of changes.
Merged pull requests:
- fix: LQ pullback modifies input cotangents (#226) (@lkdvos)
- Add a MatrixAlgebraKit logo (#230) (@lkdvos)
- Make
svd_pullback!GPU-compatible (#232) (@kshyatt) - fix: special case pullbacks for fully truncated decompositions (#233) (@lkdvos)
- Release v0.6.8 (#234) (@lkdvos)
- Working pullback and tests for EIGH + CUDA (#235) (@kshyatt)
- Working EIG + CUDA AD (#236) (@kshyatt)
- Test polar AD for CUDA (#237) (@kshyatt)
- Improve svd gaugefixing performance (#238) (@kshyatt)
- Fix check of whether to copy arg for Enzyme (#239) (@kshyatt)
- Test Mooncake projection rules for CUDA (#240) (@kshyatt)
Closed issues: