Abstract:We show how forward-mode automatic differentiation (AD) can be employed within larger reverse-mode computations to dynamically differentiate broadcast operations in a GPU-friendly manner. Our technique fully exploits the broadcast Jacobian's inherent sparsity structure, and unlike a pure reverse-mode approach, this "mixed-mode" approach does not require a backwards pass over the broadcasted operation's subgraph, obviating the need for several reverse-mode-specific programmability restrictions on user-authored broadcast operations. Most notably, this approach allows broadcast fusion in primal code despite the presence of data-dependent control flow. We discuss an experiment in which a Julia implementation of our technique outperformed pure reverse-mode TensorFlow and Julia implementations for differentiating through broadcast operations within an HM-LSTM cell update calculation.
Submission history
From: Jarrett Revels [view email]
[v1]
Thu, 18 Oct 2018 22:52:52 UTC (1,300 KB)
[v2]
Mon, 22 Oct 2018 11:56:49 UTC (1,301 KB)
[v3]
Wed, 24 Oct 2018 21:05:28 UTC (1,301 KB)