Source code for master thesis by Ulrik Elmelund and Einar Rasmussen. The report can be found here: report.
When the code is compiled with make
, the resulting executable takes as input on stdin
a Linear Function
as defined under LFun
in Types.hs
and a value, as defined under Val
, and applies the function to the value.
This is useful, because the derivatives produced by some auto differentiation algortims can be expressed as linear functions. Thus, by optimizing the expression and producing an executable, that utilizes a GPU, the computation can be sped up. One way to think of the executable is as a Virtual GPGPU Co-Processor for derivative calculations when doing auto differentiation.
caddie
produces the input programs for our code.tail2futhark
produces Futhark code like our code be able to do.