Skip to content

Updating the package, now AD and CUDA capable, still zero heap allocations - #7

Open
hzarei4 wants to merge 63 commits into
mainfrom
develop
Open

Updating the package, now AD and CUDA capable, still zero heap allocations#7
hzarei4 wants to merge 63 commits into
mainfrom
develop

Conversation

@hzarei4

@hzarei4 hzarei4 commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR refactors and extends the transformation implementation in DataToFunctions.jl.

Main changes

  • tuple-based affine and homogeneous transformation internals
  • allocation-free in-place CPU transformation paths
  • optimized polynomial transformations using EvalMultiPoly.jl
  • custom ChainRulesCore.jl reverse rules for affine and polynomial parameters
  • substantially improved Zygote gradient performance
  • compatibility with CUDA-backed arrays without requiring CUDA.jl as a package dependency
  • backend adaptation of interpolation objects using Adapt.jl
  • support for gradient-based optimization, including Optim.jl/LBFGS
  • expanded tests for numerical correctness, allocations, AD, and CUDA
  • updated Documenter.jl documentation and tutorial

Performance

The in-place affine and polynomial CPU paths can run with zero heap allocations after compilation.

Polynomial reverse-mode differentiation now uses a custom VJP (Vector-Jacobian Product) rather than tracing the full pixel-wise computation.

Compatibility

The existing public transformation interfaces are retained, including the legacy compatibility API.

hzarei4 and others added 30 commits May 30, 2023 17:06
Developed and generalized version
Updated the Project and removed the additional dep
N-dimensional generalization
Hossein's recent developements (adding affine transformations and optimizations)
-Merged by Hossein-
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants