Reduction of the Random Access Memory Size in Adjoint Algorithmic Differentiation by Overloading
Uwe Naumann

TL;DR
This paper proposes a method to significantly reduce random access memory in adjoint algorithmic differentiation by overloading, enabling larger simulations without extensive user intervention.
Contribution
It introduces a novel approach combining dedicated memory for adjoint values with bandwidth exploitation to minimize random memory access in adjoint AD.
Findings
Significant reduction in random access memory size achieved
Preservation of computational efficiency with the new method
Enabling larger problem instances without checkpointing
Abstract
Adjoint algorithmic differentiation by operator and function overloading is based on the interpretation of directed acyclic graphs resulting from evaluations of numerical simulation programs. The size of the computer system memory required to store the graph grows proportional to the number of floating-point operations executed by the underlying program. It quickly exceeds the available memory resources. Naive adjoint algorithmic differentiation often becomes infeasible except for relatively simple numerical simulations. Access to the data associated with the graph can be classified as sequential and random. The latter refers to memory access patterns defined by the adjacency relationship between vertices within the graph. Sequentially accessed data can be decomposed into blocks. The blocks can be streamed across the system memory hierarchy thus extending the amount of available…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Stochastic Gradient Optimization Techniques · Reservoir Engineering and Simulation Methods
