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

Nathan Clark

dblp:28/3910 · DBLP profile ↗
← Back
20ranked-venue papers
7as first author
2since 2021 · last 2025
—ORCID · conflict

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

Systems, architecture and hardware · 17 · 7 first-author · 1 since 2021Software engineering, systems software and programming languages · 7 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 since 2021Artificial intelligence and machine learning · 1 · 1 since 2021

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.

Interdisciplinary, comprehensive, and emerging computing
1 paper
Bioinformatics and computational biology · 50% Computational science and engineering · 50%
Computer architecture, parallel and distributed computing, and storage systems
8 papers
Processor architecture and microarchitecture · 53% Parallel and multicore computing · 20% Hardware accelerators and domain-specific architectures · 19%
Software engineering, system software, and programming languages
8 papers
Compilers and program optimization · 56% Program analysis · 24% Software maintenance and evolution · 10%

Topics — the 23 heaviest of 27, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Computational science and engineering › numerical analysis
convergence analysis
0.912025
Prediction of local convergent shifts in evolutionary rates with phyloConverge · Bioinform. 2025
Bioinformatics and computational biology
phylogenetics
0.912025
Prediction of local convergent shifts in evolutionary rates with phyloConverge · Bioinform. 2025
Program analysis
dynamic analysis
0.222011
Brainy: effective selection of data structures · PLDI 2011
DDT: design and evaluation of a dynamic program analysis for optimizing data structure usage · MICRO 2009
Processor architecture and microarchitecture
instruction set architecture
0.232007
Liquid SIMD: Abstracting SIMD Hardware using Lightweight Dynamic Mapping · HPCA 2007
Application-Specific Processing on a General-Purpose Core via Transparent Instruction Set Customization · MICRO 2004
Processor Acceleration Through Automated Instruction Set Customization · MICRO 2003
Processor architecture and microarchitecture › instruction set architecture
instruction set customization
0.132005
An Architecture Framework for Transparent Instruction Set Customization in Embedded Processors · ISCA 2005
Application-Specific Processing on a General-Purpose Core via Transparent Instruction Set Customization · MICRO 2004
Processor Acceleration Through Automated Instruction Set Customization · MICRO 2003
Compilers and program optimization › program transformation
data structure selection
0.112011
Brainy: effective selection of data structures · PLDI 2011
Parallel and multicore computing › parallel programming runtimes
thread management
0.112010
Thread tailor: dynamically weaving threads together for efficient, adaptive parallel applications · ISCA 2010
Compilers and program optimization › parallelization
automatic parallelization
0.112009
Commutativity analysis for software parallelization: letting program transformations see the big picture · ASPLOS 2009
Compilers and program optimization › dependence analysis
commutativity analysis
0.112009
Commutativity analysis for software parallelization: letting program transformations see the big picture · ASPLOS 2009
Software maintenance and evolution
program comprehension
0.112009
DDT: design and evaluation of a dynamic program analysis for optimizing data structure usage · MICRO 2009
Runtime systems and virtual machines › binary translation
dynamic translation
0.112008
VEAL: Virtualized Execution Accelerator for Loops · ISCA 2008
Compilers and program optimization › loop transformation
loop-nest mapping
0.112008
VEAL: Virtualized Execution Accelerator for Loops · ISCA 2008
Processor architecture and microarchitecture › binary translation
dynamic binary translation
0.112007
Liquid SIMD: Abstracting SIMD Hardware using Lightweight Dynamic Mapping · HPCA 2007
Processor architecture and microarchitecture › instruction set architecture › instruction set extension
application-specific instruction set extension
0.122005
Application-Specific Processing on a General-Purpose Core via Transparent Instruction Set Customization · MICRO 2004
Automated Custom Instruction Generation for Domain-Specific Processor Acceleration · IEEE Trans. Computers 2005
Hardware accelerators and domain-specific architectures › domain-specific accelerator
application-specific processor
0.112005
Automated Custom Instruction Generation for Domain-Specific Processor Acceleration · IEEE Trans. Computers 2005
Processor architecture and microarchitecture › instruction set architecture › instruction set extension
custom instruction generation
0.112005
Automated Custom Instruction Generation for Domain-Specific Processor Acceleration · IEEE Trans. Computers 2005
Electronic design automation
high-level synthesis
0.012003
Processor Acceleration Through Automated Instruction Set Customization · MICRO 2003
Embedded and real-time systems
embedded processor
0.022005
Automated Custom Instruction Generation for Domain-Specific Processor Acceleration · IEEE Trans. Computers 2005
An Architecture Framework for Transparent Instruction Set Customization in Embedded Processors · ISCA 2005
Parallel and multicore computing
parallel programming models
0.012010
Thread tailor: dynamically weaving threads together for efficient, adaptive parallel applications · ISCA 2010
Parallel and multicore computing
thread-level parallelism
0.012010
Thread tailor: dynamically weaving threads together for efficient, adaptive parallel applications · ISCA 2010
Parallel and multicore computing › loop transformation › loop parallelization
code parallelization
0.012009
Commutativity analysis for software parallelization: letting program transformations see the big picture · ASPLOS 2009
Compilers and program optimization
compiler infrastructure
0.012007
Liquid SIMD: Abstracting SIMD Hardware using Lightweight Dynamic Mapping · HPCA 2007
Compilers and program optimization › code generation
SIMD code generation
0.012007
Liquid SIMD: Abstracting SIMD Hardware using Lightweight Dynamic Mapping · HPCA 2007

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

