dc.contributor.author | Paszke, Adam | |
dc.contributor.author | Johnson, Daniel D | |
dc.contributor.author | Duvenaud, David | |
dc.contributor.author | Vytiniotis, Dimitrios | |
dc.contributor.author | Radul, Alexey | |
dc.contributor.author | Johnson, Matthew J | |
dc.contributor.author | Ragan-Kelley, Jonathan | |
dc.contributor.author | Maclaurin, Dougal | |
dc.date.accessioned | 2022-07-19T12:39:43Z | |
dc.date.available | 2022-07-19T12:39:43Z | |
dc.date.issued | 2021 | |
dc.identifier.uri | https://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.iso | en | |
dc.publisher | Association for Computing Machinery (ACM) | en_US |
dc.relation.isversionof | 10.1145/3473593 | en_US |
dc.rights | Creative Commons Attribution 4.0 International license | en_US |
dc.rights.uri | https://creativecommons.org/licenses/by/4.0/ | en_US |
dc.source | ACM | en_US |
dc.title | Getting to the point: index sets and parallelism-preserving autodiff for pointful array programming | en_US |
dc.type | Article | en_US |
dc.identifier.citation | Paszke, 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.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | |
dc.contributor.department | Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory | |
dc.relation.journal | Proceedings of the ACM on Programming Languages | en_US |
dc.eprint.version | Final published version | en_US |
dc.type.uri | http://purl.org/eprint/type/ConferencePaper | en_US |
eprint.status | http://purl.org/eprint/status/NonPeerReviewed | en_US |
dc.date.updated | 2022-07-19T12:36:03Z | |
dspace.orderedauthors | Paszke, A; Johnson, DD; Duvenaud, D; Vytiniotis, D; Radul, A; Johnson, MJ; Ragan-Kelley, J; Maclaurin, D | en_US |
dspace.date.submission | 2022-07-19T12:36:04Z | |
mit.journal.volume | 5 | en_US |
mit.journal.issue | ICFP | en_US |
mit.license | PUBLISHER_CC | |
mit.metadata.status | Authority Work and Publication Information Needed | en_US |