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

Michael Adler

dblp:21/2181 · DBLP profile ↗
← Back
18ranked-venue papers
1as first author
0since 2021 · last 2017
—ORCID · none

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

Systems, architecture and hardware · 17 · 1 first-authorSoftware engineering, systems software and programming languages · 2

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
10 papers
Reconfigurable computing and FPGAs · 46% Hardware accelerators and domain-specific architectures · 11% Electronic design automation · 11%
Software engineering, system software, and programming languages
3 papers
Compilers and program optimization · 94% Operating systems · 6%

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

TopicWeightPapersLastEvidence papers
Reconfigurable computing and FPGAs
FPGA memory architecture
0.522017
Automatic Construction of Program-Optimized FPGA Memory Networks · FPGA 2017
LMC: Automatic Resource-Aware Program-Optimized Memory Partitioning · FPGA 2016
Hardware accelerators and domain-specific architectures
spatial architecture
0.422015
Efficient Control and Communication Paradigms for Coarse-Grained Spatial Architectures · ACM Trans. Comput. Syst. 2015
Triggered instructions: a control paradigm for spatially-programmed architectures · ISCA 2013
Compilers and program optimization
memory optimization
0.312017
Automatic Construction of Program-Optimized FPGA Memory Networks · FPGA 2017
Compilers and program optimization › compiler optimization
memory partitioning
0.212016
LMC: Automatic Resource-Aware Program-Optimized Memory Partitioning · FPGA 2016
Reconfigurable computing and FPGAs
coarse-grained reconfigurable architecture
0.212015
Efficient Control and Communication Paradigms for Coarse-Grained Spatial Architectures · ACM Trans. Comput. Syst. 2015
Reconfigurable computing and FPGAs › FPGA partitioning
multi-FPGA partitioning
0.112012
Leveraging latency-insensitivity to ease multiple FPGA design · FPGA 2012
Memory systems
cache management
0.112011
Leap scratchpads: automatic memory and cache management for reconfigurable logic · FPGA 2011
Reconfigurable computing and FPGAs
FPGA-accelerated simulation
0.112011
HAsim: FPGA-based high-detail multicore simulation using time-division multiplexing · HPCA 2011
Performance modeling and evaluation › simulation › processor simulation
multicore simulation
0.112011
HAsim: FPGA-based high-detail multicore simulation using time-division multiplexing · HPCA 2011
Electronic design automation
hardware description language
0.112009
Soft connections: addressing the hardware-design modularity problem · DAC 2009
Electronic design automation › system-level design
module interface
0.112009
Soft connections: addressing the hardware-design modularity problem · DAC 2009
Electronic design automation
high-level synthesis
0.112017
Automatic Construction of Program-Optimized FPGA Memory Networks · FPGA 2017
Performance modeling and evaluation
simulation
0.112008
A-Ports: an efficient abstraction for cycle-accurate performance models on FPGAs · FPGA 2008
Memory systems
cache design
0.112016
LMC: Automatic Resource-Aware Program-Optimized Memory Partitioning · FPGA 2016
Reconfigurable computing and FPGAs
FPGA design flow
0.112015
Growing a Healthy FPGA Ecosystem · FPGA 2015
Parallel and multicore computing
pipeline parallelism
0.112015
Efficient Control and Communication Paradigms for Coarse-Grained Spatial Architectures · ACM Trans. Comput. Syst. 2015
Reconfigurable computing and FPGAs › coarse-grained reconfigurable architecture
processing element array
0.012013
Triggered instructions: a control paradigm for spatially-programmed architectures · ISCA 2013
Operating systems › resource management › memory management
virtual memory
0.012011
Leap scratchpads: automatic memory and cache management for reconfigurable logic · FPGA 2011
Processor architecture and microarchitecture
multicore design
0.012011
HAsim: FPGA-based high-detail multicore simulation using time-division multiplexing · HPCA 2011

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

