dc.contributor.author | Sanchez, Daniel | |
dc.contributor.author | Mukkara, Anurag Reddy | |
dc.contributor.author | Beckmann, Nathan Zachary | |
dc.date.accessioned | 2017-12-15T23:04:35Z | |
dc.date.available | 2017-12-15T23:04:35Z | |
dc.date.issued | 2016-04 | |
dc.identifier.isbn | 978-1-4503-4091-5 | |
dc.identifier.uri | http://hdl.handle.net/1721.1/112772 | |
dc.description.abstract | Cache hierarchies are increasingly non-uniform and difficult to manage. Several techniques, such as scratchpads or reuse hints, use static information about how programs access data to manage the memory hierarchy. Static techniques are effective on regular programs, but because they set fixed policies, they are vulnerable to changes in program behavior or available cache space. Instead, most systems rely on dynamic caching policies that adapt to observed program behavior. Unfortunately, dynamic policies spend significant resources trying to learn how programs use memory, and yet they often perform worse than a static policy. We present Whirlpool, a novel approach that combines static information with dynamic policies to reap the benefits of each. Whirlpool statically classifies data into pools based on how the program uses memory. Whirlpool then uses dynamic policies to tune the cache to each pool. Hence, rather than setting policies statically, Whirlpool uses static analysis to guide dynamic policies. We present both an API that lets programmers specify pools manually and a profiling tool that discovers pools automatically in unmodified binaries.
We evaluate Whirlpool on a state-of-the-art NUCA cache. Whirlpool significantly outperforms prior approaches: on sequential programs, Whirlpool improves performance by up to 38% and reduces data movement energy by up to 53%; on parallel programs, Whirlpool improves performance by up to 67% and reduces data movement energy by up to 2.6x. | en_US |
dc.description.sponsorship | National Science Foundation (U.S.) (grant CCF-1318384) | en_US |
dc.description.sponsorship | National Science Foundation (U.S.) (CAREER-1452994) | en_US |
dc.description.sponsorship | Samsung (Firm) (GRO award) | en_US |
dc.language.iso | en_US | |
dc.publisher | Association for Computing Machinery (ACM) | en_US |
dc.relation.isversionof | http://dx.doi.org/10.1145/2872362.2872363 | en_US |
dc.rights | Creative Commons Attribution-Noncommercial-Share Alike | en_US |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/4.0/ | en_US |
dc.source | MIT Web Domain | en_US |
dc.title | Whirlpool: Improving Dynamic Cache Management with Static Data Classification | en_US |
dc.type | Article | en_US |
dc.identifier.citation | Mukkara, Anurag, Nathan Beckmann, and Daniel Sanchez. “Whirlpool.” Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS ’16 (2016). | en_US |
dc.contributor.department | Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory | en_US |
dc.contributor.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | en_US |
dc.contributor.mitauthor | Sanchez, Daniel | |
dc.contributor.mitauthor | Mukkara, Anurag Reddy | |
dc.contributor.mitauthor | Beckmann, Nathan Zachary | |
dc.relation.journal | Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS '16 | en_US |
dc.eprint.version | Author's final manuscript | en_US |
dc.type.uri | http://purl.org/eprint/type/ConferencePaper | en_US |
eprint.status | http://purl.org/eprint/status/NonPeerReviewed | en_US |
dspace.orderedauthors | Mukkara, Anurag; Beckmann, Nathan; Sanchez, Daniel | en_US |
dspace.embargo.terms | N | en_US |
dc.identifier.orcid | https://orcid.org/0000-0003-4594-7321 | |
dc.identifier.orcid | https://orcid.org/0000-0002-6057-9769 | |
mit.license | OPEN_ACCESS_POLICY | en_US |
mit.metadata.status | Complete | |