phylogenetic method · 0.9dynamic translation · 0.3dataflow graph design space exploration · 0.2static analysis · 0.2program transformation · 0.2static-dynamic compilation · 0.2lightweight dynamic mapping · 0.1profiling · 0.1dynamic adaptation · 0.1dynamic analysis · 0.1subgraph matching · 0.1static identification · 0.1dynamic realization · 0.1dataflow graph collapsing · 0.1subgraph identification · 0.0
YearPublicationVenuePosition
2025 Surfaceaug: Toward Versatile, Multimodally Consistent Ground Truth Sampling
abstract
Despite recent advances in both model architectures and data augmentation, multimodal object detectors still barely outperform their LiDAR-only counterparts. This shortcoming has been attributed to a lack of sufficiently powerful multimodal data augmentation. To address this, we present SurfaceAug, a novel ground truth sampling algorithm. SurfaceAug pastes objects by resampling both images and point clouds, enabling object-level transformations in both modalities. We evaluate our algorithm by training a multimodal detector on KITTI and compare its performance to previous works. We show experimentally that SurfaceAug demonstrates promising improvements on car detection tasks.
Ryan Rubel, Nathan Clark, Andrew Dudash
ICRA2
2025 Prediction of local convergent shifts in evolutionary rates with phyloConverge
abstract
MOTIVATION: Convergence analysis can characterize genetic elements underlying morphological adaptations. However, its performance on regulatory elements is limited due to their modular composition of transcription factor motifs, which have rapid turnover and experience different evolutionary pressures. RESULTS: We introduce phyloConverge, a phylogenetic method that performs scalable, fine-grained local convergence analysis of genomic elements at flexible length scales. Using a benchmarking case of convergent subterranean mammal adaptation, phyloConverge identifies rate-accelerated conserved noncoding elements (CNEs) with high specificity and statistical robustness relative to competing methods. From CNE-level scoring, we detect the convergent regression of entire CNE units and highlight the contrast that subterranean-associated coding region regression is highly specific to ocular functions, whereas regulatory element regression is enriched for accompanying neuronal phenotypes and other developmental processes. From transcription factor motif-level scoring, we dissect elements into subregions with uneven convergence signals and demonstrate the modular adaptation of CNEs with high functional specificity. Finally, we demonstrate phyloConverge's scalability to perform high-resolution convergence analysis genome-wide. AVAILABILITY AND IMPLEMENTATION: phyloConverge is available at https://github.com/ECSaputra/phyloConverge.
Elysia Saputra, Weiguang Mao, Guillermo Hoffmann Meyer, Nathan Clark, Maria Chikina
Bioinform.4
2019 Systematic discovery of the functional impact of somatic genome alterations in individual tumors through tumor-specific causal inference
abstract
Cancer is mainly caused by somatic genome alterations (SGAs). Precision oncology involves identifying and targeting tumor-specific aberrations resulting from causative SGAs. We developed a novel tumor-specific computational framework that finds the likely causative SGAs in an individual tumor and estimates their impact on oncogenic processes, which suggests the disease mechanisms that are acting in that tumor. This information can be used to guide precision oncology. We report a tumor-specific causal inference (TCI) framework, which estimates causative SGAs by modeling causal relationships between SGAs and molecular phenotypes (e.g., transcriptomic, proteomic, or metabolomic changes) within an individual tumor. We applied the TCI algorithm to tumors from The Cancer Genome Atlas (TCGA) and estimated for each tumor the SGAs that causally regulate the differentially expressed genes (DEGs) in that tumor. Overall, TCI identified 634 SGAs that are predicted to cause cancer-related DEGs in a significant number of tumors, including most of the previously known drivers and many novel candidate cancer drivers. The inferred causal relationships are statistically robust and biologically sensible, and multiple lines of experimental evidence support the predicted functional impact of both the well-known and the novel candidate drivers that are predicted by TCI. TCI provides a unified framework that integrates multiple types of SGAs and molecular phenotypes to estimate which genome perturbations are causally influencing one or more molecular/cellular phenotypes in an individual tumor. By identifying major candidate drivers and revealing their functional impact in an individual tumor, TCI sheds light on the disease mechanisms of that tumor, which can serve to advance our basic knowledge of cancer biology and to support precision oncology that provides tailored treatment of individual tumors.
Chunhui Cai, Gregory F. Cooper, Kevin N. Lu, Shuping Xu, Zhenlong Zhao, Xueer Chen, Adrian V. Lee, Nathan Clark, Vicky Chen, Songjian Lu, Lujia Chen 0001, Liyue Yu, Harry Hochheiser, Xia Jiang, Q. Jane Wang, Xinghua Lu 0001
PLoS Comput. Biol.10
2011 Brainy: effective selection of data structures
abstract
Data structure selection is one of the most critical aspects of developing effective applications. By analyzing data structures' behavior and their interaction with the rest of the application on the underlying architecture, tools can make suggestions for alternative data structures better suited for the program input on which the application runs. Consequently, developers can optimize their data structure usage to make the application conscious of an underlying architecture and a particular program input.
Changhee Jung, Silvius Rus, Brian P. Railing, Nathan Clark, Santosh Pande
PLDI4
2010 Ocelot: a dynamic optimization framework for bulk-synchronous applications in heterogeneous systems
abstract
Ocelot is a dynamic compilation framework designed to map the explicitly data parallel execution model used by NVIDIA CUDA applications onto diverse multithreaded platforms. Ocelot includes a dynamic binary translator from Parallel Thread eXecution ISA (PTX) to many-core processors that leverages the Low Level Virtual Machine (LLVM) code generator to target x86 and other ISAs. The dynamic compiler is able to execute existing CUDA binaries without recompilation from source and supports switching between execution on an NVIDIA GPU and a many-core CPU at runtime. It has been validated against over 130 applications taken from the CUDA SDK, the UIUC Parboil benchmarks [1], the Virginia Rodinia benchmarks [2], the GPU-VSIPL signal and image processing library [3], the Thrust library [4], and several domain specific applications.
Gregory Frederick Diamos, Andrew Kerr, Sudhakar Yalamanchili, Nathan Clark
PACT4
2010 Mighty-morphing power-SIMD
abstract
In modern wireless devices, two broad classes of compute-intensive applications are common: those with high amounts of data-level parallelism, such as signal processing used in wireless baseband applications, and those that have little data-level parallelism, such as encryption. Wide single-instruction multiple-data (SIMD) processors have become popular for providing high performance, yet power efficient data engines for applications with abundant data parallelism. However, the non-data-parallel applications are relegated to a low-performance scalar datapath on these data engines while the SIMD resources are left idle. To accelerate both types of applications, we propose the design of a more flexible SIMD datapath called SIMD-Morph. In SIMD-Morph, code with data-level parallelism can be executed across the lanes in the traditional manner, but the lanes can be morphed into a feed-forward subgraph accelerator to execute scalar applications more efficiently. The morphed SIMD lanes form an accelerator that exploits both instruction-level parallelism as well as operation chaining to improve the performance of scalar code by exploiting the available resources in the SIMD lanes. Experimental results show that the performance impact is a 2.6X improvement for purely non-SIMD applications and a 1.4X improvement for the non-SIMD-ized portions of applications with data parallelism.
Ganesh S. Dasika, Mark Woh, Sangwon Seo, Nathan Clark, Trevor N. Mudge, Scott A. Mahlke
CASES4
2010 Thread tailor: dynamically weaving threads together for efficient, adaptive parallel applications
abstract
Extracting performance from modern parallel architectures requires that applications be divided into many different threads of execution. Unfortunately selecting the appropriate number of threads for an application is a daunting task. Having too many threads can quickly saturate shared resources, such as cache capacity or memory bandwidth, thus degrading performance. On the other hand, having too few threads makes inefficient use of the resources available. Beyond static resource assignment, the program inputs and dynamic system state (e.g., what other applications are executing in the system) can have a significant impact on the right number of threads to use for a particular application.
Janghaeng Lee, Haicheng Wu, Madhumitha Ravichandran, Nathan Clark
ISCA4
2009 Commutativity analysis for software parallelization: letting program transformations see the big picture
abstract
Extracting performance from many-core architectures requires software engineers to create multi-threaded applications, which significantly complicates the already daunting task of software development. One solution to this problem is automatic compile-time parallelization, which can ease the burden on software developers in many situations. Clearly, automatic parallelization in its present form is not suitable for many application domains and new compiler analyses are needed address its shortcomings.
Farhana Aleen, Nathan Clark
ASPLOS2
2009 DDT: design and evaluation of a dynamic program analysis for optimizing data structure usage
abstract
Data structures define how values being computed are stored and accessed within programs. By recognizing what data structures are being used in an application, tools can make applications more robust by enforcing data structure consistency properties, and developers can better understand and more easily modify applications to suit the target architecture for a particular application.
Changhee Jung, Nathan Clark
MICRO2
2008 VEAL: Virtualized Execution Accelerator for Loops
abstract
Performance improvement solely through transistor scaling is becoming more and more difficult, thus it is increasingly common to see domain specific accelerators used in conjunction with general purpose processors to achieve future performance goals. There is a serious drawback to accelerators, though: binary compatibility. An application compiled to utilize an accelerator cannot run on a processor without that accelerator, and applications that do not utilize an accelerator will never use it. To overcome this problem, we propose decoupling the instruction set architecture from the underlying accelerators. Computation to be accelerated is expressed using a processorpsilas baseline instruction set, and light-weight dynamic translation maps the representation to whatever accelerators are available in the system. In this paper, we describe the changes to a compilation framework and processor system needed to support this abstraction for an important set of accelerator designs that support innermost loops. In this analysis, we investigate the dynamic overheads associated with abstraction as well as the static/dynamic tradeoffs to improve the dynamic mapping of loop-nests. As part of the exploration, we also provide a quantitative analysis of the hardware characteristics of effective loop accelerators. We conclude that using a hybrid static-dynamic compilation approach to map computation on to loop-level accelerators is an practical way to increase computation efficiency, without the overheads associated with instruction set modification.
Nathan Clark, Amir Hormati, Scott A. Mahlke
ISCA1
2007 Exploiting Narrow Accelerators with Data-Centric Subgraph Mapping
abstract
The demand for high performance has driven acyclic computation accelerators into extensive use in modern embedded and desktop architectures. Accelerators that are ideal from a software perspective, are difficult or impossible to integrate in many modern architectures, though, due to area and timing requirements. This reality is coupled with the observation that many application domains under-utilize accelerator hardware, because of the narrow data they operate on and the nature of their computation. In this work, we take advantage of these facts to design accelerators capable of executing in modern architectures by narrowing datapath width and reducing interconnect. Novel compiler techniques are developed in order to generate high-quality code for the reduced-cost accelerators and prevent performance loss to the extent possible. First, data width profiling is used to statistically determine how wide program data will be at run time. This information is used by the subgraph mapping algorithm to optimally select subgraphs for execution on targeted narrow accelerators. Overall, our data-centric compilation techniques achieve on average 6.5%, and up to 12%, speed up over previous subgraph mapping algorithms for 8-bit accelerators. We also show that, with appropriate compiler support, the increase in the total number of execution cycles in reduced-interconnect accelerators is less than 1% of the fully-connected accelerator
Amir Hormati, Nathan Clark, Scott A. Mahlke
CGO2
2007 Liquid SIMD: Abstracting SIMD Hardware using Lightweight Dynamic Mapping
abstract
Microprocessor designers commonly utilize SIMD accelerators and their associated instruction set extensions to provide substantial performance gains at a relatively low cost for media applications. One of the most difficult problems with using SIMD accelerators is forward migration to newer generations. With larger hardware budgets and more demands for performance, SIMD accelerators evolve with both larger data widths and increased functionality with each new generation. However, this causes difficult problems in terms of binary compatibility, software migration costs, and expensive redesign of the instruction set architecture. In this work, we propose Liquid SIMD to decouple the instruction set architecture from the SIMD accelerator. SIMD instructions are expressed using a processor's baseline scalar instruction set, and light-weight dynamic translation maps the representation onto a broad family of SIMD accelerators. Liquid SIMD effectively bypasses the problems inherent to instruction set modification and binary compatibility across accelerator generations. We provide a detailed description of changes to a compilation framework and processor pipeline needed to support this abstraction. Additionally, we show that the hardware overhead of dynamic optimization is modest, hardware changes do not affect cycle time of the processor, and the performance impact of abstracting the SIMD accelerator is negligible. We conclude that using dynamic techniques to map instructions onto SIMD accelerators is an effective way to improve computation efficiency, without the overhead associated with modifying the instruction set
Nathan Clark, Amir Hormati, Sami Yehia, Scott A. Mahlke, Krisztián Flautner
HPCA1
2006 Scalable subgraph mapping for acyclic computation accelerators
abstract
Computer architects are constantly faced with the need to improve performance and increase the efficiency of computation in their designs. To this end, it is increasingly common to see acyclic com-putation accelerators appear in embedded processor designs. One major problem with adding accelerators to a design is that it is difficult to generate high-quality code utilizing them. Hand-written assembly code is typical, and if compiler support does exist, it is implemented using only greedy algorithms. In this work, we investigate more thorough techniques for compiling to processors with acyclic accelerators. Where as greedy solutions only explore one possible solution, the techniques presented in this paper explore the entire design space, when possible. Intelligent pruning methods are employed to ensure compilation is both tractable and scalable. Overall, our new compilation algorithms produce code that performs on average 10%, and up to 32% better than standard greedy methods. These algorithms also run in less than one second for more than 98% of basic blocks tested.
Nathan Clark, Amir Hormati, Scott A. Mahlke, Sami Yehia
CASES1
2005 Exploring the design space of LUT-based transparent accelerators
abstract
Instruction set customization accelerates the performance of applications by compressing the length of critical dependence paths and reducing the demands on processor resources. With instruction set customization, specialized accelerators are added to a conventional processor to atomically execute dataflow subgraphs. Accelerators that are exploited without explicit changes to the instruction set architecture of the processor are said to be transparent. Transparent acceleration relies on a light-weight hardware engine to dynamically generate control signals for the accelerator, using subgraphs delineated by a compiler. The design of transparent subgraph accelerators is challenging, as critical subgraphs need to be supported efficiently while maintaining area and timing constraints. Additionally, more complex accelerators require more sophisticated control generation engines. These factors must be carefully balanced. In this work, we investigate the design of subgraph accelerators using configurable lookup table structures. These designs provide an effective paradigm to execute a wide range of subgraphs involving arithmetic and logic operations. We describe why lookup table designs are effective, how they fit into a transparent acceleration framework, and evaluate the effectiveness of a wide range of de-signs using both simulation and logic synthesis.
Sami Yehia, Nathan Clark, Scott A. Mahlke, Krisztián Flautner
CASES2
2005 An Architecture Framework for Transparent Instruction Set Customization in Embedded Processors
abstract
Instruction set customization is an effective way to improve processor performance. Critical portions of application data-flow graphs are collapsed for accelerated execution on specialized hardware. Collapsing dataflow subgraphs will compress the latency along critical paths and reduces the number of intermediate results stored in the register file. While custom instructions can be effective, the time and cost of designing a new processor for each application is immense. To overcome this roadblock, this paper proposes a flexible architectural framework to transparently integrate custom instructions into a general-purpose processor. Hardware accelerators are added to the processor to execute the collapsed subgraphs. A simple microarchitectural interface is provided to support a plug-and-play model for integrating a wide range of accelerators into a pre-designed and verified processor core. The accelerators are exploited using an approach of static identification and dynamic realization. The compiler is responsible for identifying profitable subgraphs, while the hardware handles discovery, mapping, and execution of compatible subgraphs. This paper presents the design of a plug-and-play transparent accelerator system arid evaluates the cost/performance implications of the design.
Nathan Clark, Jason A. Blome, Michael L. Chu, Scott A. Mahlke, Stuart Biles, Krisztián Flautner
ISCA1
2005 Automated Custom Instruction Generation for Domain-Specific Processor Acceleration
abstract
Application-specific extensions to the computational capabilities of a processor provide an efficient mechanism to meet the growing performance and power demands of embedded applications. Hardware, in the form of new function units (or coprocessors), and the corresponding instructions are added to a baseline processor to meet the critical computational demands of a target application. In this paper, the design of a system to automate the instruction set customization process is presented. A dataflow graph design space exploration engine efficiently identifies computation subgraphs to create custom hardware and a compiler subgraph matching framework seamlessly exploits this hardware. We demonstrate the effectiveness of this system across a range of application domains and study the applicability of the custom hardware across an entire application domain. Generalization techniques are presented which enable the application-specific hardware to be more effectively used across a domain.
Nathan Clark, Hongtao Zhong, Scott A. Mahlke
IEEE Trans. Computers1
2004 FLASH: Foresighted Latency-Aware Scheduling Heuristic for Processors with Customized Datapaths
abstract
Application-specific instruction set processors (ASIPs) have the potential to meet the challenging cost, performance, and power goals of future embedded processors by customizing the hardware to suit an application. A central problem is creating compilers that are capable of dealing with the heterogeneous and nonuniform hardware created by the customization process. The processor datapath provides an effective area to customize, but specialized datapaths often have nonuniform connectivity between the function units, making the effective latency of a function unit dependent on the consuming operation. Traditional instruction schedulers break down in this environment due to their locally greedy nature of binding the best choice for a single operation even though that choice may be poor due to a lack of communication paths. To effectively schedule with nonuniform connectivity, we propose a foresighted latency-aware scheduling heuristic (FLASH) that performs lookahead across future scheduling steps to estimate the effects of a potential binding. FLASH combines a set of lookahead heuristics to achieve effective foresight with low compile-time overhead.
Manjunath Kudlur, Kevin Fan, Michael L. Chu, Rajiv A. Ravindran, Nathan Clark, Scott A. Mahlke
CGO5
2004 Application-Specific Processing on a General-Purpose Core via Transparent Instruction Set Customization
abstract
Application-specific instruction set extensions are an effective way of improving the performance of processors. Critical computation subgraphs can be accelerated by collapsing them into new instructions that are executed on specialized function units. Collapsing the subgraphs simultaneously reduces the length of computation as well as the number of intermediate results stored in the register file. The main problem with this approach is that a new processor must be generated for each application domain. While new instructions can be designed automatically, there is a substantial amount of engineering cost incurred to verify and to implement the final custom processor. In this work, we propose a strategy to transparent customization of the core computation capabilities of the processor without changing its instruction set. A congurable array of function units is added to the baseline processor that enables the acceleration of a wide range of data flow subgraphs. To exploit the array, the microarchitecture performs subgraph identification at run-time, replacing them with new microcode instructions to configure and utilize the array. We compare the effectiveness of replacing subgraphs in the fill unit of a trace cache versus using a translation table during decode, and evaluate the tradeoffs between static and dynamic identification of subgraphs for instruction set customization.
Nathan Clark, Manjunath Kudlur, Hyunchul Park 0001, Scott A. Mahlke, Krisztián Flautner
MICRO1
2003 Systematic Register Bypass Customization for Application-Specific Processors
abstract
Register bypass provides additional datapaths to eliminate data hazards in processor pipelines. The difficulty with register bypass is that the cost of the bypass network is substantial and grows substantially as processor width or pipeline depth are increased. For a single application, many of the bypass paths have extremely low utilization. Thus, there is an important opportunity in the design of application-specific processors to remove a large fraction of the bypass cost while maintaining performance comparable to a processor with full bypass. We propose a systematic design customization process along with a bypass-cognizant compiler scheduler. For the former, we employ iterative design space exploration wherein successive processor designs are selected based on bypass utilization statistics combined with the availability of redundant bypass paths. Compiler scheduling for sparse bypass processors is accomplished by prioritizing function unit choices for each operation prior to scheduling using global information. Results show that for a 5-issue customized VLIW processor, 70% of the bypass cost is eliminated while sacrificing only 10% performance.
Kevin Fan, Nathan Clark, Michael L. Chu, K. V. Manjunath, Rajiv A. Ravindran, Mikhail Smelyanskiy, Scott A. Mahlke
ASAP2
2003 Processor Acceleration Through Automated Instruction Set Customization
abstract
Application-specific extensions to the computational capabilities of a processor provide an efficient mechanism to meet the growing performance and power demands of embedded applications. Hardware, in the form of new function units (or co-processors), and the corresponding instructions, are added to a baseline processor to meet the critical computational demands of a target application. The central challenge with this approach is the large degree of human effort required to identify and create the custom hardware units, as well as porting the application to the extended processor. In this paper, we present the design of a system to automate the instruction set customization process. A dataflow graph design space exploration engine efficiently identifies profitable computation subgraphs from which to create custom hardware, without artificially constraining their size or shape. The system also contains a compiler subgraph matching framework that identifies opportunities to exploit and generalize the hardware to support more computation graphs. We demonstrate the effectiveness of this system across a range of application domains and study the applicability of the custom hardware across the domain.
Nathan Clark, Hongtao Zhong, Scott A. Mahlke
MICRO1