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

Henry Cook

dblp:53/4687 · also Henry M. Cook · DBLP profile ↗
← Back
9ranked-venue papers
2as first author
0since 2021 · last 2015
—ORCID · none

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

Systems, architecture and hardware · 8 · 2 first-authorSoftware engineering, systems software and programming languages · 2 · 1 first-authorArtificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 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 · 20% Performance modeling and evaluation · 17% Parallel and multicore computing · 15%
Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 74% Operating systems · 26%

Topics — the 17 heaviest of 19, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems
cache
0.212013
A hardware evaluation of cache partitioning to improve utilization and energy-efficiency while preserving responsiveness · ISCA 2013
Memory systems › cache management
cache partitioning
0.212013
A hardware evaluation of cache partitioning to improve utilization and energy-efficiency while preserving responsiveness · ISCA 2013
Compilers and program optimization
domain-specific compilation
0.112012
Portable parallel performance from sequential, productive, embedded domain-specific languages · PPoPP 2012
Parallel and multicore computing › programming models
embedded domain-specific language
0.112012
Portable parallel performance from sequential, productive, embedded domain-specific languages · PPoPP 2012
Parallel and multicore computing
parallel programming models
0.112012
Portable parallel performance from sequential, productive, embedded domain-specific languages · PPoPP 2012
GPUs and heterogeneous computing › GPU programming
GPU programming models
0.112011
CudaDMA: optimizing GPU memory bandwidth via warp specialization · SC 2011
GPUs and heterogeneous computing › GPU kernel optimization
warp specialization
0.112011
CudaDMA: optimizing GPU memory bandwidth via warp specialization · SC 2011
Performance modeling and evaluation › simulation
architectural simulation
0.112010
RAMP gold: an FPGA-based architecture simulator for multiprocessors · DAC 2010
Reconfigurable computing and FPGAs
FPGA-accelerated simulation
0.112010
A case for FAME: FPGA architecture model execution · ISCA 2010
Processor architecture and microarchitecture
multicore design
0.112010
RAMP gold: an FPGA-based architecture simulator for multiprocessors · DAC 2010
Performance modeling and evaluation › simulation › processor simulation
multicore simulation
0.112010
A case for FAME: FPGA architecture model execution · ISCA 2010
Performance modeling and evaluation
simulation
0.112010
A case for FAME: FPGA architecture model execution · ISCA 2010
Electronic design automation
design space exploration
0.112008
Predictive design space exploration using genetically programmed response surfaces · DAC 2008
Operating systems › resource management › process management
CPU scheduling
0.012013
A hardware evaluation of cache partitioning to improve utilization and energy-efficiency while preserving responsiveness · ISCA 2013
High-performance computing › performance engineering
performance portability
0.012012
Portable parallel performance from sequential, productive, embedded domain-specific languages · PPoPP 2012
Memory systems › memory access optimization
memory-level parallelism
0.012011
CudaDMA: optimizing GPU memory bandwidth via warp specialization · SC 2011
Electronic design automation › design space exploration
microarchitecture design space exploration
0.012008
Predictive design space exploration using genetically programmed response surfaces · DAC 2008

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

