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.

Alexandre E. Eichenberger

dblp:e/AlexandreEEichenberger · DBLP profile ↗
← Back
28ranked-venue papers
10as first author
2since 2021 · last 2024
—ORCID · none

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

Systems, architecture and hardware · 20 · 7 first-author · 1 since 2021Software engineering, systems software and programming languages · 5 · 3 first-authorTheory of computation · 3Databases, data management, data science and information retrieval · 2 · 1 since 2021Artificial intelligence and machine learning · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
8 papers
Reconfigurable computing and FPGAs · 41% Energy-efficient computing · 41% Parallel and multicore computing · 12%
Software engineering, system software, and programming languages
11 papers
Compilers and program optimization · 94% Concurrent programming · 4% Operating systems · 2%
Artificial intelligence
1 paper
Transfer learning and domain adaptation · 77% Language models and text generation · 23%

Topics — the 29 heaviest of 31, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Reconfigurable computing and FPGAs › reconfigurable architecture
dynamic configuration
0.512021
Intelligent Adaptation of Hardware Knobs for Improving Performance and Power Consumption · IEEE Trans. Computers 2021
Machine learning › Transfer learning and domain adaptation
zero-shot learning
0.412020
Language to Network: Conditional Parameter Adaptation with Natural Language Descriptions · ACL 2020
Compilers and program optimization
instruction scheduling
0.282001
Scheduling Superblocks with Bound-Based Branch Trade-Offs · IEEE Trans. Computers 2001
An integrated approach to accelerate data and predicate computations in hyperblocks · MICRO 2000
Balance Scheduling: Weighting Branch Tradeoffs in Superblocks · MICRO 1999
Parallel and multicore computing
workload adaptation
0.112021
Intelligent Adaptation of Hardware Knobs for Improving Performance and Power Consumption · IEEE Trans. Computers 2021
Natural language and speech › Language models and text generation
natural language understanding
0.112020
Language to Network: Conditional Parameter Adaptation with Natural Language Descriptions · ACL 2020
Compilers and program optimization
loop transformation
0.112009
Compact multi-dimensional kernel extraction for register tiling · SC 2009
Compilers and program optimization › loop transformation
register tiling
0.112009
Compact multi-dimensional kernel extraction for register tiling · SC 2009
Compilers and program optimization › instruction scheduling › software pipelining
modulo scheduling
0.141998
Effective Cluster Assignment for Modulo Scheduling · MICRO 1998
Efficient Formulation for Optimal Modulo Schedulers · PLDI 1997
Stage scheduling: a technique to reduce the register requirements of a modulo schedule · MICRO 1995
Compilers and program optimization › instruction scheduling
superblock scheduling
0.122001
Scheduling Superblocks with Bound-Based Branch Trade-Offs · IEEE Trans. Computers 2001
Balance Scheduling: Weighting Branch Tradeoffs in Superblocks · MICRO 1999
Compilers and program optimization
code generation
0.012004
Vectorization for SIMD architectures with alignment constraints · PLDI 2004
Compilers and program optimization › vectorization
SIMD vectorization
0.012004
Vectorization for SIMD architectures with alignment constraints · PLDI 2004
Compilers and program optimization
vectorization
0.012004
Vectorization for SIMD architectures with alignment constraints · PLDI 2004
Compilers and program optimization
register allocation
0.031995
Stage scheduling: a technique to reduce the register requirements of a modulo schedule · MICRO 1995
Register allocation for predicated code · MICRO 1995
Minimum register requirements for a modulo schedule · MICRO 1994
Compilers and program optimization › instruction scheduling
instruction-level parallelism
0.012001
Scheduling Superblocks with Bound-Based Branch Trade-Offs · IEEE Trans. Computers 2001
Concurrent programming
speculative execution
0.012001
Scheduling Superblocks with Bound-Based Branch Trade-Offs · IEEE Trans. Computers 2001
Mathematical optimization
discrete optimization
0.011999
Algorithms for Total Weighted Completion Time Scheduling · SODA 1999
Mathematical optimization
scheduling
0.011999
Algorithms for Total Weighted Completion Time Scheduling · SODA 1999
Mathematical optimization › scheduling › completion time minimization
weighted completion time
0.011999
Algorithms for Total Weighted Completion Time Scheduling · SODA 1999
Compilers and program optimization
loop optimization
0.011997
Efficient Formulation for Optimal Modulo Schedulers · PLDI 1997
Compilers and program optimization › instruction scheduling
software pipelining
0.011997
Efficient Formulation for Optimal Modulo Schedulers · PLDI 1997
Operating systems › resource management
resource contention detection
0.011996
A Reduced Multipipeline Machine Description that Preserves Scheduling Constraints · PLDI 1996
Processor architecture and microarchitecture
instruction-level parallelism
0.011996
A Reduced Multipipeline Machine Description that Preserves Scheduling Constraints · PLDI 1996
Processor architecture and microarchitecture
SIMD
0.012004
Vectorization for SIMD architectures with alignment constraints · PLDI 2004
Compilers and program optimization › register allocation
register pressure reduction
0.011995
Stage scheduling: a technique to reduce the register requirements of a modulo schedule · MICRO 1995
Processor architecture and microarchitecture › instruction-level parallelism
predicated execution
0.022000
An integrated approach to accelerate data and predicate computations in hyperblocks · MICRO 2000
Register allocation for predicated code · MICRO 1995
Processor architecture and microarchitecture
branch prediction
0.012001
Scheduling Superblocks with Bound-Based Branch Trade-Offs · IEEE Trans. Computers 2001
Processor architecture and microarchitecture
speculative execution
0.011999
Balance Scheduling: Weighting Branch Tradeoffs in Superblocks · MICRO 1999
Processor architecture and microarchitecture
clustered architecture
0.011998
Effective Cluster Assignment for Modulo Scheduling · MICRO 1998
Mathematical optimization
integer programming
0.011997
Efficient Formulation for Optimal Modulo Schedulers · PLDI 1997

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

