Higher Order Reverse Derivatives Efficiently - Automatic Differentiation library based on the paper "Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation"
BSD 3-Clause "New" or "Revised" License
34
stars
6
forks
source link
Add an untyped ArrayFire backend and benchmark it vs hmatrix #71
See #43. The idea is to map the ArrayFire arrays to untyped orthotope tensors in the Domains and related types. For this early experiment, we can leave optimizers unchanged and using hmatrix in each case.
The benchmark would have variants using sequential hmatrix and parallel hmatrix (via flags read by the C/Fortran libraries) on CPU would also run the same ArrayFire-based code on GPU.
Eventually we'd prefer our code to be backend-independent, but that would require a general enough common representation. This may turn out to be ArrayFire, MLIR or something custom and higher level than MLIR. For now let's experiment with backends explicitly.
See #43. The idea is to map the ArrayFire arrays to untyped orthotope tensors in the
Domains
and related types. For this early experiment, we can leave optimizers unchanged and using hmatrix in each case.The benchmark would have variants using sequential hmatrix and parallel hmatrix (via flags read by the C/Fortran libraries) on CPU would also run the same ArrayFire-based code on GPU.
Eventually we'd prefer our code to be backend-independent, but that would require a general enough common representation. This may turn out to be ArrayFire, MLIR or something custom and higher level than MLIR. For now let's experiment with backends explicitly.