Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorKeller, G.K.
dc.contributor.authorHus, Simon van
dc.date.accessioned2023-10-18T23:01:01Z
dc.date.available2023-10-18T23:01:01Z
dc.date.issued2023
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/45401
dc.description.abstractn this paper we set out to make a simple reverse-mode automatic differentiation (AD) algorithm, that uses tracing for the forward pass, and preserves data parallelism in the reverse pass. To do this, we first try to formalize the notion of tracing somewhat. We find that while some flexibility in the definition of is needed for it to work well, we can also boil it down to picking a subset of data types to keep in the trace. We also define a couple of logical assertions that further help us in showing whether a trace does really contain the information that we need. Having defined tracing, in theory, but also over a Haskell DSL, we continue to automatic differentiation. Here we expand the tracing function into a forward-pass function by adding reference counting and intermediate values. Using this forward-pass trace as a map, we then show how we can do the reverse-pass. We also show that we can keep data-parallelism intact for the map and fold (reduce) operations. Finally, we also highlight how task parallelism can be used in the reverse-pass to possibly unlock even more efficiency.
dc.description.sponsorshipUtrecht University
dc.language.isoEN
dc.subjectIn modern automatic differentiation single-machine parallelism is often left by the wayside. In this paper we find a way to maintain this parallelism on both the forward and the backward pass of automatic differentiation. We do this on a DSL array language, implemented in Haskell, focussing on the inherent parallelism present in array primitives. We also use define and use a more generalized idea of tracing for the forward pass.
dc.titleMaintaining parallelism in reverse-mode automatic differentiation on functional parallel array languages
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordsautomatic differentiation; tracing; parallelism; array languages; haskell
dc.subject.courseuuArtificial Intelligence
dc.thesis.id24873


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record