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

Daniel R. Johnson

dblp:69/7115 · DBLP profile ↗
← Back
15ranked-venue papers
0as first author
1since 2021 · last 2022
—ORCID · none

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

Systems, architecture and hardware · 15 · 1 since 2021Software engineering, systems software and programming languages · 7

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
12 papers
GPUs and heterogeneous computing · 42% Processor architecture and microarchitecture · 22% Memory systems · 16%
Computer graphics and multimedia
1 paper
Rendering · 100%

Topics — the 30 heaviest of 40, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
GPUs and heterogeneous computing › GPU scheduling
warp scheduling
0.822022
GPU Subwarp Interleaving · HPCA 2022
A variable warp size architecture · ISCA 2015
GPUs and heterogeneous computing
GPU microarchitecture
0.722022
GPU Subwarp Interleaving · HPCA 2022
Energy-efficient mechanisms for managing thread context in throughput processors · ISCA 2011
GPUs and heterogeneous computing
control flow divergence
0.622022
GPU Subwarp Interleaving · HPCA 2022
A variable warp size architecture · ISCA 2015
GPUs and heterogeneous computing
GPU architecture
0.632015
Flexible software profiling of GPU architectures · ISCA 2015
A variable warp size architecture · ISCA 2015
A Hierarchical Thread Scheduler and Register File for Energy-Efficient Throughput Processors · ACM Trans. Comput. Syst. 2012
Processor architecture and microarchitecture
latency hiding
0.612022
GPU Subwarp Interleaving · HPCA 2022
Processor architecture and microarchitecture › pipelining
pipeline stall
0.612022
GPU Subwarp Interleaving · HPCA 2022
Memory systems
cache
0.522016
A patch memory system for image processing and computer vision · MICRO 2016
Priority-based cache allocation in throughput processors · HPCA 2015
Memory systems › DRAM
DRAM architecture
0.312017
Architecting an Energy-Efficient DRAM System for GPUs · HPCA 2017
Memory systems › DRAM
energy-efficient DRAM
0.312017
Architecting an Energy-Efficient DRAM System for GPUs · HPCA 2017
GPUs and heterogeneous computing › GPU memory
GPU memory hierarchy
0.312017
Architecting an Energy-Efficient DRAM System for GPUs · HPCA 2017
Processor architecture and microarchitecture
register file
0.322012
A Hierarchical Thread Scheduler and Register File for Energy-Efficient Throughput Processors · ACM Trans. Comput. Syst. 2012
Energy-efficient mechanisms for managing thread context in throughput processors · ISCA 2011
Memory systems › cache
prefetching
0.212016
A patch memory system for image processing and computer vision · MICRO 2016
GPUs and heterogeneous computing › GPU memory management
GPU cache management
0.212015
Priority-based cache allocation in throughput processors · HPCA 2015
GPUs and heterogeneous computing
GPU computing
0.212015
Flexible software profiling of GPU architectures · ISCA 2015
Parallel and multicore computing › parallel scheduling
thread scheduling
0.222015
Energy-efficient mechanisms for managing thread context in throughput processors · ISCA 2011
Priority-based cache allocation in throughput processors · HPCA 2015
High-performance computing › supercomputing
exascale computing
0.212014
Scaling the Power Wall: A Path to Exascale · SC 2014
Integrated circuit design
low-power circuit design
0.212014
Scaling the Power Wall: A Path to Exascale · SC 2014
Integrated circuit design › memory circuit design
low-voltage SRAM
0.212014
Scaling the Power Wall: A Path to Exascale · SC 2014
Energy-efficient computing
power wall
0.212014
Scaling the Power Wall: A Path to Exascale · SC 2014
Rendering
ray tracing
0.212022
GPU Subwarp Interleaving · HPCA 2022
Processor architecture and microarchitecture › register file
hierarchical register file
0.112012
A Hierarchical Thread Scheduler and Register File for Energy-Efficient Throughput Processors · ACM Trans. Comput. Syst. 2012
Processor architecture and microarchitecture
throughput processor
0.112012
A Hierarchical Thread Scheduler and Register File for Energy-Efficient Throughput Processors · ACM Trans. Comput. Syst. 2012
Processor architecture and microarchitecture › register file
register caching
0.112011
Energy-efficient mechanisms for managing thread context in throughput processors · ISCA 2011
Memory systems
cache coherence
0.112010
Cohesion: a hybrid memory model for accelerators · ISCA 2010
Hardware accelerators and domain-specific architectures
many-core accelerator
0.112009
Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009
Parallel and multicore computing
parallel programming models
0.112009
Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009
Hardware accelerators and domain-specific architectures › accelerator architecture
programmable accelerator
0.112009
Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009
Hardware accelerators and domain-specific architectures
image processing accelerator
0.112016
A patch memory system for image processing and computer vision · MICRO 2016
Electronic design automation
design space exploration
0.112015
Flexible software profiling of GPU architectures · ISCA 2015
Parallel and multicore computing › parallel programming runtimes › thread management
thread throttling
0.112015
Priority-based cache allocation in throughput processors · HPCA 2015

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