resource-aware compilation · 0.5virtual memory · 0.2scratchpad memory · 0.2latency-insensitive channels · 0.2latency-insensitive design · 0.1automatic partitioning · 0.1time-division multiplexing · 0.1compilation-time connection resolution · 0.1
YearPublicationVenuePosition
2017 Automatic Construction of Program-Optimized FPGA Memory Networks
Hsin-Jung Yang, Kermin Fleming, Felix Winterstein, Annie I. Chen, Michael Adler, Joel S. Emer
FPGA5
2017 (FPL 2015) Scavenger: Automating the Construction of Application-Optimized Memory Hierarchies
abstract
High-level abstractions separate algorithm design from platform implementation, allowing programmers to focus on algorithms while building complex systems. This separation also provides system programmers and compilers an opportunity to optimize platform services on an application-by-application basis. In field-programmable gate arrays (FPGAs), platform-level malleability extends to the memory system: Unlike general-purpose processors, in which memory hardware is fixed at design time, the capacity, associativity, and topology of FPGA memory systems may all be tuned to improve application performance. Since application kernels may only explicitly use few memory resources, substantial memory capacity may be available to the platform for use on behalf of the user program. In this work, we present Scavenger, which utilizes spare resources to construct program-optimized memories, and we also perform an initial exploration of methods for automating the construction of these application-specific memory hierarchies. Although exploiting spare resources can be beneficial, naïvely consuming all memory resources may cause frequency degradation. To relieve timing pressure in large block RAM (BRAM) structures, we provide microarchitectural techniques to trade memory latency for design frequency. We demonstrate, by examining a set of benchmarks, that our scalable cache microarchitecture achieves performance gains of 7% to 74% (with a 26% geometric mean on average) over the baseline cache microarchitecture when scaling the size of first-level caches to the maximum.
Hsin-Jung Yang, Kermin Fleming, Felix Winterstein, Michael Adler, Joel S. Emer
ACM Trans. Reconfigurable Technol. Syst.4
2016 LMC: Automatic Resource-Aware Program-Optimized Memory Partitioning
abstract
As FPGAs have grown in size and capacity, FPGA memory systems have become both richer and more diverse in order to support the increased computational capacity of FPGA fabrics. Using these resources, and using them well, has become commensurately more difficult, especially in the context of legacy designs ported from smaller, simpler FPGA systems. This growing complexity necessitates resource-aware compilers that can make good use of memory resources on behalf of the programmer. In this work, we introduce the LEAP Memory Compiler (LMC), which can synthesize application-optimized cache networks for systems with multiple memory resources, enabling user programs to automatically take advantage of the expanded memory capabilities of modern FPGA systems. In our experiments, the optimized cache network achieves up to 49% performance gains for throughput-oriented applications and 15% performance gains for latency-oriented applications, while increasing design area by less than 6% of the total chip area.
Hsin-Jung Yang, Kermin Fleming, Michael Adler, Felix Winterstein, Joel S. Emer
FPGA3
2015 Growing a Healthy FPGA Ecosystem
abstract
The personal computer market grew exponentially in the 1980's for vendors such as Apple, Microsoft, and Intel when there was a healthy mix of software, tools, and microprocessor devices.
John Lockwood, Michael Adler, Dan Mansur, Derek Chiou, Mike Strickland, Jason Cong, Steve Teig
FPGA2
2015 Scavenger: Automating the construction of application-optimized memory hierarchies
abstract
High-level abstractions separate algorithm design from platform implementation, allowing programmers to focus on algorithms while building increasingly complex systems. This separation also provides system programmers and compilers an opportunity to optimize platform services for each application. In FPGAs, this platform-level malleability extends to the memory system: unlike general-purpose processors, in which memory hardware is fixed at design time, the capacity, associativity, and topology of FPGA memory systems may all be tuned to improve application performance. Since application kernels often use few memory resources, substantial memory capacity may be available to the platform for use on behalf of the user program. In this work, we perform an initial exploration of methods for automating the construction of these application-specific memory hierarchies. Although exploiting spare resources can be beneficial, naïvely consuming all memory resources may cause frequency degradation. To relieve timing pressure in large BRAM structures, we provide microarchitectural techniques to trade memory latency for design frequency. We demonstrate, by examining both hand-assembled and HLS-compiled benchmarks, that our application-optimized memory system can improve pre-existing application runtime by 25% on average.
Hsin-Jung Yang, Kermin Fleming, Michael Adler, Felix Winterstein, Joel S. Emer
FPL3
2015 Efficient Control and Communication Paradigms for Coarse-Grained Spatial Architectures
abstract
There has been recent interest in exploring the acceleration of nonvectorizable workloads with spatially programmed architectures that are designed to efficiently exploit pipeline parallelism. Such an architecture faces two main problems: how to efficiently control each processing element (PE) in the system, and how to facilitate inter-PE communication without the overheads of traditional shared-memory coherent memory. In this article, we explore solving these problems using triggered instructions and latency-insensitive channels. Triggered instructions completely eliminate the program counter (PC) and allow programs to transition concisely between states without explicit branch instructions. Latency-insensitive channels allow efficient communication of inter-PE control information while simultaneously enabling flexible code placement and improving tolerance for variable events such as cache accesses. Together, these approaches provide a unified mechanism to avoid overserialized execution, essentially achieving the effect of techniques such as dynamic instruction reordering and multithreading. Our analysis shows that a spatial accelerator using triggered instructions and latency-insensitive channels can achieve 8 × greater area-normalized performance than a traditional general-purpose processor. Further analysis shows that triggered control reduces the number of static and dynamic instructions in the critical paths by 62% and 64%, respectively, over a PC-style baseline, increasing the performance of the spatial programming approach by 2.0 ×.
Michael Pellauer, Angshuman Parashar, Michael Adler, Bushra Ahsan, Randy L. Allmon, Neal Clayton Crago, Kermin Fleming, Mohit Gambhir, Aamer Jaleel, Tushar Krishna, Daniel Lustig, Stephen Maresh, Vladimir Pavlov, Rachid Rayess, Antonia Zhai, Joel S. Emer
ACM Trans. Comput. Syst.3
2014 LEAP Shared Memories: Automating the Construction of FPGA Coherent Memories
abstract
Parallel programming has been widely used in many scientific and technical areas to solve large problems. While general-purpose processors have rich infrastructure to support parallel programming on shared memory, such as coherent caches and synchronization libraries, parallel programming infrastructure for FPGAs is limited. Thus, development of FPGA-based parallel algorithms remains difficult. In this work, we seek to simplify parallel programming on FPGAs. We provide a set of easy-to-use declarative primitives to maintain coherency and consistency of accesses to shared memory resources. We propose a shared-memory service that automatically manages coherent caches on multiple FPGAs. Experimental results of a 2-dimensional heat transfer equation show that the shared memory service with our distributed coherent caches outperforms a centralized cache by 2.6x. To handle synchronization, we provide new lock and barrier primitives that leverage native FPGA communication capabilities and outperform traditional through-memory primitives by 1.8x.
Hsin-Jung Yang, Kermin Fleming, Michael Adler, Joel S. Emer
FCCM3
2014 The LEAP FPGA operating system
abstract
FPGAs offer attractive power and performance for many applications, especially relative to traditional sequential architectures. In spite of these advantages, FPGAs have been deployed in only a few, niche domains.We argue that the difficulty of programming FPGAs all but precludes their use in more general systems: FPGA programmers are currently exposed to all the gory system details that software operating systems long ago abstracted away. In this work, we present the Latency-insensitive Environment for Application Programming (LEAP), an FPGA operating system built around latency-insensitive communications channels. LEAP alleviates the FPGA programming problem by providing a rich set of portable latency-insensitive abstraction layers for program development. Unlike software operating systems services, which are generally dynamic, the nature of FPGAs requires that many configuration decisions be made at compile time. We present an extensible interface for compile-time management of resources. We demonstrate that LEAP provides design portability, while consuming as little as 3% of FPGA area, by mapping several designs on to various FPGA platforms.
Kermin Fleming, Hsin-Jung Yang, Michael Adler, Joel S. Emer
FPL3
2013 Optimizing under abstraction: Using prefetching to improve FPGA performance
abstract
In an effort to speed the development of FPGA-based accelerators, recent research has focused on providing FPGA developers with memory and communications abstractions. Because abstraction decouples the function of these interfaces from their implementation, these new interfaces present an enormous opportunity for optimization. In this paper we examine stride prefetching as a means of improving the performance of an automatically synthesized, abstract memory hierarchy. We demonstrate, by applying our technique to several large benchmarks, that prefetching can improve preexisting application runtime by 15% on average, and up to 40%, without requiring program modification.
Hsin-Jung Yang, Kermin Fleming, Michael Adler, Joel S. Emer
FPL3
2013 Triggered instructions: a control paradigm for spatially-programmed architectures
abstract
In this paper, we present triggered instructions, a novel control paradigm for arrays of processing elements (PEs) aimed at exploiting spatial parallelism. Triggered instructions completely eliminate the program counter and allow programs to transition concisely between states without explicit branch instructions. They also allow efficient reactivity to inter-PE communication traffic. The approach provides a unified mechanism to avoid over-serialized execution, essentially achieving the effect of techniques such as dynamic instruction reordering and multithreading, which each require distinct hardware mechanisms in a traditional sequential architecture.
Angshuman Parashar, Michael Pellauer, Michael Adler, Bushra Ahsan, Neal Clayton Crago, Daniel Lustig, Vladimir Pavlov, Antonia Zhai, Mohit Gambhir, Aamer Jaleel, Randy L. Allmon, Rachid Rayess, Stephen Maresh, Joel S. Emer
ISCA3
2012 Leveraging latency-insensitivity to ease multiple FPGA design
abstract
Traditionally, hardware designs partitioned across multiple FPGAs have had low performance due to the inefficiency of maintaining cycle-by-cycle timing among discrete FPGAs. In this paper, we present a mechanism by which complex designs may be efficiently and automatically partitioned among multiple FPGAs using explicitly programmed latency-insensitive links. We describe the automatic synthesis of an area efficient, high performance network for routing these inter-FPGA links. By mapping a diverse set of large research prototypes onto a multiple FPGA platform, we demonstrate that our tool obtains significant gains in design feasibility, compilation time, and even wall-clock performance.
Kermin Fleming, Michael Adler, Michael Pellauer, Angshuman Parashar, Arvind 0001, Joel S. Emer
FPGA2
2012 ZIP-IO: Architecture for application-specific compression of Big Data
abstract
We have entered the “Big Data” age: scaling of networks and sensors has led to exponentially increasing amounts of data. Compression is an effective way to deal with many of these large data sets, and application-specific compression algorithms have become popular in problems with large working sets. Unfortunately, these compression algorithms are often computationally difficult and can result in application-level slow-down when implemented in software. To address this issue, we investigate ZIP-IO, a framework for FPGA-accelerated compression. Using this system we demonstrate that an unmodified industrial software workload can be accelerated 3x while simultaneously achieving more than 1000x compression in its data set.
Sang Woo Jun, Kermin Fleming, Michael Adler, Joel S. Emer
FPT3
2011 Leap scratchpads: automatic memory and cache management for reconfigurable logic
abstract
Developers accelerating applications on FPGAs or other reconfigurable logic have nothing but raw memory devices in their standard toolkits. Each project typically includes tedious development of single-use memory management. Software developers expect a programming environment to include automatic memory management. Virtual memory provides the illusion of very large arrays and processor caches reduce access latency without explicit programmer instructions.
Michael Adler, Kermin Fleming, Angshuman Parashar, Michael Pellauer, Joel S. Emer
FPGA1
2011 HAsim: FPGA-based high-detail multicore simulation using time-division multiplexing
abstract
In this paper we present the HAsim FPGA-accelerated simulator. HAsim is able to model a shared-memory multicore system including detailed core pipelines, cache hierarchy, and on-chip network, using a single FPGA. We describe the scaling techniques that make this possible, including novel uses of time-multiplexing in the core pipeline and on-chip network. We compare our time-multiplexed approach to a direct implementation, and present a case study that motivates why high-detail simulations should continue to play a role in the architectural exploration process.
Michael Pellauer, Michael Adler, Michel A. Kinsy, Angshuman Parashar, Joel S. Emer
HPCA2
2009 Soft connections: addressing the hardware-design modularity problem
abstract
Hardware-design languages typically impose a rigid communication hierarchy that follows module instantiation. This leads to an undesirable side-effect where changes to a child's interface result in changes to the parents. Soft connections address this problem by allowing the user to specify connection endpoints that are automatically connected at compilation time, rather than by the user.
Michael Pellauer, Michael Adler, Derek Chiou, Joel S. Emer
DAC2
2009 A-Port Networks: Preserving the Timed Behavior of Synchronous Systems for Modeling on FPGAs
abstract
Computer architects need to run cycle-accurate performance models of processors orders of magnitude faster. We discuss why the speedup on traditional multicores is limited, and why FPGAs represent a good vehicle to achieve a dramatic performance improvement over software models. This article introduces A-Port Networks, a simulation scheme designed to expose the fine-grained parallelism inherent in performance models and efficiently exploit them using FPGAs.
Michael Pellauer, Muralidaran Vijayaraghavan, Michael Adler, Arvind 0001, Joel S. Emer
ACM Trans. Reconfigurable Technol. Syst.3
2008 A-Ports: an efficient abstraction for cycle-accurate performance models on FPGAs
abstract
Recently there has been interest in using FPGAs as a platform for cycle-accurate performance models. We discuss how the properties of FPGAs make them a good platform to achieve a performance improvement over software models. Some metrics are developed to gain insight into the strengths and weaknesses of different simulation methodologies. This paper introduces A-Ports, a distributed, efficient simulation scheme for creating cycle-accurate performance models on FPGAs. Finally, we quantitatively demonstrate an average performance improvement of 19% using A-Ports over other FPGA-based simulation schemes
Michael Pellauer, Muralidaran Vijayaraghavan, Michael Adler, Arvind 0001, Joel S. Emer
FPGA3
2008 Quick Performance Models Quickly: Closely-Coupled Partitioned Simulation on FPGAs
abstract
In this paper we explore microprocessor performance models implemented on FPGAs. While FPGAs can help with simulation speed, the increased implementation complexity can degrade model development time. We assess whether a simulator split into closely-coupled timing and functional partitions can address this by easing the development of timing models while retaining fine-grained parallelism. We give the semantics of our simulator partitioning, and discuss the architecture of its implementation on an FPGA. We describe how three timing models of vastly different target processors can use the same functional partition, and assess their performance.
Michael Pellauer, Muralidaran Vijayaraghavan, Michael Adler, Arvind 0001, Joel S. Emer
ISPASS3