Demo Data from EDBT 2026 / reviewers in the wild / expert
Daniel R. Johnson
dblp:69/7115
· DBLP profile ↗
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
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
GPUs and heterogeneous computing › GPU scheduling
warp scheduling |
0.8 | 2 | 2022 | GPU Subwarp Interleaving · HPCA 2022 A variable warp size architecture · ISCA 2015 |
GPUs and heterogeneous computing
GPU microarchitecture |
0.7 | 2 | 2022 | 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.6 | 2 | 2022 | GPU Subwarp Interleaving · HPCA 2022 A variable warp size architecture · ISCA 2015 |
GPUs and heterogeneous computing
GPU architecture |
0.6 | 3 | 2015 | 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.6 | 1 | 2022 | GPU Subwarp Interleaving · HPCA 2022 |
Processor architecture and microarchitecture › pipelining
pipeline stall |
0.6 | 1 | 2022 | GPU Subwarp Interleaving · HPCA 2022 |
Memory systems
cache |
0.5 | 2 | 2016 | 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.3 | 1 | 2017 | Architecting an Energy-Efficient DRAM System for GPUs · HPCA 2017 |
Memory systems › DRAM
energy-efficient DRAM |
0.3 | 1 | 2017 | Architecting an Energy-Efficient DRAM System for GPUs · HPCA 2017 |
GPUs and heterogeneous computing › GPU memory
GPU memory hierarchy |
0.3 | 1 | 2017 | Architecting an Energy-Efficient DRAM System for GPUs · HPCA 2017 |
Processor architecture and microarchitecture
register file |
0.3 | 2 | 2012 | 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.2 | 1 | 2016 | A patch memory system for image processing and computer vision · MICRO 2016 |
GPUs and heterogeneous computing › GPU memory management
GPU cache management |
0.2 | 1 | 2015 | Priority-based cache allocation in throughput processors · HPCA 2015 |
GPUs and heterogeneous computing
GPU computing |
0.2 | 1 | 2015 | Flexible software profiling of GPU architectures · ISCA 2015 |
Parallel and multicore computing › parallel scheduling
thread scheduling |
0.2 | 2 | 2015 | 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.2 | 1 | 2014 | Scaling the Power Wall: A Path to Exascale · SC 2014 |
Integrated circuit design
low-power circuit design |
0.2 | 1 | 2014 | Scaling the Power Wall: A Path to Exascale · SC 2014 |
Integrated circuit design › memory circuit design
low-voltage SRAM |
0.2 | 1 | 2014 | Scaling the Power Wall: A Path to Exascale · SC 2014 |
Energy-efficient computing
power wall |
0.2 | 1 | 2014 | Scaling the Power Wall: A Path to Exascale · SC 2014 |
Rendering
ray tracing |
0.2 | 1 | 2022 | GPU Subwarp Interleaving · HPCA 2022 |
Processor architecture and microarchitecture › register file
hierarchical register file |
0.1 | 1 | 2012 | A Hierarchical Thread Scheduler and Register File for Energy-Efficient Throughput Processors · ACM Trans. Comput. Syst. 2012 |
Processor architecture and microarchitecture
throughput processor |
0.1 | 1 | 2012 | 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.1 | 1 | 2011 | Energy-efficient mechanisms for managing thread context in throughput processors · ISCA 2011 |
Memory systems
cache coherence |
0.1 | 1 | 2010 | Cohesion: a hybrid memory model for accelerators · ISCA 2010 |
Hardware accelerators and domain-specific architectures
many-core accelerator |
0.1 | 1 | 2009 | Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2009 | 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.1 | 1 | 2009 | Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009 |
Hardware accelerators and domain-specific architectures
image processing accelerator |
0.1 | 1 | 2016 | A patch memory system for image processing and computer vision · MICRO 2016 |
Electronic design automation
design space exploration |
0.1 | 1 | 2015 | Flexible software profiling of GPU architectures · ISCA 2015 |
Parallel and multicore computing › parallel programming runtimes › thread management
thread throttling |
0.1 | 1 | 2015 | 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
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | GPU Subwarp InterleavingabstractRaytracing 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 |
HPCA | 4 |
| 2020 | Speculative reconvergence for improved SIMT efficiencyabstractGPUs 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 |
CGO | 2 |
| 2017 | Architecting an Energy-Efficient DRAM System for GPUsabstractThis 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 |
HPCA | 4 |
| 2016 | A patch memory system for image processing and computer visionabstractFrom 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 |
MICRO | 4 |
| 2015 | Priority-based cache allocation in throughput processorsabstractGPUs 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 |
HPCA | 3 |
| 2015 | A variable warp size architectureabstractThis 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 |
ISCA | 2 |
| 2015 | Flexible software profiling of GPU architecturesabstractTo 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 |
ISCA | 5 |
| 2014 | Scaling the Power Wall: A Path to ExascaleabstractModern 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 |
SC | 2 |
| 2012 | A Hierarchical Thread Scheduler and Register File for Energy-Efficient Throughput ProcessorsabstractModern 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 processorsabstractModern 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 |
ISCA | 2 |
| 2010 | GoldMine: Automatic assertion generation using data mining and static analysisabstractWe 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 |
DATE | 6 |
| 2010 | Cohesion: a hybrid memory model for acceleratorsabstractTwo 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 |
ISCA | 2 |
| 2009 | A Task-Centric Memory Model for Scalable Accelerator ArchitecturesabstractThis 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 |
PACT | 2 |
| 2009 | Rigel: an architecture and scalable programming interface for a 1000-core acceleratorabstractThis 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 |
ISCA | 2 |
| 2008 | Tradeoffs in designing accelerator architectures for visual computingabstractVisualization, 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 |
MICRO | 2 |