online profiling · 0.5dynamic management · 0.5parameter adaptation · 0.4language description encoding · 0.4lower bound analysis · 0.1unroll-and-jam · 0.1scalar promotion · 0.1temporal reuse · 0.1alignment analysis · 0.1scheduling heuristic · 0.1branch tradeoff analysis · 0.0modulo scheduling · 0.0cluster assignment · 0.0integer linear programming · 0.0machine description reduction · 0.0
YearPublicationVenuePosition
2024 Serving Deep Learning Models from Relational Databases
Lixi Zhou, Kanchan Chowdhury, Saif Masood, Alexandre E. Eichenberger, Hong Min, Alex Sim, Kesheng Wu, Binhang Yuan, Jia Zou 0001
EDBT5
2021 Intelligent Adaptation of Hardware Knobs for Improving Performance and Power Consumption
abstract
Current microprocessors include several knobs to modify the hardware behavior in order to improve performance, power, and energy under different workload demands. An impractical and time consuming offline profiling is needed to evaluate the design space to find the optimal knob configuration. Different knobs are typically configured in a decoupled manner to avoid the time-consuming offline profiling process. This can often lead to underperforming configurations and conflicting decisions that jeopardize system power-performance efficiency. Thus, a dynamic management of the different hardware knobs is necessary to find the knob configuration that maximizes system power-performance efficiency without the burden of offline profiling. In this article, we propose libPRISM, an infrastructure that enables the transparent management of multiple hardware knobs in order to adapt the system to the evolving demands of hardware resources in different workloads. libPRISM can minimize execution time, energy-delay product or power consumption by dynamically managing the SMT level, the data prefetcher, and the DVFS hardware knobs. Overall, the proposed solutions increase performance up to 130 percent (16.9 percent on average), reduce energy-delay product up to 80 percent, and reduce power consumption up to 33 percent depending on the target metric compared to the default knob configuration of the system.
Cristobal Ortega, Lluc Alvarez, Marc Casas, Ramon Bertran Monfort, Alper Buyuktosunoglu, Alexandre E. Eichenberger, Pradip Bose, Miquel Moretó
IEEE Trans. Computers6
2020 Language to Network: Conditional Parameter Adaptation with Natural Language Descriptions
abstract
Transfer learning using ImageNet pre-trained models has been the de facto approach in a wide range of computer vision tasks. However, fine-tuning still requires task-specific training data. In this paper, we propose N3 (Neural Networks from Natural Language) - a new paradigm of synthesizing task-specific neural networks from language descriptions and a generic pre-trained model. N3 leverages language descriptions to generate parameter adaptations as well as a new task-specific classification layer for a pre-trained neural network, effectively "fine-tuning" the network for a new task using only language descriptions as input. To the best of our knowledge, N3 is the first method to synthesize entire neural networks from natural language. Experimental results show that N3 can out-perform previous natural-language based zero-shot learning methods across 4 different zero-shot image classification benchmarks. We also demonstrate a simple method to help identify keywords in language descriptions leveraged by N3 when synthesizing model parameters.
Zhun Liu, Shengjia Yan, Alexandre E. Eichenberger, Louis-Philippe Morency
ACL4
2019 POSTER: CogR: Exploiting Program Structures for Machine-Learning Based Runtime Solutions
abstract
We propose CogR, a machine-learning based runtime solution, that enables efficient and dynamic resource scheduling and performance optimization for high-level programming interfaces on heterogeneous systems. CogR tightly combines the structural information of programs and fine-grained static and dynamic statistics into sequenced input data. This structural and value-embedded representation of programs enables CogR to accurately model the runtime behaviors of nested loop-based constructs in the high-level parallel programs. The end-to-end CogR system consists of compiler and runtime support for feature collection and input generation, a machine learning model, and a runtime scheduler with online inference and prediction. The system provides 11% higher prediction accuracy than models simulated for prior work and improves kernel performance by 66% compared to the baseline runtime.
Hyojin Sung, Tong Chen 0001, Alexandre E. Eichenberger, Kevin O'Brien
PACT3
2017 Efficient Fork-Join on GPUs Through Warp Specialization
abstract
Graphics Processing Units (GPUs) are increasingly used to accelerate portions of general-purpose applications. Higher level language extensions have been proposed to help non-experts bridge the gap between a host and the GPU's threading model. Recent updates to the OpenMP standard allow a user to parallelize code on a GPU using the well known fork-join programming model for CPUs. Mapping this model to the architecturally visible threading model of typical GPUs has been challenging. In this work we propose a novel approach using the technique of Warp Specialization. We show how to specialize one warp (a unit of 32 GPU threads) to handle sequential code on a GPU. When this master warp reaches a user-specified parallel region, it awakens unused GPU warps to collectively execute the parallel code. Based on this method, we have implemented a Clang-based, OpenMP 4.5 compliant, open source compiler for GPUs. Our work achieves a 3.6x (and up to 32x) performance improvement over a baseline that does not exploit fork-join parallelism on an NVIDIA k40m GPU across a set of 25 kernels. Compared to state-of-the-art compilers (Clang-ykt, GCC-OpenMP, GCC-OpenACC) our work is 2.1 - 7.6x faster. Our proposed technique is simpler to implement, robust, and performant.
Arpith C. Jacob, Alexandre E. Eichenberger, Hyojin Sung, Samuel Antão, Gheorghe-Teodor Bercea, Carlo Bertolli, Alexey Bataev, Tong Chen 0001, Zehra Sura, Georgios Rokos, Kevin O'Brien
HiPC2
2017 libPRISM: an intelligent adaptation of prefetch and SMT levels
abstract
Current microprocessors include several knobs to modify the hardware behavior in order to improve performance under different workload demands. An impractical and time consuming offline profiling is needed to evaluate the design space to find the optimal knob configuration. Different knobs are typically configured in a decoupled manner to avoid the time-consuming offline profiling process. This can often lead to underperforming configurations and sometimes to conflicting decisions that jeopardize system power- performance efficiency. Thus, a dynamic management of the different hardware knobs is necessary to find the knob configuration that maximizes system power-performance efficiency without the burden of offline profiling.
Cristobal Ortega, Miquel Moretó, Marc Casas, Ramon Bertran Monfort, Alper Buyuktosunoglu, Alexandre E. Eichenberger, Pradip Bose
ICS6
2010 Automatic creation of tile size selection models
abstract
Tiling is a widely used loop transformation for exposing/exploiting parallelism and data locality. Effective use of tiling requires selection and tuning of the tile sizes. This is usually achieved by hand-crafting tile size selection (TSS) models that characterize the performance of the tiled program as a function of tile sizes. The best tile sizes are selected by either directly using the TSS model or by using the TSS model together with an empirical search. Hand-crafting accurate TSS models is hard, and adapting them to different architecture/compiler, or even keeping them up-to-date with respect to the evolution of a single compiler is often just as hard. Instead of hand-crafting TSS models, can we automatically learn or create them? In this paper, we show that for a specific class of programs fairly accurate TSS models can be automatically created by using a combination of simple program features, synthetic kernels, and standard machine learning techniques. The automatic TSS model generation scheme can also be directly used for adapting the model and/or keeping it up-to-date. We evaluate our scheme on six different architecture-compiler combinations (chosen from three different architectures and four different compilers). The models learned by our method have consistently shown near-optimal performance (within 5% of the optimal on average) across all architecture-compiler combinations.
Tomofumi Yuki, Lakshminarayanan Renganarayanan, Sanjay V. Rajopadhye, Charles W. Anderson, Alexandre E. Eichenberger, Kevin O'Brien
CGO5
2009 Exploiting Parallelism with Dependence-Aware Scheduling
abstract
It is well known that a large fraction of applications cannot be parallelized at compile time due to unpredictable data dependences such as indirect memory accesses and/or memory accesses guarded by data-dependent conditional statements. A significant body of prior work attempts to parallelize such applications using runtime data-dependence analysis and scheduling. Performance is highly dependent on the ratio of the dependence analysis overheads with respect to the actual amount of parallelism available in the code. We have found that the overheads are often high and the available parallelism is often low when evaluating applications on a modern multicore processor. We propose a novel software-based approach called dependence-aware scheduling to parallelize loops with unknown data dependences. Unlike prior work, our main goal is to reduce the negative impact of dependence computation, such that when there is not an opportunity of getting speedup, the code can still run without much slowdown. If there is an opportunity, dependence-aware scheduling is able to yield very impressive speedup. Our results indicate that dependence-aware scheduling can greatly improve performance, with up to 4x speedups, for a number of computation intensive applications. Furthermore, the results also show negligible slowdowns in a stress test, where parallelism is continuously detected but not exploited.
Xiaotong Zhuang, Alexandre E. Eichenberger, Yangchun Luo, Kevin O'Brien, Kathryn M. O'Brien
PACT2
2009 Compact multi-dimensional kernel extraction for register tiling
abstract
To achieve high performance on multi-cores, modern loop optimizers apply long sequences of transformations that produce complex loop structures. Downstream optimizations such as register tiling (unroll-and-jam plus scalar promotion) typically provide a significant performance improvement. Typical register tilers provide this performance improvement only when applied on simple loop structures. They often fail to operate on complex loop structures leaving a significant amount of performance on the table. We present a technique called compact multi-dimensional kernel extraction (COMDEX) which can make register tilers operate on arbitrarily complex loop structures and enable them to provide the performance benefits. COMDEX extracts compact unrollable kernels from complex loops. We show that by using COMDEX as a pre-processing to register tiling we can (i) enable register tiling on complex loop structures and (ii) realize a significant performance improvement on a variety of codes.
Lakshminarayanan Renganarayanan, Uday Bondhugula, Salem Derisavi, Alexandre E. Eichenberger, Kevin O'Brien
SC4
2008 Hybrid access-specific software cache techniques for the cell BE architecture
abstract
Ease of programming is one of the main impediments for the broad acceptance of multi-core systems with no hardware support for transparent data transfer between local and global memories. Software cache is a robust approach to provide the user with a transparent view of the memory architecture; but this software approach can suffer from poor performance. In this paper, we propose a hierarchical, hybrid software-cache architecture that classifies at compile time memory accesses in two classes, high-locality and irregular. Our approach then steers the memory references toward one of two specific cache structures optimized for their respective access pattern. The specific cache structures are optimized to enable high-level compiler optimizations to aggressively unroll loops, reorder cache references, and/or transform surrounding loops so as to practically eliminate the software cache overhead in the innermost loop. Performance evaluation indicates that improvements due to the optimized software-cache structures combined with the proposed code-optimizations translate into 3.5 to 8.4 speedup factors, compared to a traditional software cache approach. As a result, we demonstrate that the Cell BE processor can be a competitive alternative to a modern server-class multi-core such as the IBM Power5 processor for a set of parallel NAS applications.
Marc González 0001, Nikola Vujic, Xavier Martorell, Eduard Ayguadé, Alexandre E. Eichenberger, Tong Chen 0001, Zehra Sura, Kevin O'Brien, Kathryn M. O'Brien
PACT5
2005 Efficient SIMD Code Generation for Runtime Alignment and Length Conversion
abstract
When generating codes for today's multimedia extensions, one of the major challenges is to deal with memory alignment issues. While hand programming still yields best performing SIMD codes, it is both time consuming and error prone. Compiler technology has greatly improved, including techniques that simdize loops with misaligned accesses by automatically rearranging misaligned memory streams in registers. Current techniques are applicable to runtime alignments, but they aggressively reduce the alignment overhead only when all alignments are known at compile time. This paper presents two major enhancements to the state of the art, improving both performance and coverage. First, we propose a novel technique to simdize loops with runtime alignment nearly as efficiently as those with compile-time misalignment. Runtime alignment is pervasive in real applications because it is either part of the algorithms, or it is an artifact of the compiler's inability to extract accurate alignment information from complex applications. Second, we incorporate length conversion operations, e.g., conversions between data of different sizes, into the alignment handling framework. Length conversions are pervasive in multimedia applications where mixed integer types are often used. Supporting length conversion can greatly improve the coverage of simdizable loops. Experimental results indicate that our runtime alignment technique achieves a 19% to 32% speedup increase over prior art for a benchmark stressing the impact of misaligned data. We also demonstrate speedup factors of up to 8.11 for real benchmarks over sequential execution.
Peng Wu 0001, Alexandre E. Eichenberger, Amy Wang
CGO2
2005 An integrated simdization framework using virtual vectors
abstract
Automatic simdization for multimedia extensions faces several new challenges that are not present in traditional vectorization. Some of the new issues are due to the more restrictive SIMD architectures designed for multimedia extensions. Among them are alignment constraints, lack of memory gather and scatter support, and the short and fixed-length nature of SIMD vectors. Since these constraints affect some very basic components of a program, a compiler must not only provide solid solutions to individual issues, but also take an integrated approach to address these constraints in combination.In this paper, we propose a simdization framework that addresses several orthogonal aspects of simdization, such as alignment handling, simdization of loops with mixed data lengths, and SIMD parallelism extraction from different program scopes (from basic blocks to inner loops). The novelty of this framework is its ability to facilitate interactions between different techniques based on the simple intermediate representation of virtual vectors. Measurements on a PPC970 with a VMX SIMD unit indicate speedup factors of up to 8.11 for numerical/video/communication kernels and speedup factors of up to 2.16 for benchmarks, when automatic simdization is turned on.
Peng Wu 0001, Alexandre E. Eichenberger, Amy Wang
ICS2
2004 Vectorization for SIMD architectures with alignment constraints
abstract
When vectorizing for SIMD architectures that are commonly employed by today's multimedia extensions, one of the new challenges that arise is the handling of memory alignment. Prior research has focused primarily on vectorizing loops where all memory references are properly aligned. An important aspect of this problem, namely, how to vectorize misaligned memory references, still remains unaddressed.This paper presents a compilation scheme that systematically vectorizes loops in the presence of misaligned memory references. The core of our technique is to automatically reorganize data in registers to satisfy the alignment requirement imposed by the hardware. To reduce the data reorganization overhead, we propose several techniques to minimize the number of data reorganization operations generated. During the code generation, our algorithm also exploits temporal reuse when aligning references that access contiguous memory across loop iterations. Our code generation scheme guarantees to never load the same data associated with a single static access twice. Experimental results indicate near peak speedup factors, e.g., 3.71 for 4 data per vector and 6.06 for 8 data per vector, respectively, for a set of loops where 75% or more of the static memory references are misaligned.
Alexandre E. Eichenberger, Peng Wu 0001, Kevin O'Brien
PLDI1
2002 An Experimental Study of Algorithms for Weighted Completion Time Scheduling
Ivan D. Baev, Waleed Meleis, Alexandre E. Eichenberger
Algorithmica3
2002 Lower bounds on precedence-constrained scheduling for parallel processors
Ivan D. Baev, Waleed Meleis, Alexandre E. Eichenberger
Inf. Process. Lett.3
2001 Scheduling Superblocks with Bound-Based Branch Trade-Offs
abstract
Since instruction level parallelism in basic blocks is often limited, compilers increase performance by creating superblocks that allow operations to be issued speculatively. This is difficult in general because each branch competes for the processor's limited resources. Previous work manages the performance trade-offs that exist between branches only indirectly. We show here that dependence and resource constraints can be used to gather explicit knowledge about scheduling trade-offs between branches. This paper's first contribution is a set of new, tighter lower bounds on the execution times of superblocks that specifically account for the dependence and resource conflicts between pairs of branches. This paper's second contribution is a novel superblock scheduling heuristic that finds high performance schedules by determining the operations that each branch needs to be scheduled early and selecting branches with compatible needs that favor beneficial branch trade-offs. Performance evaluations for superblocks from SPECint95 indicate that our bounds are very tight and that our scheduling heuristic outperforms well-known superblock scheduling algorithms.
Waleed Meleis, Alexandre E. Eichenberger, Ivan D. Baev
IEEE Trans. Computers2
2000 Lower Bounds on Precedence-Constrained Scheduling for Parallel Processors
abstract
We consider two general precedence-constrained scheduling problems that have wide applicability in the areas of parallel processing, high performance compiling, and digital system synthesis. These problems are intractable so it is important to be able to compute tight bounds on their solutions. A tight lower bound on makespan scheduling can be obtained by replacing precedence constraints with release and due dates, giving a problem that can be efficiently solved. We demonstrate that recursively applying this approach yields a bound that is provably tighter than other known bounds, and experimentally shown to achieve the optimal value at least 86.5% of the time over a synthetic benchmark. We compute the best known lower bound on weighted completion time scheduling by applying the recent discovery of a new algorithm for solving a related scheduling problem. Experiments show that this bound significantly outperforms the linear programming-based bound. We have therefore demonstrated that combinatorial algorithms can be a valuable alternative to linear programming for computing tight bounds on large scheduling problems.
Ivan D. Baev, Waleed Meleis, Alexandre E. Eichenberger
ICPP3
2000 An integrated approach to accelerate data and predicate computations in hyperblocks
Alexandre E. Eichenberger, Waleed Meleis, Suman Maradani
MICRO1
1999 Balance Scheduling: Weighting Branch Tradeoffs in Superblocks
abstract
Since there is generally insufficient instruction level parallelism within a single basic block, higher performance is achieved by speculatively scheduling operations in superblocks. This is difficult in general because each branch competes for the processor's limited resources. Previous work manages the performance tradeoffs that exist between branches only indirectly. We show here that dependence and resource constraints can be used to gather explicit knowledge about scheduling tradeoffs between branches. The first contribution of this paper is a set of new, tighter lower bounds on the execution times of superblocks that specifically accounts for the dependence and resource conflicts between pairs of branches. The second contribution of this paper is a novel superblock scheduling heuristic that finds high performance schedules by determining the operations that each branch needs to be scheduled early and selecting branches with compatible needs that favor beneficial branch tradeoffs. Performance evaluations for superblocks from SPECint95 indicate that our bounds are very tight and that our scheduling heuristic outperforms well known superblock scheduling algorithms.
Alexandre E. Eichenberger, Waleed Meleis
MICRO1
1999 Algorithms for Total Weighted Completion Time Scheduling
Ivan D. Baev, Waleed Meleis, Alexandre E. Eichenberger
SODA3
1998 Effective Cluster Assignment for Modulo Scheduling
abstract
Clustering is one solution to the demand for wide issue machines and fast clock cycles because it allows for smaller, less ported register files and simpler bypass logic while remaining scaleable. Much of the previous work on scheduling for clustered architectures has focused on acyclic code. While minimizing schedule length of acyclic code is paramount, the primary objective when scheduling cyclic code is to maximize the throughput or steady state performance. This paper investigates a pre-modulo scheduling pass that performs cluster assignment in a way that minimizes performance degradation due to explicit communication required as the loops are split over clusters. The proposed cluster assignment algorithm annotates and adjusts the graph for use by the scheduler so that any traditional modulo scheduling algorithm, having no knowledge of clustering, can produce a valid and efficient schedule for a clustered machine.
Erik Nystrom 0001, Alexandre E. Eichenberger
MICRO2
1997 Efficient Formulation for Optimal Modulo Schedulers
abstract
Modulo scheduling algorithms based on optimal solvers have been proposed to investigate and tune the performance of modulo scheduling heuristics. While recent advances have broadened the scope for which the optimal approach is applicable, this approach increasingly suffers from large execution times. In this paper, we propose a more efficient formulation of the modulo scheduling space that significantly decreases the execution time of solvers based on integer linear programs. For example, the total execution time is reduced by a factor of 8.6 when 782 loops from the Perfect Club, SPEC, and Livermore Fortran Kernels are scheduled for minimum register requirements using the more efficient formulation instead of the traditional formulation. Experimental evidence further indicates that significantly larger loops can be scheduled under realistic machine constraints.
Alexandre E. Eichenberger, Edward S. Davidson
PLDI1
1996 A Reduced Multipipeline Machine Description that Preserves Scheduling Constraints
abstract
High performance compilers increasingly rely on accurate modeling of the machine resources to efficiently exploit the instruction level parallelism of an application. In this paper, we propose a reduced machine description that results in faster detection of resource contentions while preserving the scheduling constraints present in the original machine description. The proposed approach reduces a machine description in an automated, error-free, and efficient fashion, Moreover, it fully supports schedulers that backtrack and process operations in arbitrary order. Reduced descriptions for the DEC Alpha 21064, MIPS R3000/R3010, and Cydra 5 result in 4 to 7 times faster detection of resource contentions and require 22 to 90% of the memory storage used by the original machine descriptions. Precise measurement for the Cydra 5 indicates that reducing the machine description results in a 2.9 times faster contention query module.
Alexandre E. Eichenberger, Edward S. Davidson
PLDI1
1995 Impact of Load Imbalance on the Design of Software Barriers
Alexandre E. Eichenberger, Santosh G. Abraham
ICPP (2)1
1995 Optimum Modulo Schedules for Minimum Register Requirements
abstract
Modtdo schedulwsg is an eficient tech nzque for exploiting instruction level parallelism in a uaraety of ioopsl resulting in high performance code but increased register requirements.We present a combined approach that schedules the loop operations for the highest steady state throughput and minimum register requirements.Our method determines optimal register requirements for machines with jinite resources and for general dependence graphs.We compare the performance of this and other modulo schedulers for a benchmark of 6.29 loops from the Perfect Clubl SPEC-89, and the Livermore Fortran Kernels.Measurements demonstrate the potential of r-egister=sensittve modulo schedulers, wh~ch will be useful in evaluating the performance of register-sensitive modrslo scheduling heuristics.
Alexandre E. Eichenberger, Edward S. Davidson, Santosh G. Abraham
International Conference on Supercomputing1
1995 Register allocation for predicated code
abstract
Current compilers for VLIW and superscalar machines increase the instruction level parallelism of an application by merging several basic blocks into an enlarged predicated block, resulting in higher performance code but increased register requirements. We present a framework that computes precisely the interferences among virtual registers in the presence of predicated operations. Graph-coloring biased register allocators can directly use the resulting interference graph. For interval-graph based register allocators, and others, we propose a technique that reduces the register requirements by allowing non-interfering virtual registers that overlap in time to share a common virtual register. Preliminary measurements on a benchmark of loops from the Perfect Club, SPEC-89, and the Livermore Fortran Kernels indicate the effectiveness of this technique.
Alexandre E. Eichenberger, Edward S. Davidson
MICRO1
1995 Stage scheduling: a technique to reduce the register requirements of a modulo schedule
abstract
Modulo scheduling is an efficient technique for exploiting instruction level parallelism in a variety of loops, resulting in high performance code but increased register requirements. We present a set of low computational complexity stage-scheduling heuristics that reduce the register requirements of a given modulo schedule by shifting operations by multiples of II cycles. Measurements on a benchmark suite of 1289 loops from the Perfect Club, SPEC-89, and the Livermore Fortran Kernels shows that our best heuristic achieves on overage 99% of the decrease in register requirements obtained by an optimal stage scheduler.
Alexandre E. Eichenberger, Edward S. Davidson
MICRO1
1994 Minimum register requirements for a modulo schedule
abstract
Module scheduling is an efficient technique for exploiting instruction level parallelism in a variety of loops, resulting in high performance code but increased register requirements. We present a combined approach that schedules the loop operations for minimum register requirements, given a module reservation table. Our method determines optimal register requirements for machines with finite resources and for general dependence graphs. This method demonstrates the potential of lifetime-sensitive module scheduling and is useful in evaluating the performance of lifetime-sensitive module scheduling heuristics.
Alexandre E. Eichenberger, Edward S. Davidson, Santosh G. Abraham
MICRO1