Show simple item record

dc.contributor.authorPaszke, Adam
dc.contributor.authorJohnson, Daniel D
dc.contributor.authorDuvenaud, David
dc.contributor.authorVytiniotis, Dimitrios
dc.contributor.authorRadul, Alexey
dc.contributor.authorJohnson, Matthew J
dc.contributor.authorRagan-Kelley, Jonathan
dc.contributor.authorMaclaurin, Dougal
dc.date.accessioned2022-07-19T12:39:43Z
dc.date.available2022-07-19T12:39:43Z
dc.date.issued2021
dc.identifier.urihttps://hdl.handle.net/1721.1/143845
dc.description.abstract<jats:p>We present a novel programming language design that attempts to combine the clarity and safety of high-level functional languages with the efficiency and parallelism of low-level numerical languages. We treat arrays as eagerly-memoized functions on typed index sets, allowing abstract function manipulations, such as currying, to work on arrays. In contrast to composing primitive bulk-array operations, we argue for an explicit nested indexing style that mirrors application of functions to arguments. We also introduce a fine-grained typed effects system which affords concise and automatically-parallelized in-place updates. Specifically, an associative accumulation effect allows reverse-mode automatic differentiation of in-place updates in a way that preserves parallelism. Empirically, we benchmark against the Futhark array programming language, and demonstrate that aggressive inlining and type-driven compilation allows array programs to be written in an expressive, "pointful" style with little performance penalty.</jats:p>en_US
dc.language.isoen
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionof10.1145/3473593en_US
dc.rightsCreative Commons Attribution 4.0 International licenseen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceACMen_US
dc.titleGetting to the point: index sets and parallelism-preserving autodiff for pointful array programmingen_US
dc.typeArticleen_US
dc.identifier.citationPaszke, Adam, Johnson, Daniel D, Duvenaud, David, Vytiniotis, Dimitrios, Radul, Alexey et al. 2021. "Getting to the point: index sets and parallelism-preserving autodiff for pointful array programming." Proceedings of the ACM on Programming Languages, 5 (ICFP).
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
dc.relation.journalProceedings of the ACM on Programming Languagesen_US
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dc.date.updated2022-07-19T12:36:03Z
dspace.orderedauthorsPaszke, A; Johnson, DD; Duvenaud, D; Vytiniotis, D; Radul, A; Johnson, MJ; Ragan-Kelley, J; Maclaurin, Den_US
dspace.date.submission2022-07-19T12:36:04Z
mit.journal.volume5en_US
mit.journal.issueICFPen_US
mit.licensePUBLISHER_CC
mit.metadata.statusAuthority Work and Publication Information Neededen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record