Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Grant Ayers

dblp:177/4860 · DBLP profile ↗
← Back
7ranked-venue papers
3as first author
2since 2021 · last 2022
0000-0002-7990-9780ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 6 · 3 first-author · 2 since 2021Software engineering, systems software and programming languages · 3 · 2 first-author · 1 since 2021Artificial intelligence and machine learning · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
6 papers
Memory systems · 59% Processor architecture and microarchitecture · 16% Cloud and datacenter computing · 12%
Software engineering, system software, and programming languages
1 paper
Compilers and program optimization · 100%

Topics — the 20 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems › cache
prefetching
1.022022
CRISP: critical slice prefetching · ASPLOS 2022
Classifying Memory Access Patterns for Prefetching · ASPLOS 2020
Memory systems
software prefetching
1.022022
APT-GET: profile-guided timely software prefetching · EuroSys 2022
Classifying Memory Access Patterns for Prefetching · ASPLOS 2020
Processor architecture and microarchitecture
instruction scheduling
0.612022
CRISP: critical slice prefetching · ASPLOS 2022
Memory systems
memory hierarchy
0.612022
APT-GET: profile-guided timely software prefetching · EuroSys 2022
Embedded and real-time systems › real-time scheduling
mixed-criticality scheduling
0.612022
CRISP: critical slice prefetching · ASPLOS 2022
Processor architecture and microarchitecture › front-end
front-end stalls
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Memory systems › cache › CPU cache
instruction cache
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Memory systems › cache
instruction cache miss
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Cloud and datacenter computing › datacenter architecture
warehouse-scale computer
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Memory systems
cache
0.312018
Learning Memory Access Patterns · ICML 2018
Memory systems › memory hierarchy
cache hierarchy
0.312018
Memory Hierarchy for Web Search · HPCA 2018
Cloud and datacenter computing
datacenter workloads
0.312018
Memory Hierarchy for Web Search · HPCA 2018
Memory systems
memory access patterns
0.312018
Learning Memory Access Patterns · ICML 2018
Memory systems › memory access optimization
memory prefetching
0.312018
Learning Memory Access Patterns · ICML 2018
Memory systems › memory access optimization
neural prefetching
0.312018
Learning Memory Access Patterns · ICML 2018
Cloud and datacenter computing › datacenter services › online service systems › internet services
online data-intensive services
0.312018
Memory Hierarchy for Web Search · HPCA 2018
Performance modeling and evaluation
workload characterization
0.312018
Memory Hierarchy for Web Search · HPCA 2018
Processor architecture and microarchitecture
branch prediction
0.212022
CRISP: critical slice prefetching · ASPLOS 2022
Performance modeling and evaluation › performance tuning
profile-guided optimization
0.212022
APT-GET: profile-guided timely software prefetching · EuroSys 2022
Compilers and program optimization
code layout optimization
0.112019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019

Methods — techniques the papers use, named apart from their topics

