Show simple item record

dc.contributor.authorYang, Cambridge
dc.contributor.authorAtkinson, Eric
dc.contributor.authorCarbin, Michael
dc.date.accessioned2021-10-27T20:03:58Z
dc.date.available2021-10-27T20:03:58Z
dc.date.issued2021
dc.identifier.urihttps://hdl.handle.net/1721.1/134205
dc.description.abstract© 2021 Owner/Author. A Reduction-an accumulation over a set of values, using an associative and commutative operator-is a common computation in many numerical computations, including scientific computations, machine learning, computer vision, and financial analytics. Contemporary polyhedral-based compilation techniques make it possible to optimize reductions, such as prefix sums, in which each component of the reduction's output potentially shares computation with another component in the reduction. Therefore an optimizing compiler can identify the computation shared between multiple components and generate code that computes the shared computation only once. These techniques, however, do not support reductions that-when phrased in the language of the polyhedral model-span multiple dependent statements. In such cases, existing approaches can generate incorrect code that violates the data dependences of the original, unoptimized program. In this work, we identify and formalize the optimization of dependent reductions as an integer bilinear program. We present a heuristic optimization algorithm that uses an affine sequential schedule of the program to determine how to simplfy reductions yet still preserve the program's dependences. We demonstrate that the algorithm provides optimal complexity for a set of benchmark programs from the literature on probabilistic inference algorithms, whose performance critically relies on simplifying these reductions. The complexities for 10 of the 11 programs improve siginifcantly by factors at least of the sizes of the input data, which are in the range of 104 to 106 for typical real application inputs. We also confirm the significance of the improvement by showing speedups in wall-clock time that range from 1.1x to over 106x.en_US
dc.language.isoen
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionof10.1145/3434301en_US
dc.rightsCreative Commons Attribution NoDerivatives 4.0 International License.en_US
dc.rights.urihttp://creativecommons.org/licenses/by-nd/4.0/en_US
dc.sourceACMen_US
dc.titleSimplifying dependent reductions in the polyhedral modelen_US
dc.typeArticleen_US
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.updated2021-09-27T14:50:12Z
dspace.orderedauthorsYang, C; Atkinson, E; Carbin, Men_US
dspace.date.submission2021-09-27T14:50:14Z
mit.journal.volume5en_US
mit.journal.issuePOPLen_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