Publication: H-Revolve: A Framework for Adjoint Computation on Synchronous Hierarchical Platforms
Introduction
Applications
Tools
Research Groups
Workshops
Publications
   List Publications
   Advanced Search
   Info
   Add Publications
My Account
About
Impress

H-Revolve: A Framework for Adjoint Computation on Synchronous Hierarchical Platforms

- Article in a journal -
 

Author(s)
Julien Herrmann , Pallez (Aupy) , Guillaume

Published in
ACM Transactions on Mathematical Software

Year
2020

Publisher
Association for Computing Machinery

Abstract
We study the problem of checkpointing strategies for adjoint computation on synchronous hierarchical platforms, specifically computational platforms with several levels of storage with different writing and reading costs. When reversing a large adjoint chain, choosing which data to checkpoint and where is a critical decision for the overall performance of the computation. We introduce H-Revolve, an optimal algorithm for this problem. We make it available in a public Python library along with the implementation of several state-of-the-art algorithms for the variant of the problem with two levels of storage. We provide a detailed description of how one can use this library in an adjoint computation software in the field of automatic differentiation or backpropagation. Finally, we evaluate the performance of H-Revolve and other checkpointing heuristics though an extensive campaign of simulation.

AD Theory and Techniques
Checkpointing

BibTeX
@ARTICLE{
         Herrmann2020HRA,
       author = "Herrmann, Julien and {Pallez (Aupy)}, Guillaume",
       title = "\textsc{H-Revolve}: A Framework for Adjoint Computation on Synchronous
         Hierarchical Platforms",
       year = "2020",
       publisher = "Association for Computing Machinery",
       address = "New York, NY, USA",
       volume = "46",
       number = "2",
       issn = "0098-3500",
       xurl = "https://doi.org/10.1145/3378672",
       doi = "10.1145/3378672",
       abstract = "We study the problem of checkpointing strategies for adjoint computation on
         synchronous hierarchical platforms, specifically computational platforms with several levels of
         storage with different writing and reading costs. When reversing a large adjoint chain, choosing
         which data to checkpoint and where is a critical decision for the overall performance of the
         computation. We introduce H-Revolve, an optimal algorithm for this problem. We make it available in
         a public Python library along with the implementation of several state-of-the-art algorithms for the
         variant of the problem with two levels of storage. We provide a detailed description of how one can
         use this library in an adjoint computation software in the field of automatic differentiation or
         backpropagation. Finally, we evaluate the performance of H-Revolve and other checkpointing
         heuristics though an extensive campaign of simulation.",
       journal = "{ACM} Transactions on Mathematical Software",
       month = "jun",
       articleno = "12",
       numpages = "25",
       pages = "12:1--12:25",
       keywords = "revolve, hierarchical memory, deep learning, automatic differentiation, Adjoint
         computation",
       ad_theotech = "Checkpointing"
}


back
  

Contact:
autodiff.org
Username:
Password:
(lost password)