hardware cache partitioning · 0.3dynamic partition sizing · 0.3procedural code generation · 0.3compiler transformation · 0.3producer-consumer synchronization · 0.1host multithreading · 0.1cycle-accurate timing model · 0.1FPGA prototyping · 0.1predictive model · 0.1genetically programmed response surfaces · 0.1
YearPublicationVenuePosition
2015 Raven: A 28nm RISC-V vector processor with integrated switched-capacitor DC-DC converters and adaptive clocking
Yunsup Lee, Brian Zimmer, Andrew Waterman, Alberto Puggelli, Jaehwa Kwak, Ruzica Jevtic, Ben Keller, Stevo Bailey, Milovan Blagojevic, Pi-Feng Chiu, Henry Cook, Rimas Avizienis, Brian C. Richards, Elad Alon, Borivoje Nikolic, Krste Asanovic
Hot Chips Symposium11
2013 The RISC-V instruction set
Andrew Waterman, Yunsup Lee, Rimas Avizienis, Henry Cook, David A. Patterson 0001, Krste Asanovic
Hot Chips Symposium4
2013 A hardware evaluation of cache partitioning to improve utilization and energy-efficiency while preserving responsiveness
abstract
Computing workloads often contain a mix of interactive, latency-sensitive foreground applications and recurring background computations. To guarantee responsiveness, interactive and batch applications are often run on disjoint sets of resources, but this incurs additional energy, power, and capital costs. In this paper, we evaluate the potential of hardware cache partitioning mechanisms and policies to improve efficiency by allowing background applications to run simultaneously with interactive foreground applications, while avoiding degradation in interactive responsiveness. We evaluate these tradeoffs using commercial x86 multicore hardware that supports cache partitioning, and find that real hardware measurements with full applications provide different observations than past simulation-based evaluations. Co-scheduling applications without LLC partitioning leads to a 10% energy improvement and average throughput improvement of 54% compared to running tasks separately, but can result in foreground performance degradation of up to 34% with an average of 6%. With optimal static LLC partitioning, the average energy improvement increases to 12% and the average throughput improvement to 60%, while the worst case slowdown is reduced noticeably to 7% with an average slowdown of only 2%. We also evaluate a practical low-overhead dynamic algorithm to control partition sizes, and are able to realize the potential performance guarantees of the optimal static approach, while increasing background throughput by an additional 19%.
Henry Cook, Miquel Moretó, Sarah Bird, Khanh Dao, David A. Patterson 0001, Krste Asanovic
ISCA1
2012 Portable parallel performance from sequential, productive, embedded domain-specific languages
abstract
Domain-expert productivity programmers desire scalable application performance, but usually must rely on efficiency programmers who are experts in explicit parallel programming to achieve it. Since such programmers are rare, to maximize reuse of their work we propose encapsulating their strategies in mini-compilers for domain-specific embedded languages (DSELs) glued together by a common high-level host language familiar to productivity programmers. The nontrivial applications that use these DSELs perform up to 98% of peak attainable performance, and comparable to or better than existing hand-coded implementations. Our approach is unique in that each mini-compiler not only performs conventional compiler transformations and optimizations, but includes imperative procedural code that captures an efficiency expert's strategy for mapping a narrow domain onto a specific type of hardware. The result is source- and performance-portability for productivity programmers and parallel performance that rivals that of hand-coded efficiency-language implementations of the same applications. We describe a framework that supports our methodology and five implemented DSELs supporting common computation kernels.
Shoaib Kamil 0001, Derrick Coetzee, Scott Beamer, Henry Cook, Ekaterina Gonina, Jonathan Harper, Jeffrey Morlan, Armando Fox
PPoPP4
2011 Fast speaker diarization using a high-level scripting language
abstract
Most current speaker diarization systems use agglomerative clustering of Gaussian Mixture Models (GMMs) to determine “who spoke when” in an audio recording. While state-of-the-art in accuracy, this method is computationally costly, mostly due to the GMM training, and thus limits the performance of current approaches to be roughly real-time. Increased sizes of current datasets require processing of hundreds of hours of data and thus make more efficient processing methods highly desirable. With the emergence of highly parallel multicore and manycore processors, such as graphics processing units (GPUs), one can re-implement GMM training to achieve faster than real-time performance by taking advantage of parallelism in the training computation. However, developing and maintaining the complex low-level GPU code is difficult and requires a deep understanding of the hardware architecture of the parallel processor. Furthermore, such low-level implementations are not readily reusable in other applications and not portable to other platforms, limiting programmer productivity. In this paper we present a speaker diarization system captured in under 50 lines of Python that achieves 50-250× faster than real-time performance by using a specialization framework to automatically map and execute computationally intensive GMM training on an NVIDIA GPU, without significant loss in accuracy.
Ekaterina Gonina, Gerald Friedland, Henry Cook, Kurt Keutzer
ASRU3
2011 CudaDMA: optimizing GPU memory bandwidth via warp specialization
abstract
As the computational power of GPUs continues to scale with Moore's Law, an increasing number of applications are becoming limited by memory bandwidth. We propose an approach for programming GPUs with tightly-coupled specialized DMA warps for performing memory transfers between on-chip and off-chip memories. Separate DMA warps improve memory bandwidth utilization by better exploiting available memory-level parallelism and by leveraging efficient inter-warp producer-consumer synchronization mechanisms. DMA warps also improve programmer productivity by decoupling the need for thread array shapes to match data layout. To illustrate the benefits of this approach, we present an extensible API, CudaDMA, that encapsulates synchronization and common sequential and strided data transfer patterns. Using CudaDMA, we demonstrate speedup of up to 1.37x on representative synthetic microbenchmarks, and 1.15x-3.2x on several kernels from scientific applications written in CUDA running on NVIDIA Fermi GPUs.
Michael Bauer 0001, Henry Cook, Brucek Khailany
SC2
2010 RAMP gold: an FPGA-based architecture simulator for multiprocessors
abstract
We present RAMP Gold, an economical FPGA-based architecture simulator that allows rapid early design-space exploration of manycore systems. The RAMP Gold prototype is a high-throughput, cycle-accurate full-system simulator that runs on a single Xilinx Virtex-5 FPGA board, and which simulates a 64-core shared-memory target machine capable of booting real operating systems. To improve FPGA implementation efficiency, functionality and timing are modeled separately and host multithreading is used in both models. We evaluate the prototype's performance using a modern parallel benchmark suite running on our manycore research operating system, achieving two orders of magnitude speedup compared to a widely-used software-based architecture simulator.
Zhangxi Tan, Andrew Waterman, Rimas Avizienis, Yunsup Lee, Henry Cook, David A. Patterson 0001, Krste Asanovic
DAC5
2010 A case for FAME: FPGA architecture model execution
abstract
Given the multicore microprocessor revolution, we argue that the architecture research community needs a dramatic increase in simulation capacity. We believe FPGA Architecture Model Execution (FAME) simulators can increase the number of useful architecture research experiments per day by two orders of magnitude over Software Architecture Model Execution (SAME) simulators. To clear up misconceptions about FPGA-based simulation methodologies, we propose a FAME taxonomy to distinguish the costperformance of variations on these ideas. We demonstrate our simulation speedup claim with a case study wherein we employ a prototype FAME simulator, RAMP Gold, to research the interaction between hardware partitioning mechanisms and operating system scheduling policy. The study demonstrates FAME's capabilities: we run a modern parallel benchmark suite on a research operating system, simulate 64-core target architectures with multi-level memory hierarchy timing models, and add experimental hardware mechanisms to the target machine. The simulation speedup achieved by our adoption of FAME-250×-enables experiments with more realistic time scales and data set sizes thanare possible with SAME.
Zhangxi Tan, Andrew Waterman, Henry Cook, Sarah Bird, Krste Asanovic, David A. Patterson 0001
ISCA3
2008 Predictive design space exploration using genetically programmed response surfaces
abstract
Exponential increases in architectural design complexity threaten to make traditional processor design optimization techniques intractable. Genetically programmed response surfaces (GPRS) address this challenge by transforming the optimization process from a lengthy series of detailed simulations into the tractable formulation and rapid evaluation of a predictive model. We validate GPRS methodology on realistic processor design spaces and compare it to recently proposed techniques for predictive microarchitectural design space exploration.
Henry Cook, Kevin Skadron
DAC1