Skip to content

Commit

Permalink
Review changes requested by Parth and Vassil
Browse files Browse the repository at this point in the history
  • Loading branch information
QuillPusher committed Oct 30, 2023
1 parent a50af2d commit 3c47e28
Showing 1 changed file with 21 additions and 16 deletions.
37 changes: 21 additions & 16 deletions docs/userDocs/source/user/FloatingPointErrorEstimation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ develop important new lossy compression algorithms.
How does Automatic Differentiation (AD) fit into this?
======================================================

AD helps evaluate the exact derivative of a function. AD applies the chain rule
of differential calculus throughout the semantics of the original program. In
the context of FP error estimation, this research uses:
AD helps evaluate the exact derivative of a function. AD applies the
differential calculus chain rule throughout the semantics of the original
program. In the context of FP error estimation, the implementation relies on:

- **Reverse-Mode AD** (as opposed to Forward-Mode AD), since it provides the
derivative of the function with respect to all intermediate and input
Expand All @@ -25,13 +25,13 @@ the context of FP error estimation, this research uses:
most of the work at compile time. The Clad Framework that is used in this
research also uses source transformation.

**Clad** is implemented as a plugin for the Clang compiler. It inspects the
internal compiler representation of the target function to generate its
derivative. Clad requires little or no code modification, supports a growing
subset of C++ constructs, statements and data types, it enables efficient
gradient computation for large and complex codebases, and is deeply
integrated with the compiler, allowing automatic generation of error
estimation code.
**Clad** is implemented as a plugin for the Clang compiler. It inspects the
internal compiler representation of the target function to generate its
derivative. Clad requires little or no code modification, supports a growing
subset of C++ constructs, statements and data types, it enables efficient
gradient computation for large and complex codebases, and is deeply
integrated with the compiler, allowing automatic generation of error
estimation code.

Where does the FPEE logic reside?
=================================
Expand All @@ -52,15 +52,16 @@ files:


Above files include a lot of useful documentation in the form of code
comments.
comments. Please view the `Doxygen Documentation`_ and the `Clad Readme`_
for more details.

How does the FPEE Logic work?
=============================

While parsing the code using Clad, if it encounters a floating point
variable,it needs to be registered into the system (to accumulate relevant
errors against that variable). Next, the Error Estimation Calcualtion Formula
(Error Model) needs to be built (using ``EstimationModel.h``).
While parsing the code using Clad, if it encounters a floating point variable,
it needs to be tracked (to accumulate relevant errors against that variable).
Next, the Error Estimation Calculation Formula (Error Model) needs to be built
(using ``EstimationModel.h``).

``EstimationModel.h`` contains the information needed to calculate the estimate
value of the error. It is highly customizable (e.g., you can plug in your
Expand Down Expand Up @@ -188,4 +189,8 @@ forward block.

.. _FP-EE Proposal: https://compiler-research.org/assets/docs/Garima_Singh_Proposal_2020.pdf

.. _CHEF-FP Examples Repo: https://github.com/grimmmyshini/chef-fp-examples
.. _CHEF-FP Examples Repo: https://github.com/grimmmyshini/chef-fp-examples

.. _Clad Readme: https://github.com/vgvassilev/clad#floating-point-error-estimation---cladestimate_error

.. _Doxygen Documentation: https://clad.readthedocs.io/en/latest/internalDocs/html/index.html

0 comments on commit 3c47e28

Please sign in to comment.