hardware performance monitoring · 0.8control flow graph analysis · 0.8software memory access classification · 0.6profile-guided optimization · 0.6criticality-based scheduling · 0.6analytical modeling · 0.6instruction dataflow analysis · 0.4recurrent neural network · 0.3n-gram models · 0.3microarchitectural evaluation · 0.3
YearPublicationVenuePosition
2022 CRISP: critical slice prefetching
abstract
The high access latency of DRAM continues to be a performance challenge for contemporary microprocessor systems. Prefetching is a well-established technique to address this problem, however, existing implemented designs fail to provide any performance benefits in the presence of irregular memory access patterns. The hardware complexity of prior techniques that can predict irregular memory accesses such as runahead execution has proven untenable for implementation in real hardware. We propose a lightweight mechanism to hide the high latency of irregular memory access patterns by leveraging criticality-based scheduling. In particular, our technique executes delinquent loads and their load slices as early as possible, hiding a significant fraction of their latency. Furthermore, we observe that the latency induced by branch mispredictions and other high latency instructions can be hidden with a similar approach. Our proposal only requires minimal hardware modifications by performing memory access classification, load and branch slice extraction, as well as priority analysis exclusively in software. As a result, our technique is feasible to implement, introducing only a simple new instruction prefix while requiring minimal modifications of the instruction scheduler. Our technique increases the IPC of memory-latency-bound applications by up to 38% and by 8.4% on average.
Heiner Litz, Grant Ayers, Parthasarathy Ranganathan
ASPLOS2
2022 APT-GET: profile-guided timely software prefetching
abstract
Prefetching which predicts future memory accesses and preloads them from main memory, is a widely-adopted technique to overcome the processor-memory performance gap. Unfortunately, hardware prefetchers implemented in today's processors cannot identify complex and irregular memory access patterns exhibited by modern data-driven applications and hence developers need to rely on software prefetching techniques. We investigate the challenges of enabling effective, automated software data prefetching. Our investigation reveals that the state-of-the-art compiler-based prefetching mechanism falls short in achieving high performance due to its static nature. Based on this insight, we design APT-GET, a novel profile-guided technique that ensures prefetch timeliness by leveraging dynamic execution time information. APT-GET leverages efficient hardware support such as Intel's Last Branch Record (LBR), for collecting application execution profiles with negligible overhead to characterize the execution time of loads. APT-GET then introduces a novel analytical model to find the optimal prefetch-distance and prefetch injection site based on the collected profile to enable timely prefetches. We study APT-GET in the context of 10 real-world applications and demonstrate that it achieves a speedup of up to 1.98× and of 1.30× on average. By ensuring prefetch timeliness, APT-GET improves the performance by 1.25× over the state-of-the-art software data prefetching mechanism.
Saba Jamilan, Tanvir Ahmed Khan 0001, Grant Ayers, Baris Kasikci, Heiner Litz
EuroSys3
2020 Classifying Memory Access Patterns for Prefetching
abstract
Prefetching is a well-studied technique for addressing the memory access stall time of contemporary microprocessors. However, despite a large body of related work, the memory access behavior of applications is not well understood, and it remains difficult to predict whether a particular application will benefit from a given prefetcher technique. In this work we propose a novel methodology to classify the memory access patterns of applications, enabling well-informed reasoning about the applicability of a certain prefetcher. Our approach leverages instruction dataflow information to uncover a wide range of access patterns, including arbitrary combinations of offsets and indirection. These combinations or prefetch kernels represent reuse, strides, reference locality, and complex address generation. By determining the complexity and frequency of these access patterns, we enable reasoning about prefetcher timeliness and criticality, exposing the limitations of existing prefetchers today. Moreover, using these kernels, we are able to compute the next address for the majority of top-missing instructions, and we propose a software prefetch injection methodology that is able to outperform state-of-the-art hardware prefetchers.
Grant Ayers, Heiner Litz, Christoforos E. Kozyrakis, Parthasarathy Ranganathan
ASPLOS1
2019 AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers
abstract
The large instruction working sets of private and public cloud workloads lead to frequent instruction cache misses and costs in the millions of dollars. While prior work has identified the growing importance of this problem, to date, there has been little analysis of where the misses come from, and what the opportunities are to improve them. To address this challenge, this paper makes three contributions. First, we present the design and deployment of a new, always-on, fleet-wide monitoring system, AsmDB, that tracks front-end bottlenecks. AsmDB uses hardware support to collect bursty execution traces, fleet-wide temporal and spatial sampling, and sophisticated offline post-processing to construct full-program dynamic control-flow graphs. Second, based on a longitudinal analysis of AsmDB data from real-world online services, we present two detailed insights on the sources of front-end stalls: (1) cold code that is brought in along with hot code leads to significant cache fragmentation and a corresponding large number of instruction cache misses; (2) distant branches and calls that are not amenable to traditional cache locality or next-line prefetching strategies account for a large fraction of cache misses. Third, we prototype two optimizations that target these insights. For misses caused by fragmentation, we focus on memcmp, one of the hottest functions contributing to cache misses, and show how fine-grained layout optimizations lead to significant benefits. For misses at the targets of distant jumps, we propose new hardware support for software code prefetching and prototype a new feedback-directed compiler optimization that combines static program flow analysis with dynamic miss profiles to demonstrate significant benefits for several large warehouse-scale workloads. Improving upon prior work, our proposal avoids invasive hardware modifications by prefetching via software in an efficient and scalable way. Simulation results show that such an approach can eliminate up to 96% of instruction cache misses with negligible overheads.
Grant Ayers, Nayana P. Nagendra, David I. August, Hyoun Kyu Cho, Svilen Kanev, Christoforos E. Kozyrakis, Trivikram Krishnamurthy, Heiner Litz, Tipp Moseley, Parthasarathy Ranganathan
ISCA1
2018 Memory Hierarchy for Web Search
abstract
Online data-intensive services, such as search, serve billions of users, utilize millions of cores, and comprise a significant and growing portion of datacenter-scale workloads. However, the complexity of these workloads and their proprietary nature has precluded detailed architectural evaluations and optimizations of processor design trade-offs. We present the first detailed study of the memory hierarchy for the largest commercial search engine today. We use a combination of measurements from longitudinal studies across tens of thousands of deployed servers, systematic microarchitectural evaluation on individual platforms, validated trace-driven simulation, and performance modeling – all driven by production workloads servicing real-world user requests. Our data quantifies significant differences between production search and benchmarks commonly used in the architecture community. We identify the memory hierarchy as an important opportunity for performance optimization, and present new insights pertaining to how search stresses the cache hierarchy, both for instructions and data. We show that, contrary to conventional wisdom, there is significant reuse of data that is not captured by current cache hierarchies, and discuss why this precludes state-of-the-art tiled and scale-out architectures. Based on these insights, we rethink a new cache hierarchy optimized for search that trades off the inefficient use of L3 cache transistors for higher-performance cores, and adds a latency-optimized on-package eDRAM L4 cache. Compared to state-of-the-art processors, our proposed design performs 27% to 38% better.
Grant Ayers, Jung Ho Ahn, Christoforos E. Kozyrakis, Parthasarathy Ranganathan
HPCA1
2018 Learning Memory Access Patterns
abstract
The explosion in workload complexity and the recent slow-down in Moore’s law scaling call for new approaches towards efficient computing. Researchers are now beginning to use recent advances in machine learning in software optimizations; augmenting or replacing traditional heuristics and data structures. However, the space of machine learning for computer hardware architecture is only lightly explored. In this paper, we demonstrate the potential of deep learning to address the von Neumann bottleneck of memory performance. We focus on the critical problem of learning memory access patterns, with the goal of constructing accurate and efficient memory prefetchers. We relate contemporary prefetching strategies to n-gram models in natural language processing, and show how recurrent neural networks can serve as a drop-in replacement. On a suite of challenging benchmark datasets, we find that neural networks consistently demonstrate superior performance in terms of precision and recall. This work represents the first step towards practical neural-network based prefetching, and opens a wide range of exciting directions for machine learning in computer architecture research.
Milad Hashemi, Kevin Swersky, Jamie A. Smith, Grant Ayers, Heiner Litz, Jichuan Chang, Christoforos E. Kozyrakis, Parthasarathy Ranganathan
ICML4
2015 Practical Near-Data Processing for In-Memory Analytics Frameworks
abstract
The end of Dennard scaling has made all systemsenergy-constrained. For data-intensive applications with limitedtemporal locality, the major energy bottleneck is data movementbetween processor chips and main memory modules. For such workloads, the best way to optimize energy is to place processing near the datain main memory. Advances in 3D integrationprovide an opportunity to implement near-data processing (NDP) withoutthe technology problems that similar efforts had in the past. This paper develops the hardware and software of an NDP architecturefor in-memory analytics frameworks, including MapReduce, graphprocessing, and deep neural networks. We develop simple but scalablehardware support for coherence, communication, and synchronization, anda runtime system that is sufficient to support analytics frameworks withcomplex data patterns while hiding all thedetails of the NDP hardware. Our NDP architecture provides up to 16x performance and energy advantageover conventional approaches, and 2.5x over recently-proposed NDP systems. We also investigate the balance between processing and memory throughput, as well as the scalability and physical and logical organization of the memory system. Finally, we show that it is critical to optimize software frameworksfor spatial locality as it leads to 2.9x efficiency improvements for NDP.
Mingyu Gao 0001, Grant Ayers, Christoforos E. Kozyrakis
PACT2