simulation · 1.5microbenchmarking · 1.1area overhead analysis · 0.3structured address calculation offload · 0.2multidimensional addressing · 0.2warp ganging · 0.2variable warp sizing · 0.2thread scheduling · 0.2priority-based allocation · 0.2binary instrumentation · 0.2
YearPublicationVenuePosition
2022 GPU Subwarp Interleaving
abstract
Raytracing applications have naturally high thread divergence, low warp occupancy and are limited by memory latency. In this paper, we present an architectural enhancement called Subwarp Interleaving that exploits thread divergence to hide pipeline stalls in divergent sections of low warp occupancy workloads. Subwarp Interleaving allows for fine-grained interleaved execution of diverged paths within a warp with the goal of increasing hardware utilization and reducing warp latency. However, notwithstanding the promise shown by early microbenchmark studies and an average performance upside of 6.3% (up to 20%) on a simulator across a suite of raytradng application traces, the Subwarp Interleaving design feature has shortcomings that preclude its near-term implementation. This paper introduces the reader to the challenges of raytradng and discusses a novel micro-architectural approach that, on paper, addresses many of the challenges. A thorough analysis of the idea on a production simulator reveals that the high-level motivating statistics are optimistic, and second-order effects, along with other architectural sharp edges, limit the idea’s potential. We identify Subwarp Interleaving’s primary limiters for an NVIDIA Tbring-like architecture, and we outline the conditions under which the approach could be more effective.
Sana Damani, Mark Stephenson, Ram Rangan, Daniel R. Johnson, Rishkul Kulkami, Stephen W. Keckler
HPCA4
2020 Speculative reconvergence for improved SIMT efficiency
abstract
GPUs perform most efficiently when all threads in a warp execute the same sequence of instructions convergently. However, when threads in a warp encounter a divergent branch, the hardware serializes the execution of diverged paths. We consider a class of convergence opportunities wherein multiple threads are expected to eventually execute a given segment of code, but not all threads arrive at the same time, resulting in serialized duplicate execution of common code subsequences such as function calls and loop bodies. Our goal is to promote convergence by helping threads that execute common code arrive together before allowing execution to proceed. We propose a new user-guided compiler mechanism, Speculative Reconvergence, to help identify and exploit previously untapped convergence opportunities that increase SIMT efficiency and improve performance. For the set of workloads we study, we see improvements ranging from 10% to 3× in both SIMT efficiency and in performance.
Sana Damani, Daniel R. Johnson, Mark Stephenson, Stephen W. Keckler, Eddie Q. Yan, Michael McKeown, Olivier Giroux
CGO2
2017 Architecting an Energy-Efficient DRAM System for GPUs
abstract
This paper proposes an energy-efficient, high-throughput DRAM architecture for GPUs and throughput processors. In these systems, requests from thousands of concurrent threads compete for a limited number of DRAM row buffers. As a result, only a fraction of the data fetched into a row buffer is used, leading to significant energy overheads. Our proposed DRAM architecture exploits the hierarchical organization of a DRAM bank to reduce the minimum row activation granularity. To avoid significant incremental area with this approach, we must partition the DRAM datapath into a number of semi-independent subchannels. These narrow subchannels increase data toggling energy which we mitigate using a static data reordering scheme designed to lower the toggle rate. This design has 35% lower energy consumption than a die-stacked DRAM with 2.6% area overhead. The resulting architecture, when augmented with an improved memory access protocol, can support parallel operations across the semi-independent subchannels, thereby improving system performance by 13% on average for a range of workloads.
Niladrish Chatterjee, Mike O'Connor, Donghyuk Lee, Daniel R. Johnson, Stephen W. Keckler, Minsoo Rhu, William J. Dally
HPCA4
2016 A patch memory system for image processing and computer vision
abstract
From self-driving cars to high dynamic range (HDR) imaging, the demand for image-based applications is growing quickly. In mobile systems, these applications place particular strain on performance and energy efficiency. As traditional memory systems are optimized for 1D memory access, they are unable to efficiently exploit the multi-dimensional locality characteristics of image-based applications which often operate on sub-regions of 2D and 3D image data. We have developed a new Patch Memory System (PMEM) tailored to application domains that process 2D and 3D data streams. PMEM supports efficient multidimensional addressing, automatic handling of image boundaries, and efficient caching and prefetching of image data. In addition to an optimized cache, PMEM includes hardware for offloading structured address calculations from processing units. We improve average energy-delay by 26% compared to EVA, a memory system for computer vision applications. Compared to a traditional cache, our results show that PMEM can reduce processor energy by 34% for a selection of CV and IP applications, leading to system performance improvement of up to 32% and energy-delay product improvement of 48-86% on the applications in this study.
Jason Clemons, Chih-Chi Cheng, Iuri Frosio, Daniel R. Johnson, Stephen W. Keckler
MICRO4
2015 Priority-based cache allocation in throughput processors
abstract
GPUs employ massive multithreading and fast context switching to provide high throughput and hide memory latency. Multithreading can Increase contention for various system resources, however, that may result In suboptimal utilization of shared resources. Previous research has proposed variants of throttling thread-level parallelism to reduce cache contention and improve performance. Throttling approaches can, however, lead to under-utilizing thread contexts, on-chip interconnect, and off-chip memory bandwidth. This paper proposes to tightly couple the thread scheduling mechanism with the cache management algorithms such that GPU cache pollution is minimized while off-chip memory throughput is enhanced. We propose priority-based cache allocation (PCAL) that provides preferential cache capacity to a subset of high-priority threads while simultaneously allowing lower priority threads to execute without contending for the cache. By tuning thread-level parallelism while both optimizing caching efficiency as well as other shared resource usage, PCAL builds upon previous thread throttling approaches, improving overall performance by an average 17% with maximum 51%.
Minsoo Rhu, Daniel R. Johnson, Mike O'Connor, Mattan Erez, Doug Burger, Donald S. Fussell, Stephen W. Redder
HPCA3
2015 A variable warp size architecture
abstract
This paper studies the effect of warp sizing and scheduling on performance and efficiency in GPUs. We propose Variable Warp Sizing (VWS) which improves the performance of divergent applications by using a small base warp size in the presence of control flow and memory divergence. When appropriate, our proposed technique groups sets of these smaller warps together by ganging their execution in the warp scheduler, improving performance and energy efficiency for regular applications. Warp ganging is necessary to prevent performance degradation on regular workloads due to memory convergence slip, which results from the inability of smaller warps to exploit the same intra-warp memory locality as larger warps. This paper explores the effect of warp sizing on control flow divergence, memory divergence, and locality. For an estimated 5% area cost, our ganged scheduling microarchitecture results in a simulated 35% performance improvement on divergent workloads by allowing smaller groups of threads to proceed independently, and eliminates the performance degradation due to memory convergence slip that is observed when convergent applications are executed with smaller warp sizes.
Timothy G. Rogers, Daniel R. Johnson, Mike O'Connor, Stephen W. Keckler
ISCA2
2015 Flexible software profiling of GPU architectures
abstract
To aid application characterization and architecture design space exploration, researchers and engineers have developed a wide range of tools for CPUs, including simulators, profilers, and binary instrumentation tools. With the advent of GPU computing, GPU manufacturers have developed similar tools leveraging hardware profiling and debugging hooks. To date, these tools are largely limited by the fixed menu of options provided by the tool developer and do not offer the user the flexibility to observe or act on events not in the menu. This paper presents SASSI (NVIDIA assembly code "SASS" Instrumentor), a low-level assembly-language instrumentation tool for GPUs. Like CPU binary instrumentation tools, SASSI allows a user to specify instructions at which to inject user-provided instrumentation code. These facilities allow strategic placement of counters and code into GPU assembly code to collect user-directed, fine-grained statistics at hardware speeds. SASSI instrumentation is inherently parallel, leveraging the concurrency of the underlying hardware. In addition to the details of SASSI, this paper provides four case studies that show how SASSI can be used to characterize applications and explore the architecture design space along the dimensions of instruction control flow, memory systems, value similarity, and resilience.
Mark Stephenson, Siva Kumar Sastry Hari, Yunsup Lee, Eiman Ebrahimi, Daniel R. Johnson, David W. Nellans, Mike O'Connor, Stephen W. Keckler
ISCA5
2014 Scaling the Power Wall: A Path to Exascale
abstract
Modern scientific discovery is driven by an insatiable demand for computing performance. The HPC community is targeting development of supercomputers able to sustain 1 ExaFlops by the year 2020 and power consumption is the primary obstacle to achieving this goal. A combination of architectural improvements, circuit design, and manufacturing technologies must provide over a 20× improvement in energy efficiency. In this paper, we present some of the progress NVIDIA Research is making toward the design of Exascale systems by tailoring features to address the scaling challenges of performance and energy efficiency. We evaluate several architectural concepts for a set of HPC applications demonstrating expected energy efficiency improvements resulting from circuit and packaging innovations such as low-voltage SRAM, low-energy signalling, and on-package memory. Finally, we discuss the scaling of these features with respect to future process technologies and provide power and performance projections for our Exascale research architecture.
Oreste Villa, Daniel R. Johnson, Mike O'Connor, Evgeny Bolotin, David W. Nellans, Justin Luitjens, Nikolai Sakharnykh, Paulius Micikevicius, Anthony Scudiero, Stephen W. Keckler, William J. Dally
SC2
2012 A Hierarchical Thread Scheduler and Register File for Energy-Efficient Throughput Processors
abstract
Modern graphics processing units (GPUs) employ a large number of hardware threads to hide both function unit and memory access latency. Extreme multithreading requires a complex thread scheduler as well as a large register file, which is expensive to access both in terms of energy and latency. We present two complementary techniques for reducing energy on massively-threaded processors such as GPUs. First, we investigate a two-level thread scheduler that maintains a small set of active threads to hide ALU and local memory access latency and a larger set of pending threads to hide main memory latency. Reducing the number of threads that the scheduler must consider each cycle improves the scheduler’s energy efficiency. Second, we propose replacing the monolithic register file found on modern designs with a hierarchical register file. We explore various trade-offs for the hierarchy including the number of levels in the hierarchy and the number of entries at each level. We consider both a hardware-managed caching scheme and a software-managed scheme, where the compiler is responsible for orchestrating all data movement within the register file hierarchy. Combined with a hierarchical register file, our two-level thread scheduler provides a further reduction in energy by only allocating entries in the upper levels of the register file hierarchy for active threads. Averaging across a variety of real world graphics and compute workloads, the active thread count can be reduced by a factor of 4 with minimal impact on performance and our most efficient three-level software-managed register file hierarchy reduces register file energy by 54%.
Mark Gebhart, Daniel R. Johnson, David Tarjan, Stephen W. Keckler, William J. Dally, Erik Lindholm, Kevin Skadron
ACM Trans. Comput. Syst.2
2011 Energy-efficient mechanisms for managing thread context in throughput processors
abstract
Modern graphics processing units (GPUs) use a large number of hardware threads to hide both function unit and memory access latency. Extreme multithreading requires a complicated thread scheduler as well as a large register file, which is expensive to access both in terms of energy and latency. We present two complementary techniques for reducing energy on massively-threaded processors such as GPUs. First, we examine register file caching to replace accesses to the large main register file with accesses to a smaller structure containing the immediate register working set of active threads. Second, we investigate a two-level thread scheduler that maintains a small set of active threads to hide ALU and local memory access latency and a larger set of pending threads to hide main memory latency. Combined with register file caching, a two-level thread scheduler provides a further reduction in energy by limiting the allocation of temporary register cache resources to only the currently active subset of threads. We show that on average, across a variety of real world graphics and compute workloads, a 6-entry per-thread register file cache reduces the number of reads and writes to the main register file by 50% and 59% respectively. We further show that the active thread count can be reduced by a factor of 4 with minimal impact on performance, resulting in a 36% reduction of register file energy.
Mark Gebhart, Daniel R. Johnson, David Tarjan, Stephen W. Keckler, William J. Dally, Erik Lindholm, Kevin Skadron
ISCA2
2010 GoldMine: Automatic assertion generation using data mining and static analysis
abstract
We present GOLDMINE, a methodology for generating assertions automatically. Our method involves a combination of data mining and static analysis of the Register Transfer Level (RTL) design. We present results of using GoldMine for assertion generation of the RTL of a 1000-core processor design that is still in an evolving stage. Our results show that GoldMine can generate complex, high coverage assertions in RTL, thereby minimizing human effort in this process.
Shobha Vasudevan, David Sheridan, Sanjay J. Patel, David Tcheng, William Tuohy, Daniel R. Johnson
DATE6
2010 Cohesion: a hybrid memory model for accelerators
abstract
Two broad classes of memory models are available today: models with hardware cache coherence, used in conventional chip multiprocessors, and models that rely upon software to manage coherence, found in compute accelerators. In some systems, both types of models are supported using disjoint address spaces and/or physical memories. In this paper we present Cohesion, a hybrid memory model that enables fine-grained temporal reassignment of data between hardware-managed and software-managed coherence domains, allowing a system to support both. Cohesion can be used to dynamically adapt to the sharing needs of both applications and runtimes. Cohesion requires neither copy operations nor multiple address spaces.
John H. Kelm, Daniel R. Johnson, William Tuohy, Steven S. Lumetta, Sanjay J. Patel
ISCA2
2009 A Task-Centric Memory Model for Scalable Accelerator Architectures
abstract
This paper presents a task-centric memory model for 1000-core compute accelerators. Visual computing applications are emerging as an important class of workloads that can exploit 1000-core processors. In these workloads, we observe data sharing and communication patterns that can be leveraged in the design of memory systems for future 1000-core processors. Based on these insights, we propose a memory model that uses a software protocol, working in collaboration with hardware caches, to maintain a coherent, single-address space view of memory without the need for hardware coherence support. We evaluate the task-centric memory model in simulation on a 1024-core MIMD accelerator we are developing that, with the help of a runtime system, implements the proposed memory model. We evaluate coherence management policies related to the task-centric memory model and show that the overhead of maintaining a coherent view of memory in software can be minimal. We further show that, while software management may constrain speculative hardware prefetching into local caches, a common optimization, it does not constrain the more relevant use case of off-chip prefetching from DRAM into shared caches.
John H. Kelm, Daniel R. Johnson, Steven S. Lumetta, Matthew I. Frank, Sanjay J. Patel
PACT2
2009 Rigel: an architecture and scalable programming interface for a 1000-core accelerator
abstract
This paper considers Rigel, a programmable accelerator architecture for a broad class of data- and task-parallel computation. Rigel comprises 1000+ hierarchically-organized cores that use a fine-grained, dynamically scheduled single-program, multiple-data (SPMD) execution model. Rigel's low-level programming interface adopts a single global address space model where parallel work is expressed in a task-centric, bulk-synchronized manner using minimal hardware support. Compared to existing accelerators, which contain domain-specific hardware, specialized memories, and/or restrictive programming models, Rigel is more flexible and provides a straightforward target for a broader set of applications.
John H. Kelm, Daniel R. Johnson, Matthew R. Johnson 0003, Neal Clayton Crago, William Tuohy, Aqeel Mahesri, Steven S. Lumetta, Matthew I. Frank, Sanjay J. Patel
ISCA2
2008 Tradeoffs in designing accelerator architectures for visual computing
abstract
Visualization, interaction, and simulation (VIS) constitute a class of applications that is growing in importance. This class includes applications such as graphics rendering, video encoding, simulation, and computer vision. These applications are ideally suited for accelerators because of their parallelizability and demand for high throughput. We compile a benchmark suite, VIS- Bench, to serve as a proxy for this application class. We use VISBench to examine some important high level decisions for an accelerator architecture. We propose a highly parallel base architecture. We examine the need for synchronization and data communication. We also examine GPU-style SIMD execution and find that a MIMD architecture usually performs better. Given these high level choices, we use VISBench to explore the microarchitectural design space. We analyze area versus performance tradeoffs in designing individual cores and the memory hierarchy. We find that a design made of small, simple cores achieves much higher throughput than a general purpose uniprocessor. Further, we find that a limited amount of support for ILP within each core aids overall performance. We find that fine-grained multithreading improves performance, but only up to a point. We find that word-level (SSE-style) SIMD provides a poor performance to area ratio. Finally, we find that sufficient memory and cache bandwidth is essential to performance.
Aqeel Mahesri, Daniel R. Johnson, Neal Clayton Crago, Sanjay J. Patel
MICRO2