EDBT 2026 Demo / reviewers in the wild / expert
Olivier Temam
dblp:35/1139
· DBLP profile ↗
77ranked-venue papers
12as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 70 · 11 first-authorSoftware engineering, systems software and programming languages · 22 · 4 first-authorArtificial intelligence and machine learning · 3 · 1 first-author
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
42 papers |
Hardware accelerators and domain-specific architectures · 43% Performance modeling and evaluation · 12% Emerging computing paradigms · 10% | |
| Software engineering, system software, and programming languages
12 papers |
Compilers and program optimization · 87% Empirical software engineering · 13% |
Topics — the 30 heaviest of 79, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Hardware accelerators and domain-specific architectures › machine learning accelerator
neural network accelerator |
1.8 | 9 | 2020 | An Accelerator for High Efficient Vision Processing · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2017 A Small-Footprint Accelerator for Large-Scale Neural Networks · ACM Trans. Comput. Syst. 2015 Leveraging the Error Resilience of Neural Networks for Designing Highly Energy Efficient Accelerators · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2015 |
Hardware accelerators and domain-specific architectures
machine learning accelerator |
1.5 | 6 | 2020 | ParaML: A Polyvalent Multicore Accelerator for Machine Learning · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020 DaDianNao: A Neural Network Supercomputer · IEEE Trans. Computers 2017 A Small-Footprint Accelerator for Large-Scale Neural Networks · ACM Trans. Comput. Syst. 2015 |
Emerging computing paradigms
neuromorphic computing |
0.5 | 3 | 2015 | Neuromorphic accelerators: a comparison between neuroscience and machine-learning approaches · MICRO 2015 Capacitance of TSVs in 3-D stacked chips a problem?: not for neuromorphic systems! · DAC 2012 Automatic abstraction and fault tolerance in cortical microachitectures · ISCA 2011 |
Performance modeling and evaluation
benchmarking |
0.5 | 5 | 2015 | Statistical Performance Comparisons of Computers · IEEE Trans. Computers 2015 Statistical performance comparisons of computers · HPCA 2012 MicroLib: A Case for the Quantitative Comparison of Micro-Architecture Mechanisms · MICRO 2004 |
Hardware accelerators and domain-specific architectures › many-core accelerator
multi-core accelerator |
0.4 | 1 | 2020 | ParaML: A Polyvalent Multicore Accelerator for Machine Learning · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020 |
Memory systems
on-chip memory |
0.4 | 2 | 2017 | An Accelerator for High Efficient Vision Processing · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2017 DaDianNao: A Neural Network Supercomputer · IEEE Trans. Computers 2017 |
Hardware accelerators and domain-specific architectures › machine learning accelerator
CNN accelerator |
0.3 | 1 | 2017 | An Accelerator for High Efficient Vision Processing · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2017 |
Interconnection networks and networks-on-chip › die-to-die interconnect
inter-chip communication |
0.3 | 1 | 2017 | DaDianNao: A Neural Network Supercomputer · IEEE Trans. Computers 2017 |
Interconnection networks and networks-on-chip
optical interconnection networks |
0.3 | 1 | 2017 | DaDianNao: A Neural Network Supercomputer · IEEE Trans. Computers 2017 |
Cloud and datacenter computing
datacenter workloads |
0.3 | 2 | 2015 | Practical Iterative Optimization for the Data Center · ACM Trans. Archit. Code Optim. 2015 Iterative optimization for the data center · ASPLOS 2012 |
Energy-efficient computing › energy-efficient architecture
energy-efficient accelerator |
0.3 | 2 | 2015 | PuDianNao: A Polyvalent Machine Learning Accelerator · ASPLOS 2015 A defect-tolerant accelerator for emerging high-performance applications · ISCA 2012 |
Reconfigurable computing and FPGAs
coarse-grained reconfigurable architecture |
0.3 | 2 | 2013 | Elastic CGRAs · FPGA 2013 Reconciling specialization and flexibility through compound circuits · HPCA 2009 |
Processor architecture and microarchitecture
multicore design |
0.2 | 2 | 2014 | DaDianNao: A Machine-Learning Supercomputer · MICRO 2014 ArchRanker: A ranking approach to design space exploration · ISCA 2014 |
Emerging computing paradigms
approximate computing |
0.2 | 1 | 2015 | Leveraging the Error Resilience of Neural Networks for Designing Highly Energy Efficient Accelerators · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2015 |
Hardware accelerators and domain-specific architectures › approximate computing accelerator
approximate neural network accelerator |
0.2 | 1 | 2015 | Leveraging the Error Resilience of Neural Networks for Designing Highly Energy Efficient Accelerators · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2015 |
Emerging computing paradigms › approximate computing
inexact computing |
0.2 | 1 | 2015 | Leveraging the Error Resilience of Neural Networks for Designing Highly Energy Efficient Accelerators · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2015 |
Emerging computing paradigms
neuromorphic hardware |
0.2 | 1 | 2015 | Neuromorphic accelerators: a comparison between neuroscience and machine-learning approaches · MICRO 2015 |
Performance modeling and evaluation
performance variability |
0.2 | 1 | 2015 | Statistical Performance Comparisons of Computers · IEEE Trans. Computers 2015 |
Hardware accelerators and domain-specific architectures
vision accelerator |
0.2 | 1 | 2015 | ShiDianNao: shifting vision processing closer to the sensor · ISCA 2015 |
Hardware accelerators and domain-specific architectures › accelerator orchestration
accelerator selection |
0.2 | 1 | 2014 | Performance Portability Across Heterogeneous SoCs Using a Generalized Library-Based Approach · ACM Trans. Archit. Code Optim. 2014 |
Electronic design automation
design space exploration |
0.2 | 1 | 2014 | ArchRanker: A ranking approach to design space exploration · ISCA 2014 |
Storage systems
hardware parameter tuning |
0.2 | 1 | 2014 | Performance Portability Across Heterogeneous SoCs Using a Generalized Library-Based Approach · ACM Trans. Archit. Code Optim. 2014 |
GPUs and heterogeneous computing › heterogeneous architecture
heterogeneous soc |
0.2 | 1 | 2014 | Performance Portability Across Heterogeneous SoCs Using a Generalized Library-Based Approach · ACM Trans. Archit. Code Optim. 2014 |
Machine learning › Deep learning architectures and training
convolutional neural network |
0.2 | 3 | 2015 | A Small-Footprint Accelerator for Large-Scale Neural Networks · ACM Trans. Comput. Syst. 2015 DaDianNao: A Machine-Learning Supercomputer · MICRO 2014 DianNao: a small-footprint high-throughput accelerator for ubiquitous machine-learning · ASPLOS 2014 |
Hardware reliability and fault tolerance
defect tolerance |
0.1 | 1 | 2012 | A defect-tolerant accelerator for emerging high-performance applications · ISCA 2012 |
Memory systems
cache |
0.1 | 6 | 2004 | MicroLib: A Case for the Quantitative Comparison of Micro-Architecture Mechanisms · MICRO 2004 An Algorithm for Optimally Exploiting Spatial and Temporal Locality in Upper Memory Levels · IEEE Trans. Computers 1999 Influence of Cross-Interferences on Blocked Loops: A Case Study with Matric-Vector Multiply · ACM Trans. Program. Lang. Syst. 1995 |
Performance modeling and evaluation
simulation |
0.1 | 2 | 2015 | Statistical Performance Comparisons of Computers · IEEE Trans. Computers 2015 MicroLib: A Case for the Quantitative Comparison of Micro-Architecture Mechanisms · MICRO 2004 |
Compilers and program optimization › autotuning
compiler autotuning |
0.1 | 1 | 2010 | Collective optimization: A practical collaborative approach · ACM Trans. Archit. Code Optim. 2010 |
Empirical software engineering › software engineering research methodology
empirical study |
0.1 | 1 | 2010 | Evaluating iterative optimization across 1000 datasets · PLDI 2010 |
Hardware reliability and fault tolerance
error resilience |
0.1 | 1 | 2015 | Leveraging the Error Resilience of Neural Networks for Designing Highly Energy Efficient Accelerators · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2015 |
Methods — techniques the papers use, named apart from their topics
iterative optimization · 0.7near-sensor computing · 0.6CNN · 0.6machine learning · 0.6locality analysis · 0.4computational primitive analysis · 0.4multi-chip architecture · 0.3electrical and optical interconnects · 0.3machine learning accelerator design · 0.2layout at 65nm · 0.2dynamic aggressiveness adjustment · 0.2domain-specific architecture · 0.2ASIC design · 0.2simulated annealing · 0.2industry-grade interconnects · 0.2custom storage and computational units · 0.2dataset suite construction · 0.1case study · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | ParaML: A Polyvalent Multicore Accelerator for Machine LearningabstractIn recent years, machine learning (ML) techniques are proven to be powerful tools in various emerging applications. Traditionally, ML techniques are processed on general-purpose CPUs and GPUs, but their energy efficiencies are limited due to their excessive support for flexibility. As an efficient alternative to CPUs/GPUs, hardware accelerators are still limited as they often accommodate only a single ML technique (family). However, different problems may require different ML techniques, which implies that such accelerators may achieve poor learning accuracy or even be ineffective. In this paper, we present a polyvalent accelerator architecture integrated with multiple processing cores, called ParaML, which accommodates ten representative ML techniques, including k-means, k-nearest neighbors (k-NN), naive Bayes (NB), support vector machine (SVM), linear regression (LR), classification tree (CT), deep neural network (DNN), learning vector quantization (LVQ), parzen window (PW), and principal component analysis (PCA). Benefited from our thorough analysis on computational primitives and locality properties of different ML techniques, the single-core ParaML can perform up to 1056 GOP/s (e.g., additions and multiplications) in an area of 3.51 mm2and consumes 596 mW only, estimated by ICC and PrimeTime PX with postsynthesis netlist, respectively. Compared with the NVIDIA K20M GPU (28-nm process), the single-core ParaML (65-nm process) is 1.21× faster, and can reduce the energy by 137.93×. We also compare the single-core ParaML with other accelerators. Compared with PRINS, single-core ParaML achieves 72.09× and 2.57× energy benefit for k-NN and k-means, respectively, and speeds up each query in k-NN by 44.76×. Compared with EIE, the single-core ParaML achieves 5.02× speedup and 4.97× energy benefit with 11.62× less area when evaluating with dense DNN. Compared with TPU, the single-core ParaML achieves 2.45× better power efficiency (5647 Gop/W versus 2300 Gop/W) with 321.36× less area. Compared to the single-core version, the 8-core ParaML will further improve the speedup up to 3.98× with an area of 13.44 mm2and a power of 2036 mW. Shengyuan Zhou, Qi Guo 0001, Zidong Du, Dao-Fu Liu, Tianshi Chen 0002, Ling Li 0001, Shaoli Liu, Jinhong Zhou, Olivier Temam, Xiaobing Feng 0002, Xuehai Zhou, Yunji Chen |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 9 |
| 2017 | DaDianNao: A Neural Network SupercomputerabstractMany companies are deploying services largely based on machine-learning algorithms for sophisticated processing of large amounts of data, either for consumers or industry. The state-of-the-art and most popular such machine-learning algorithms are Convolutional and Deep Neural Networks (CNNs and DNNs), which are known to be computationally and memory intensive. A number of neural network accelerators have been recently proposed which can offer high computational capacity/area ratio, but which remain hampered by memory accesses. However, unlike the memory wall faced by processors on general-purpose workloads, the CNNs and DNNs memory footprint, while large, is not beyond the capability of the on-chip storage of a multi-chip system. This property, combined with the CNN/DNN algorithmic characteristics, can lead to high internal bandwidth and low external communications, which can in turn enable high-degree parallelism at a reasonable area cost. In this article, we introduce a custom multi-chip machine-learning architecture along those lines, and evaluate performance by integrating electrical and optical inter-chip interconnects separately. We show that, on a subset of the largest known neural network layers, it is possible to achieve a speedup of 656.63× over a GPU, and reduce the energy by 184.05× on average for a 64-chip system. We implement the node down to the place and route at 28 nm, containing a combination of custom storage and computational units, with electrical inter-chip interconnects. Shaoli Liu, Ling Li 0001, Shijin Zhang, Tianshi Chen 0002, Zhiwei Xu 0002, Olivier Temam, Yunji Chen |
IEEE Trans. Computers | 8 |
| 2017 | An Accelerator for High Efficient Vision ProcessingabstractIn recent years, neural network accelerators have been shown to achieve both high energy efficiency and high performance for a broad application scope within the important category of recognition and mining applications. Still, both the energy efficiency and performance of such accelerators remain limited by memory accesses. In this paper, we focus on image applications, arguably the most important category among recognition and mining applications. The neural networks which are state-of-the-art for these applications are convolutional neural networks (CNNs), and they have an important property: weights are shared among many neurons, considerably reducing the neural network memory footprint. This property allows to entirely map a CNN within an SRAM, eliminating all DRAM accesses for weights. By further hoisting this accelerator next to the image sensor, it is possible to eliminate all remaining DRAM accesses, i.e., for inputs and outputs. In this paper, we propose such a CNN accelerator, placed next to a CMOS or CCD sensor. The absence of DRAM accesses combined with a careful exploitation of the specific data access patterns within CNNs allows us to design an accelerator which is highly energy-efficient. We present a single-core implementation down to the layout at 65 nm, with a modest footprint of 5.94mm$^{\boldsymbol {2}}$and consuming only 336mW, but still about$\boldsymbol {30\times }$faster than high-end GPUs. For visual processing with higher resolution and frame-rate requirements, we further present a multicore implementation with elevated performance. Zidong Du, Shaoli Liu, Robert Fasthuber, Tianshi Chen 0002, Paolo Ienne, Ling Li 0001, Qi Guo 0001, Xiaobing Feng 0002, Yunji Chen, Olivier Temam |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 11 |
| 2015 | PuDianNao: A Polyvalent Machine Learning AcceleratorabstractMachine Learning (ML) techniques are pervasive tools in various emerging commercial applications, but have to be accommodated by powerful computer systems to process very large data. Although general-purpose CPUs and GPUs have provided straightforward solutions, their energy-efficiencies are limited due to their excessive supports for flexibility. Hardware accelerators may achieve better energy-efficiencies, but each accelerator often accommodates only a single ML technique (family). According to the famous No-Free-Lunch theorem in the ML domain, however, an ML technique performs well on a dataset may perform poorly on another dataset, which implies that such accelerator may sometimes lead to poor learning accuracy. Even if regardless of the learning accuracy, such accelerator can still become inapplicable simply because the concrete ML task is altered, or the user chooses another ML technique. Dao-Fu Liu, Tianshi Chen 0002, Shaoli Liu, Jinhong Zhou, Shengyuan Zhou, Olivier Temam, Xiaobing Feng 0002, Xuehai Zhou, Yunji Chen |
ASPLOS | 6 |
| 2015 | Retraining-based timing error mitigation for hardware neural networks
Jiachao Deng, Yuntan Fang, Zidong Du, Ying Wang 0001, Huawei Li 0001, Olivier Temam, Paolo Ienne, David Novo, Xiaowei Li 0001, Yunji Chen, Chengyong Wu |
DATE | 6 |
| 2015 | ShiDianNao: shifting vision processing closer to the sensorabstractIn recent years, neural network accelerators have been shown to achieve both high energy efficiency and high performance for a broad application scope within the important category of recognition and mining applications. Zidong Du, Robert Fasthuber, Tianshi Chen 0002, Paolo Ienne, Ling Li 0001, Xiaobing Feng 0002, Yunji Chen, Olivier Temam |
ISCA | 9 |
| 2015 | Neuromorphic accelerators: a comparison between neuroscience and machine-learning approachesabstractA vast array of devices, ranging from industrial robots to self-driven cars or smartphones, require increasingly sophisticated processing of real-world input data (image, voice, radio, ...). Interestingly, hardware neural network accelerators are emerging again as attractive candidate architectures for such tasks. The neural network algorithms considered come from two, largely separate, domains: machine-learning and neuroscience. These neural networks have very different characteristics, so it is unclear which approach should be favored for hardware implementation. Yet, few studies compare them from a hardware perspective. We implement both types of networks down to the layout, and we compare the relative merit of each approach in terms of energy, speed, area cost, accuracy and functionality. Zidong Du, Daniel Ben Dayan Rubin, Yunji Chen, Liqiang He, Tianshi Chen 0002, Lei Zhang 0008, Chengyong Wu, Olivier Temam |
MICRO | 8 |
| 2015 | Practical Iterative Optimization for the Data CenterabstractIterative optimization is a simple but powerful approach that searches the best possible combination of compiler optimizations for a given workload. However, iterative optimization is plagued by several practical issues that prevent it from being widely used in practice: a large number of runs are required to find the best combination, the optimum combination is dataset dependent, and the exploration process incurs significant overhead that needs to be compensated for by performance benefits. Therefore, although iterative optimization has been shown to have a significant performance potential, it seldom is used in production compilers. In this article, we propose iterative optimization for the data center (IODC): we show that the data center offers a context in which all of the preceding hurdles can be overcome. The basic idea is to spawn different combinations across workers and recollect performance statistics at the master, which then evolves to the optimum combination of compiler optimizations. IODC carefully manages costs and benefits, and it is transparent to the end user. To bring IODC to practice, we evaluate it in the presence of co-runners to better reflect real-life data center operation with multiple applications co-running per server. We enhance IODC with the capability to find compatible co-runners along with a mechanism to dynamically adjust the level of aggressiveness to improve its robustness in the presence of co-running applications. We evaluate IODC using both MapReduce and compute-intensive throughput server applications. To reflect the large number of users interacting with the system, we gather a very large collection of datasets (up to hundreds of millions of unique datasets per program), for a total storage of 16.4TB and 850 days of CPU time. We report an average performance improvement of 1.48 × and up to 2.08 × for five MapReduce applications, and 1.12 × and up to 1.39 × for nine server applications. Furthermore, our experiments demonstrate that IODC is effective in the presence of co-runners, improving performance by greater than 13% compared to the worst possible co-runner schedule. Shuangde Fang, Lieven Eeckhout, Olivier Temam, Yunji Chen, Chengyong Wu, Xiaobing Feng 0002 |
ACM Trans. Archit. Code Optim. | 5 |
| 2015 | Statistical Performance Comparisons of ComputersabstractAs a fundamental task in computer architecture research, performance comparison has been continuously hampered by the variability of computer performance. In traditional performance comparisons, the impact of performance variability is usually ignored (i.e., the means of performance observations are compared regardless of the variability), or in the few cases directly addressed with$t$-statistics without checking the number and normality of performance observations. In this paper, we formulate a performance comparison as a statistical task, and empirically illustrate why and how common practices can lead to incorrect comparisons. We propose a non-parametric hierarchical performance testing (HPT) framework for performance comparison, which is significantly more practical than standard$t$-statistics because it does not require to collect a large number of performance observations in order to achieve a normal distribution of sample mean. In particular, the proposed HPT can facilitate quantitative performance comparison, in which the performance speedup of one computer over another is statistically evaluated. Compared with the HPT, a common practice which uses geometric mean performance scores to estimate the performance speedup has errors of$8.0$to$56.3$percent on SPEC CPU2006 or SPEC MPI2007, which demonstrates the necessity of using appropriate statistical techniques. This HPT framework has been implemented as an open-source software, and integrated in the PARSEC 3.0 benchmark suite. Tianshi Chen 0002, Qi Guo 0001, Olivier Temam, Yungang Bao, Zhiwei Xu 0002, Yunji Chen |
IEEE Trans. Computers | 3 |
| 2015 | Leveraging the Error Resilience of Neural Networks for Designing Highly Energy Efficient AcceleratorsabstractIn recent years, inexact computing has been increasingly regarded as one of the most promising approaches for slashing energy consumption in many applications that can tolerate a certain degree of inaccuracy. Driven by the principle of trading tolerable amounts of application accuracy in return for significant resource savings-the energy consumed, the (critical path) delay, and the (silicon) area-this approach has been limited to application-specified integrated circuits (ASICs) so far. These ASIC realizations have a narrow application scope and are often rigid in their tolerance to inaccuracy, as currently designed; the latter often determining the extent of resource savings we would achieve. In this paper, we propose to improve the application scope, error resilience and the energy savings of inexact computing by combining it with hardware neural networks. These neural networks are fast emerging as popular candidate accelerators for future heterogeneous multicore platforms and have flexible error resilience limits owing to their ability to be trained. Our results in 65-nm technology demonstrate that the proposed inexact neural network accelerator could achieve 1.78-2.67× savings in energy consumption (with corresponding delay and area savings being 1.23 and 1.46×, respectively) when compared to the existing baseline neural network implementation, at the cost of a small accuracy loss (mean squared error increases from 0.14 to 0.20 on average). Zidong Du, Lingamneni Avinash, Yunji Chen, Krishna V. Palem, Olivier Temam, Chengyong Wu |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 5 |
| 2015 | A Small-Footprint Accelerator for Large-Scale Neural NetworksabstractMachine-learning tasks are becoming pervasive in a broad range of domains, and in a broad range of systems (from embedded systems to data centers). At the same time, a small set of machine-learning algorithms (especially Convolutional and Deep Neural Networks, i.e., CNNs and DNNs) are proving to be state-of-the-art across many applications. As architectures evolve toward heterogeneous multicores composed of a mix of cores and accelerators, a machine-learning accelerator can achieve the rare combination of efficiency (due to the small number of target algorithms) and broad application scope. Until now, most machine-learning accelerator designs have been focusing on efficiently implementing the computational part of the algorithms. However, recent state-of-the-art CNNs and DNNs are characterized by their large size. In this study, we design an accelerator for large-scale CNNs and DNNs, with a special emphasis on the impact of memory on accelerator design, performance, and energy. We show that it is possible to design an accelerator with a high throughput, capable of performing 452 GOP/s (key NN operations such as synaptic weight multiplications and neurons outputs additions) in a small footprint of 3.02mm2 and 485mW; compared to a 128-bit 2GHz SIMD processor, the accelerator is 117.87 × faster, and it can reduce the total energy by 21.08 ×. The accelerator characteristics are obtained after layout at 65nm. Such a high throughput in a small footprint can open up the usage of state-of-the-art machine-learning algorithms in a broad set of systems and for a broad set of applications. Tianshi Chen 0002, Shijin Zhang, Shaoli Liu, Zidong Du, Dongsheng Wang 0002, Chengyong Wu, Ninghui Sun, Yunji Chen, Olivier Temam |
ACM Trans. Comput. Syst. | 12 |
| 2015 | Robust Design Space ModelingabstractArchitectural design spaces of microprocessors are often exponentially large with respect to the pending processor parameters. To avoid simulating all configurations in the design space, machine learning and statistical techniques have been utilized to build regression models for characterizing the relationship between architectural configurations and responses (e.g., performance or power consumption). However, this article shows that the accuracy variability of many learning techniques over different design spaces and benchmarks can be significant enough to mislead the decision-making. This clearly indicates a high risk of applying techniques that work well on previous modeling tasks (each involving a design space, benchmark, and design objective) to a new task, due to which the powerful tools might be impractical. Inspired by ensemble learning in the machine learning domain, we propose a robust framework called ELSE to reduce the accuracy variability of design space modeling. Rather than employing a single learning technique as in previous investigations, ELSE employs distinct learning techniques to build multiple base regression models for each modeling task. This is not a trivial combination of different techniques (e.g., always trusting the regression model with the smallest error). Instead, ELSE carefully maintains the diversity of base regression models and constructs a metamodel from the base models that can provide accurate predictions even when the base models are far from accurate. Consequently, we are able to reduce the number of cases in which the final prediction errors are unacceptably large. Experimental results validate the robustness of ELSE: compared with the widely used artificial neural network over 52 distinct modeling tasks, ELSE reduces the accuracy variability by about 62%. Moreover, ELSE reduces the average prediction error by 27% and 85% for the investigated MIPS and POWER design spaces, respectively. Qi Guo 0001, Tianshi Chen 0002, Zhi-Hua Zhou, Olivier Temam, Ling Li 0001, Depei Qian 0001, Yunji Chen |
ACM Trans. Design Autom. Electr. Syst. | 4 |
| 2014 | Advanced technologies for brain-inspired computingabstractThis paper aims at presenting how new technologies can overcome classical implementation issues of Neural Networks. Resistive memories such as Phase Change Memories and Conductive-Bridge RAM can be used for obtaining low-area synapses thanks to programmable resistance also called Memristors. Similarly, the high capacitance of Through Silicon Vias can be used to greatly improve analog neurons and reduce their area. The very same devices can also be used for improving connectivity of Neural Networks as demonstrated by an application. Finally, some perspectives are given on the usage of 3D monolithic integration for better exploiting the third dimension and thus obtaining systems closer to the brain. Fabien Clermidy, Rodolphe Héliot, Alexandre Valentian, Christian Gamrat, Olivier Bichler, Marc Duranton, Bilel Belhadj, Olivier Temam |
ASP-DAC | 8 |
| 2014 | Leveraging the error resilience of machine-learning applications for designing highly energy efficient acceleratorsabstractIn recent years, inexact computing has been increasingly regarded as one of the most promising approaches for reducing energy consumption in many applications that can tolerate a degree of inaccuracy. Driven by the principle of trading tolerable amounts of application accuracy in return for significant resource savings - the energy consumed, the (critical path) delay and the (silicon) area being the resources - this approach has been limited to certain application domains. In this paper, we propose to expand the application scope, error tolerance as well as the energy savings of inexact computing systems through neural network architectures. Such neural networks are fast emerging as popular candidate accelerators for future heterogeneous multi-core platforms, and have flexible error tolerance limits owing to their ability to be trained. Our results based on simulated 65nm technology designs demonstrate that the proposed inexact neural network accelerator could achieve 43.91%-62.49% savings in energy consumption (with corresponding delay and area savings being 18.79% and 31.44% respectively) when compared to existing baseline neural network implementation, at the cost of an accuracy loss (quantified as the Mean Square Error (MSE) which increases from 0.14 to 0.20 on average). Zidong Du, Krishna V. Palem, Lingamneni Avinash, Olivier Temam, Yunji Chen, Chengyong Wu |
ASP-DAC | 4 |
| 2014 | DianNao: a small-footprint high-throughput accelerator for ubiquitous machine-learningabstractMachine-Learning tasks are becoming pervasive in a broad range of domains, and in a broad range of systems (from embedded systems to data centers). At the same time, a small set of machine-learning algorithms (especially Convolutional and Deep Neural Networks, i.e., CNNs and DNNs) are proving to be state-of-the-art across many applications. As architectures evolve towards heterogeneous multi-cores composed of a mix of cores and accelerators, a machine-learning accelerator can achieve the rare combination of efficiency (due to the small number of target algorithms) and broad application scope. Tianshi Chen 0002, Zidong Du, Ninghui Sun, Chengyong Wu, Yunji Chen, Olivier Temam |
ASPLOS | 7 |
| 2014 | The improbable but highly appropriate marriage of 3D stacking and neuromorphic acceleratorsabstract3D stacking is a promising technology (low latency/power/area, high bandwidth); its main shortcoming is increased power density. Simultaneously, motivated by energy constraints, architectures are evolving towards greater customization, with tasks delegated to accelerators. Due to the widespread use of machine-learning algorithms and the re-emergence of neural networks (NNs) as the preferred such algorithms, NN accelerators are receiving increased attention. They turn out to be well matched to 3D stacking: inherently 3D structures with a low power density and high across-layer bandwidth requirements. We present what is, to the best of our knowledge, the first 3D stacked NN accelerator Bilel Belhadj, Alexandre Valentian, Pascal Vivet, Marc Duranton, Liqiang He, Olivier Temam |
CASES | 6 |
| 2014 | A low-cost memory interface for high-throughput acceleratorsabstractHeterogeneous multi-cores, a mix of cores and accelerators, are becoming prevalent. These accelerators are designed for both speed and energy improvements, and thus, they increasingly come with a large number of load/store ports for achieving a high degree of parallelism. However, beyond GPG-PUs, accelerators such as ASICs and CGRAs are increasingly capable of accelerating computations with irregular control flow and memory accesses; as a result, such accelerators need to be plugged to caches instead of scratchpads, and few studies focus on accelerator-to-cache interfaces. The main existing alternative are Load/Store Queues (LSQs) traditionally used to connect superscalar processors to caches and memory, but in the context of accelerators, they are overkill and could significantly reduce the area and power benefits of accelerators. Moreover, we show that they are just not fit for accelerators plugged to multi-banked caches. Yuanjie Huang, Olivier Temam, Paolo Ienne, Yunji Chen, Chengyong Wu |
CASES | 3 |
| 2014 | ArchRanker: A ranking approach to design space explorationabstractArchitectural Design Space Exploration (DSE) is a notoriously difficult problem due to the exponentially large size of the design space and long simulation times. Previously, many studies proposed to formulate DSE as a regression problem which predicts architecture responses (e.g., time, power) of a given architectural configuration. Several of these techniques achieve high accuracy, though often at the cost of significant simulation time for training the regression models.We argue that the information the architect mostly needs during the DSEprocess is whether a given configuration will perform better than another one in the presences ofdesign constraints, or better than any other one seen so far, rather than precisely estimating the performance of that configuration. Based on this observation, we propose a novel rankingbased approach to DSE where we train a model to predict which of two architecture configurations will perform best. We show that, not only this ranking model more accurately predicts the relative merit of two architecture configurations than an ANN-based state-of-the-art regression model, but also that it requires much fewer training simulations to achieve the same accuracy, or that it can be used for and is even better at quantifying the performance gap between two configurations. We implement the framework for training and using this model, called ArchRanker, and we evaluate it on several DSE scenarios (unicore/multicore design spaces, and both time and power performance metrics). We try to emulate as closely as possible the DSE process by creating constraint-based scenarios, or an iterative DSEprocess. We find that ArchRanker makes 29.68% to 54.43% fewer incorrect predictions on pairwise relative merit of configurations (tested with 79,800 configuration pairs) than an ANN-based regression model across all DSE scenarios considered (values averaged over all benchmarks for each scenario). We also find that, to achieve the same accuracy as ArchRanker, the ANN often requires three times more training simulations. Tianshi Chen 0002, Qi Guo 0001, Ke Tang 0001, Olivier Temam, Zhiwei Xu 0002, Zhi-Hua Zhou, Yunji Chen |
ISCA | 4 |
| 2014 | DaDianNao: A Machine-Learning SupercomputerabstractMany companies are deploying services, either for consumers or industry, which are largely based on machine-learning algorithms for sophisticated processing of large amounts of data. The state-of-the-art and most popular such machine-learning algorithms are Convolutional and Deep Neural Networks (CNNs and DNNs), which are known to be both computationally and memory intensive. A number of neural network accelerators have been recently proposed which can offer high computational capacity/area ratio, but which remain hampered by memory accesses. However, unlike the memory wall faced by processors on general-purpose workloads, the CNNs and DNNs memory footprint, while large, is not beyond the capability of the on chip storage of a multi-chip system. This property, combined with the CNN/DNN algorithmic characteristics, can lead to high internal bandwidth and low external communications, which can in turn enable high-degree parallelism at a reasonable area cost. In this article, we introduce a custom multi-chip machine-learning architecture along those lines. We show that, on a subset of the largest known neural network layers, it is possible to achieve a speedup of 450.65x over a GPU, and reduce the energy by 150.31x on average for a 64-chip system. We implement the node down to the place and route at 28nm, containing a combination of custom storage and computational units, with industry-grade interconnects. Yunji Chen, Shaoli Liu, Shijin Zhang, Liqiang He, Ling Li 0001, Tianshi Chen 0002, Zhiwei Xu 0002, Ninghui Sun, Olivier Temam |
MICRO | 11 |
| 2014 | Performance Portability Across Heterogeneous SoCs Using a Generalized Library-Based ApproachabstractBecause of tight power and energy constraints, industry is progressively shifting toward heterogeneous system-on-chip (SoC) architectures composed of a mix of general-purpose cores along with a number of accelerators. However, such SoC architectures can be very challenging to efficiently program for the vast majority of programmers, due to numerous programming approaches and languages. Libraries, on the other hand, provide a simple way to let programmers take advantage of complex architectures, which does not require programmers to acquire new accelerator-specific or domain-specific languages. Increasingly, library-based, also called algorithm-centric, programming approaches propose to generalize the usage of libraries and to compose programs around these libraries, instead of using libraries as mere complements. In this article, we present a software framework for achieving performance portability by leveraging a generalized library-based approach. Inspired by the notion of a component, as employed in software engineering and HW/SW codesign, we advocate nonexpert programmers to write simple wrapper code around existing libraries to provide simple but necessary semantic information to the runtime. To achieve performance portability, the runtime employs machine learning (simulated annealing) to select the most appropriate accelerator and its parameters for a given algorithm. This selection factors in the possibly complex composition of algorithms used in the application, the communication among the various accelerators, and the tradeoff between different objectives (i.e., accuracy, performance, and energy). Using a set of benchmarks run on a real heterogeneous SoC composed of a multicore processor and a GPU, we show that the runtime overhead is fairly small at 5.1% for the GPU and 6.4% for the multi-core. We then apply our accelerator selection approach to a simulated SoC platform containing multiple inexact accelerators. We show that accelerator selection together with hardware parameter tuning achieves an average 46.2% energy reduction and a speedup of 2.1× while meeting the desired application error target. Shuangde Fang, Zidong Du, Yuntan Fang, Yuanjie Huang, Lieven Eeckhout, Olivier Temam, Huawei Li 0001, Yunji Chen, Chengyong Wu |
ACM Trans. Archit. Code Optim. | 7 |
| 2013 | Elastic CGRAsabstractVital technology trends such as voltage scaling and homogeneous multicore scaling have reached their limits and architects turn to alternate computing paradigms, such as heterogeneous and domain-specialized solutions. Coarse-Grain Reconfigurable Arrays (CGRAs) promise the performance of massively spatial computing while offering interesting trade-offs of flexibility versus energy efficiency. Yet, configuring and scheduling execution for CGRAs generally runs into the classic difficulties that have hampered Very-Long Instruction Word (VLIW) architectures: efficient schedules are difficult to generate, especially for applications with complex control flow and data structures, and they are inherently static - thus, in adapted to variable-latency components (such as the read ports of caches). Over the years, VLIWs have been relegated to important but specific application domains where such issues are more under the control of the designers; similarly, statically-scheduled CGRAs may prove inadequate for future general-purpose computing systems. In this paper, we introduce Elastic CGRAs, the superscalar processors of computing fabrics: no complex schedule needs to be computed at configuration time, and the operations execute dynamically in the CGRA when data are ready, thus exploiting the data parallelism that an application offers. We designed, down to a manufacturable layout, a simple CGRA where we demonstrated and optimized our elastic control circuitry. We also built a complete compilation toolchain that transforms arbitrary C code in a configuration for the array. The area overhead (26.2%), critical path overhead (8.2%) and energy overhead (53.6%) of Elastic CGRAs over non-elastic CGRAs are significantly lower than the overhead of superscalar processors over VLIWs, while providing the same benefits. At such moderate costs, elasticity may prove to be one of the key enablers to make the adoption of CGRAs widespread. Yuanjie Huang, Paolo Ienne, Olivier Temam, Yunji Chen, Chengyong Wu |
FPGA | 3 |
| 2013 | Continuous real-world inputs can open up alternative accelerator designsabstractMotivated by energy constraints, future heterogeneous multi-cores may contain a variety of accelerators, each targeting a subset of the application spectrum. Beyond energy, the growing number of faults steers accelerator research towards fault-tolerant accelerators. Bilel Belhadj, Antoine Joubert, Rodolphe Héliot, Olivier Temam |
ISCA | 5 |
| 2013 | Cluster Cache MonitorabstractAs the number of cores and the working sets of parallel workloads increase, shared L2 caches exhibit fewer misses than private L2 caches by making a better use of the total available cache capacity, but they also induce higher overall L1 miss latencies because of the longer average distance between two nodes, and the potential congestions at certain nodes. One of the main causes of the long L1 miss latencies are accesses to home nodes of the directory. However, we have observed that there is a high probability that the target data of an L1 miss resides in the L1 cache of a neighbor node. In such cases, these long-distance accesses to the home nodes can be potentially avoided. We organize the multi-core into clusters of 2×2 nodes, and in order to leverage the aforementioned property, we introduce the Cluster Cache Monitor (CCM). The CCM is a hardware structure in charge of detecting whether an L1 miss can be served by one of the cluster L1 caches, and two cluster-related states in the coherence protocol in order to avoid long-distance accesses to home nodes upon hits in the cluster L1 caches. We evaluate this approach on a 64-node multi-core using SPLASH-2 and PARSEC benchmarks, and we find that the CCM can reduce the execution time by 15% and reduce the energy by 14%, while saving 28% of the directory storage area compared to a standard multi-core with a shared L2. We also show that the CCM outperforms recent mechanisms, such as ASR, DCC and RNUCA. Guohong Li, Olivier Temam, Zhenyu Liu 0001, Dongsheng Wang 0002, Sanchuan Guo |
SBAC-PAD | 2 |
| 2012 | Iterative optimization for the data centerabstractIterative optimization is a simple but powerful approach that searches for the best possible combination of compiler optimizations for a given workload. However, each program, if not each data set, potentially favors a different combination. As a result, iterative optimization is plagued by several practical issues that prevent it from being widely used in practice: a large number of runs are required for finding the best combination; the process can be data set dependent; and the exploration process incurs significant overhead that needs to be compensated for by performance benefits.Therefore, while iterative optimization has been shown to have significant performance potential, it is seldomly used in production compilers. Shuangde Fang, Lieven Eeckhout, Olivier Temam, Chengyong Wu |
ASPLOS | 4 |
| 2012 | Capacitance of TSVs in 3-D stacked chips a problem?: not for neuromorphic systems!abstractIn order to cope with increasingly stringent power and variability constraints, architects need to investigate alternative paradigms. Neuromorphic architectures are increasingly considered (especially spike-based neurons) because of their inherent robustness and their energy efficiency. Yet, they have two limitations: the massive parallelism among neurons is hampered by 2D planar circuits, and the most cost-effective hardware neurons are analog implementations that require large capacitors, We show that 3D stacking with Through-Silicon-Vias applied to neuromorphic architectures can solve both issues: not only by providing massive parallelism between layers, but also by turning the parasitic capacitances of TSVs into useful capacitive storage. Antoine Joubert, Marc Duranton, Bilel Belhadj, Olivier Temam, Rodolphe Héliot |
DAC | 4 |
| 2012 | Statistical performance comparisons of computersabstractAs a fundamental task in computer architecture research, performance comparison has been continuously hampered by the variability of computer performance. In traditional performance comparisons, the impact of performance variability is usually ignored (i.e., the means of performance measurements are compared regardless of the variability), or in the few cases where it is factored in using parametric confidence techniques, the confidence is either erroneously computed based on the distribution of performance measurements (with the implicit assumption that it obeys the normal law), instead of the distribution of sample mean of performance measurements, or too few measurements are considered for the distribution of sample mean to be normal. We first illustrate how such erroneous practices can lead to incorrect comparisons. Then, we propose a non-parametric Hierarchical Performance Testing (HPT) framework for performance comparison, which is significantly more practical than standard parametric techniques because it does not require to collect a large number of measurements in order to achieve a normal distribution of the sample mean. This HPT framework has been implemented as an open-source software. Tianshi Chen 0002, Yunji Chen, Qi Guo 0001, Olivier Temam, Weiwu Hu |
HPCA | 4 |
| 2012 | Hardware spiking neurons design: Analog or digital?abstractNeuromorphic circuits aim at emulating biological spiking neurons in silicon hardware. Neurons can be implemented either as analog or digital components. While the respective advantages of each approach are well known, i.e., digital designs are more simple but analog neurons are more energy efficient, there exists no clear and precise quantitative comparison of both designs. In this paper, we compare the digital and analog implementations of the same Leaky Integrate-and-Fire neuron model at the same technology node (CMOS 65 nm) with the same level of performance (SNR and maximum spiking rate), in terms of area and energy. We show that the analog implementation requires 5 times less area, and consumes 20 times less energy than the digital design. As a result, the analog neuron, in spite of its greater design complexity, is a serious contender for future large-scale silicon neural systems. Antoine Joubert, Bilel Belhadj, Olivier Temam, Rodolphe Héliot |
IJCNN | 3 |
| 2012 | A defect-tolerant accelerator for emerging high-performance applicationsabstractDue to the evolution of technology constraints, especially energy constraints which may lead to heterogeneous multi-cores, and the increasing number of defects, the design of defect-tolerant accelerators for heterogeneous multi-cores may become a major micro-architecture research issue. Most custom circuits are highly defect sensitive, a single transistor can wreck such circuits. On the contrary, artificial neural networks (ANNs) are inherently error tolerant algorithms. And the emergence of high-performance applications implementing recognition and mining tasks, for which competitive ANN-based algorithms exist, drastically expands the potential application scope of a hardware ANN accelerator. However, while the error tolerance of ANN algorithms is well documented, there are few in-depth attempts at demonstrating that an actual hardware ANN would be tolerant to faulty transistors. Most fault models are abstract and cannot demonstrate that the error tolerance of ANN algorithms can be translated into the defect tolerance of hardware ANN accelerators. In this article, we introduce a hardware ANN geared towards defect tolerance and energy efficiency, by spatially expanding the ANN. In order to precisely assess the defect tolerance capability of this hardware ANN, we introduce defects at the level of transistors, and then assess the impact of such defects on the hardware ANN functional behavior. We empirically show that the conceptual error tolerance of neural networks does translate into the defect tolerance of hardware neural networks, paving the way for their introduction in heterogeneous multi-cores as intrinsically defect-tolerant and energy-efficient accelerators. Olivier Temam |
ISCA | 1 |
| 2012 | Configurable conduction delay circuits for high spiking ratesabstractThe conduction delay in neural systems has been proven to play an important role in processing neural information. In hardware spiking neural networks (SNN), emulating conduction delays consists of intercepting and buffering spikes for a certain amount of time during their transfer. The complexity of the conduction delay implementation increases with high spiking rates; it implies (1) storing a large number of spikes into memory cells and (2) conserving the required time resolution while processing the delays. As a result, the circuit size becomes very large and difficult to integrate into large scale SNN systems. In this paper, we highlight the trade-offs of an efficient digital delay circuit design supporting high neuron firing rates. The key issue resides in conserving spikes and spike timings while limiting storage requirements. We present a digital implementation of a configurable delay circuit supporting spiking rates of up to 1Meps (Mega events per second) and a delay range going from 1μ with a time resolution less than 5% of the configured delay time. Synthesis results show that, using the CMOS 65nm technology, the required silicon area is 1600μm2. Bilel Belhadj, Antoine Joubert, Olivier Temam, Rodolphe Héliot |
ISCAS | 3 |
| 2012 | Deconstructing iterative optimizationabstractIterative optimization is a popular compiler optimization approach that has been studied extensively over the past decade. In this article, we deconstruct iterative optimization by evaluating whether it works across datasets and by analyzing why it works. Up to now, most iterative optimization studies are based on a premise which was never truly evaluated: that it is possible to learn the best compiler optimizations across datasets. In this article, we evaluate this question for the first time with a very large number of datasets. We therefore compose KDataSets, a dataset suite with 1000 datasets for 32 programs, which we release to the public. We characterize the diversity of KDataSets, and subsequently use it to evaluate iterative optimization. For all 32 programs, we find that there exists at least one combination of compiler optimizations that achieves at least 83% or more of the best possible speedup across all datasets on two widely used compilers (Intel's ICC and GNU's GCC). This optimal combination is program-specific and yields speedups up to 3.75× (averaged across datasets of a program) over the highest optimization level of the compilers (-O3 for GCC and -fast for ICC). This finding suggests that optimizing programs across datasets might be much easier than previously anticipated. In addition, we evaluate the idea of introducing compiler choice as part of iterative optimization. We find that it can further improve the performance of iterative optimization because different programs favor different compilers. We also investigate why iterative optimization works by analyzing the optimal combinations. We find that only a handful optimizations yield most of the speedup. Finally, we show that optimizations interact in a complex and sometimes counterintuitive way through two case studies, which confirms that iterative optimization is an irreplaceable and important compiler strategy. Shuangde Fang, Yuanjie Huang, Lieven Eeckhout, Grigori Fursin, Olivier Temam, Chengyong Wu |
ACM Trans. Archit. Code Optim. | 6 |
| 2011 | Implementation of signal processing tasks on neuromorphic hardwareabstractBecause of power and reliability issues, computer architects are forced to explore new types of architectures, such as heterogeneous systems embedding hardware accelerators. Neuromorphic systems are good candidate accelerators that can perform efficient and robust computing for certain classes of applications. We propose a piking neurons based accelerator, with its hardware and software, that can be easily programmed to execute a wide range of signal processing applications. A library of operators is built to facilitate implementation of various types of applications. Automated placement and routing software tools are used to map these applications onto the hardware. Altogether, this system aims at providing to the user a simple way to implement signal processing tasks on neuromorphic hardware. Olivier Temam, Rodolphe Héliot |
IJCNN | 1 |
| 2011 | A Very Fast Simulator for Exploring the Many-Core FutureabstractAlthough multi-core architectures with a large number of cores ("many-cores'') are considered the future of computing systems, there are currently few practical tools to quickly explore both their design and general program scalability. In this paper, we present SiMany, a discrete-event-based many-core simulator able to support more than a thousand cores while being orders of magnitude faster than existing flexible approaches. One of the difficult challenges for a reasonably realistic many-core simulation is to model faithfully the potentially high concurrency a program can exhibit. SiMany uses a novel virtual time synchronization technique, called spatial synchronization, to achieve this goal in a completely local and distributed fashion, which diminishes interactions and preserves locality. Compared to previous simulators, it raises the level of abstraction by focusing on modeling concurrent interactions between cores, which enables fast coarse comparisons of high-level architecture design choices and parallel programs performance. Sequential pieces of code are executed natively for maximal speed. We exercise the simulator with a set of dwarf-like task-based benchmarks with dynamic control flow and irregular data structures. Scalability results are validated through comparison with a cycle-level simulator up to 64 cores. They are also shown consistent with well-known benchmark characteristics. We finally demonstrate how SiMany can be used to efficiently compare the benchmarks' behavior over a wide range of architectural organizations, such as polymorphic architectures and network of clusters. Olivier Certner, Arun Raman, Olivier Temam |
IPDPS | 4 |
| 2011 | Automatic abstraction and fault tolerance in cortical microachitecturesabstractRecent advances in the neuroscientific understanding of the brain are bringing about a tantalizing opportunity for building synthetic machines that perform computation in ways that differ radically from traditional Von Neumann machines. These brain-like architectures, which are premised on our understanding of how the human neocortex computes, are highly fault-tolerant, averaging results over large numbers of potentially faulty components, yet manage to solve very difficult problems more reliably than traditional algorithms. A key principle of operation for these architectures is that of automatic abstraction: independent features are extracted from highly disordered inputs and are used to create abstract invariant representations of the external entities. This feature extraction is applied hierarchically, leading to increasing levels of abstraction at higher levels in the hierarchy. Atif Hashmi, Hugues Berry, Olivier Temam, Mikko H. Lipasti |
ISCA | 3 |
| 2010 | Scalable hardware support for conditional parallelizationabstractParallel programming approaches based on task division/spawning are getting increasingly popular because they provide for a simple and elegant abstraction of parallelization, while achieving good performance on workloads which are traditionally complex to parallelize due to the complex control flow and data structures involved. The ability to quickly distribute fine-granularity tasks among many cores is key to the efficiency and scalability of such division-based parallel programming approaches. For this reason, several hardware supports for work stealing environments have already been proposed. However, they all rely on a central hardware structure for distributing tasks among cores, which hampers the scalability and efficiency of these schemes. Olivier Certner, José Duato, Olivier Temam |
PACT | 4 |
| 2010 | A memory interface for multi-purpose multi-stream acceleratorsabstractPower and programming challenges make heterogeneous multi-cores composed of cores and ASICs an attractive alternative to homogeneous multi-cores. Recently, multi-purpose loop-based generated accelerators have emerged as an especially attractive accelerator option. They have several assets: short design time (automatic generation), flexibility (multi-purpose) but low configuration and routing overhead (unlike FPGAs), computational performance (operations are directly mapped to hardware), and a focus on memory throughput by leveraging loop constructs. However, with multiple streams, the memory behavior of such accelerators can become at least as complex as that of superscalar processors, while they still need to retain the memory ordering predictability and throughput efficiency of DMAs. In this article, we show how to design a memory interface for multi-purpose accelerators which combines the ordering predictability of DMAs, retains key efficiency features of memory systems for complex processors, and requires only a fraction of their cost by leveraging the properties of streams references. We evaluate the approach with a synthesizable version of the memory interface for an example 9-task generated loop-based accelerator Sylvain Girbal, Olivier Temam, Sami Yehia, Hugues Berry |
CASES | 2 |
| 2010 | The rebirth of neural networksabstractAfter the hype of the 1990s, where companies like Intel or Philips built commercial hardware systems based on neural networks, the approach quickly lost ground for multiple reasons: hardware neural networks were no match for software neural networks run on rapidly progressing general-purpose processors, their application scope was considered too limited, and even progress in machine-learning theory overshadowed neural networks. Olivier Temam |
ISCA | 1 |
| 2010 | ArchExplorer.org: A methodology for facilitating a fair Comparison of research ideasabstractWhile reproducing the experimental results of research articles is standard practice in mature domains of science, such as physics or biology, it has not yet become mainstream in computer architecture. However, recent research shows that the lack of a fair and broad comparison of research ideas can be significantly detrimental to the progress, and thus the productivity, of research. At the same time, the complexity of architecture simulators and the fact that simulators are not systematically disseminated with novel ideas are largely responsible for this situation. While this methodology has a fundamental impact on research, it is by essence a practical issue. In this article, we present and set up an a typical approach to overcome this practical methodology issue, which takes the form of an open and continuous exploration through ArchExplorer, a server-side web infrastructure, that can significantly ease the process of fairly and quantitatively comparing research ideas. The web infrastructure ArchExplorer.org is now publicly open, and we demonstrate the approach with a set of data cache mechanisms. We show that this broad exploration can challenge some earlier assessments about data cache research, and even challenges the conclusions of an earlier but less thorough study on data cache comparison. Veerle Desmet, Sylvain Girbal, Olivier Temam |
ISPASS | 3 |
| 2010 | Evaluating iterative optimization across 1000 datasetsabstractWhile iterative optimization has become a popular compiler optimization approach, it is based on a premise which has never been truly evaluated: that it is possible to learn the best compiler optimizations across data sets. Up to now, most iterative optimization studies find the best optimizations through repeated runs on the same data set. Only a handful of studies have attempted to exercise iterative optimization on a few tens of data sets. Yuanjie Huang, Lieven Eeckhout, Grigori Fursin, Olivier Temam, Chengyong Wu |
PLDI | 6 |
| 2010 | Collective optimization: A practical collaborative approachabstractIterative optimization is a popular and efficient research approach to optimize programs using feedback-directed compilation. However, one of the key limitations that prevented widespread use in production compilers and day-to-day practice is the necessity to perform a large number of program runs with the same dataset and environment (architecture, OS, compiler) to test many different combinations of optimizations. In this article, we propose to overcome such a practical obstacle using collective optimization , where the task of optimizing a program or tuning default compiler optimization heuristic leverages the experience of many other users continuously, rather than being performed in isolation, and often redundantly, by each user. During this unobtrusive approach, performance information is sent to a central database after each run and statistically combined with the data from all users to suggest most profitable optimizations for a given program and an architecture, or to gradually improve default optimization level of a compiler for a given architecture. In this article, we address two key challenges of collective optimization. We show that it is possible to simultaneously learn and improve performance while avoiding long training phases. We also demonstrate how to use our approach with static compilers to learn optimizations across multiple datasets and architectures without even a reference run normally needed to compute speedups over the baseline optimization by using static function cloning and dynamic adaptation. We present a novel probabilistic approach based on competition among pairs of optimizations (program reaction to optimizations) to enable optimization knowledge reuse and achieve nearly the best possible iterative optimization performance. We implemented our technique in GCC (widespread production open-source compiler that supports multiple architectures) and connected it to a public collective optimization database at cTuning.org to gather profile and optimization data continuously and transparently in realistic environments ranging from desktop PCs and mobile systems to supercomputers and data centers. Grigori Fursin, Olivier Temam |
ACM Trans. Archit. Code Optim. | 2 |
| 2009 | Collective Optimization
Grigori Fursin, Olivier Temam |
HiPEAC | 2 |
| 2009 | Reconciling specialization and flexibility through compound circuitsabstractWhile parallelism and multi-cores are receiving much attention as a major scalability path, customization is another, orthogonal and complementary, scalability path which can target not easily parallelizable programs or program sections. The key assets of customization are cost and power efficiency. The key limitation of customization is flexibility. However, we argue that there is no perfect balance between efficiency and flexibility, each system vendor may want to strike a different such balance. In this article, we present a method for achieving any desired balance between flexibility and efficiency by automatically combining any set of individual customization circuits into a larger compound circuit. This circuit is significantly more cost efficient than the simple union of all target circuits, and is configurable to behave as any of the target circuits, while avoiding the routing and configuration cost overhead of FPGAs. The more individual circuits are included, the larger the number of applications which can potentially benefit from this compound customization circuit, realizing flexibility at a minimal cost. Moreover, we observe that the compound circuit cost does not increase in proportion to the number of target applications, due to the wide range of common data-flow and control-flow patterns in programs. Currently, the target individual circuits correspond to loops, like most accelerators in embedded systems, but the aggregation method can accommodate circuits of any size. Using the UTDSP benchmarks and accelerators coupled with an embedded PowerPC405 processor, we show that this approach can yield an average performance improvement of 2.97, while the corresponding synthesized aggregate accelerator is 3 time smaller than the sum of individual accelerators for each target benchmark. Sami Yehia, Sylvain Girbal, Hugues Berry, Olivier Temam |
HPCA | 4 |
| 2008 | A Practical Approach for Reconciling High and Predictable Performance in Non-Regular Parallel ProgramsabstractIncreasingly complex consumer electronics applications call for embedded processors with higher performance. Multi-cores are capable of delivering the required performance. However, many of these embedded applications must meet some form of soft real-time constraints, and program behavior on multi-cores is even harder to predict than on single-cores. In this article, we highlight the greater performance variability of irregular applications (non-regular control flow and/or data structures) across data sets when parallelized and run on a multi-core. We then show that a proper parallelization approach coupled with a lightweight run-time system can drastically reduce this performance variability without sacrificing their performance. This approach requires no complex program or architecture analysis or modeling. Moreover, we show that parallel program performance becomes stable enough that it is possible to reasonably and accurately predict it by sampling a few training runs. Olivier Certner, Pierre Palatin, Olivier Temam, Frederic Arzel, Nathalie Drach-Temam |
DATE | 4 |
| 2007 | Rapidly Selecting Good Compiler Optimizations using Performance CountersabstractApplying the right compiler optimizations to a particular program can have a significant impact on program performance. Due to the non-linear interaction of compiler optimizations, however, determining the best setting is non-trivial. There have been several proposed techniques that search the space of compiler options to find good solutions; however such approaches can be expensive. This paper proposes a different approach using performance counters as a means of determining good compiler optimization settings. This is achieved by learning a model off-line which can then be used to determine good settings for any new program. We show that such an approach outperforms the state-of-the-art and is two orders of magnitude faster on average. Furthermore, we show that our performance counter-based approach outperforms techniques based on static code features. Using our technique we achieve a 17% improvement over the highest optimization setting of the commercial PathScale EKOPath 2.3.1 optimizing compiler on the SPEC benchmark suite on a AMD Athlon 64 3700+ platform John Cavazos, Grigori Fursin, Felix V. Agakov, Edwin V. Bonilla, Michael F. P. O'Boyle, Olivier Temam |
CGO | 6 |
| 2007 | MiDataSets: Creating the Conditions for a More Realistic Evaluation of Iterative Optimization
Grigori Fursin, John Cavazos, Michael F. P. O'Boyle, Olivier Temam |
HiPEAC | 4 |
| 2007 | Modeling self-developing biological neural networks
Hugues Berry, Olivier Temam |
Neurocomputing | 2 |
| 2006 | Automatic performance model construction for the fast software exploration of new hardware designsabstractDeveloping an optimizing compiler for a newly proposed architecture is extremely difficult when there is only a simulator of the machine available. Designing such a compiler requires running many experiments in order to understand how different optimizations interact. Given that simulators are orders of magnitude slower than real processors, such experiments are highly restricted. This paper develops a technique to automatically build a performance model for predicting the impact of program transformations on any architecture, based on a limited number of automatically selected runs. As a result, the time for evaluating the impact of any compiler optimization in early design stages can be drastically reduced such that all selected potential compiler optimizations can be evaluated. This is achieved by first evaluating a small set of sample compiler optimizations on a prior set of benchmarks in order to train a model, followed by a very small number of evaluations, or probes, of the target program.We show that by training on less than 0. 7% of all possible transformations (640 samples collected from 10 benchmarks out of 880000 possible samples, 88000 per training benchmark) and probing the new program on only 4 transformations, we can predict the performance of all program transformations with an error of just 7. 3% on average. As each prediction takes almost no time to generate, this scheme provides an accurate method of evaluating compiler performance, which is several orders of magnitude faster than current approaches. John Cavazos, Christophe Dubach, Felix V. Agakov, Edwin V. Bonilla, Michael F. P. O'Boyle, Grigori Fursin, Olivier Temam |
CASES | 7 |
| 2006 | CAPSULE: Hardware-Assisted Parallel Execution of Component-Based ProgramsabstractSince processor performance scalability will now mostly be achieved through thread-level parallelism, there is a strong incentive to parallelize a broad range of applications, including those with complex control flow and data structures. And writing parallel programs is a notoriously difficult task. In this article, among the many issues associated with writing parallel programs, we focus on finding the appropriate parallelism granularity, and efficiently mapping tasks with complex control and dataflow to threads. We propose to relieve the user and compiler of both tasks by delegating the parallelization decision to the architecture at run-time, through a combination of hardware and software support and a tight dialogue between both. For the software support, we leverage an increasingly popular approach in software engineering, called component-based programming; the component contract assumes tight encapsulation of code and data for easy manipulation. Previous research works have shown that it is possible to augment components with the ability to split/spawn, providing a simple and fitting approach for programming parallel applications with complex control and data structures. However, such environments still require the programmer to determine the appropriate granularity of parallelism, and spawning incurs significant overheads due to software run-time system management. For that purpose, we provide an environment with the ability to spawn conditionally depending on available hardware resources, and we delegate spawning decisions and actions to the architecture. This conditional spawning is implemented through frequent hardware resource probing by the program. This, in turn, enables rapid adaptation to varying workload conditions, data sets and hardware resources. Furthermore, thanks to appropriate combined hardware and compiler support, the probing has no significant overhead on program performance. We demonstrate this approach on an 8-context SMT, several non-trivial algorithms and re-engineered SPEC CINT2000 benchmarks, written using component syntax processed by our toolchain. We achieve speedups ranging from 1.1 to 3.0 on our test suite Pierre Palatin, Yves Lhuillier, Olivier Temam |
MICRO | 3 |
| 2005 | A Practical Method for Quickly Evaluating Program Optimizations
Grigori Fursin, Albert Cohen 0001, Michael F. P. O'Boyle, Olivier Temam |
HiPEAC | 4 |
| 2005 | Facilitating the search for compositions of program transformationsabstractStatic compiler optimizations can hardly cope with the complex run-time behavior and hardware components interplay of modern processor architectures. Multiple architectural phenomena occur and interact simultaneously, which requires the optimizer to combine multiple program transformations. Whether these transformations are selected through static analysis and models, runtime feedback, or both, the underlying infrastructure must have the ability to perform long and complex compositions of program transformations in a flexible manner. Existing compilers are ill-equipped to perform that task because of rigid phase ordering, fragile selection rules using pattern matching, and cumbersome expression of loop transformations on syntax trees. Moreover, iterative optimization emerges as a pragmatic and general means to select an optimization strategy via machine learning and operations research. Searching for the composition of dozens of complex, dependent, parameterized transformations is a challenge for iterative approaches.The purpose of this article is threefold: (1) to facilitate the automatic search for compositions of program transformations, introducing a richer framework which improves on classical polyhedral representations, suitable for iterative optimization on a simpler, structured search space, (2) to illustrate, using several examples, that syntactic code representations close to the operational semantics hamper the composition of transformations, and (3) that complex compositions of transformations can be necessary to achieve significant performance benefits. The proposed framework relies on a unified polyhedral representation of loops and statements. The key is to clearly separate four types of actions associated with program transformations: iteration domain, schedule, data layout and memory access functions modifications. The framework is implemented within the Open64/ORC compiler, aiming for native IA64, AMD64 and IA32 code generation, along with source-to-source optimization of Fortran90, C and C++. Albert Cohen 0001, Marc Sigler, Sylvain Girbal, Olivier Temam, David Parello, Nicolas Vasilache |
ICS | 4 |
| 2004 | VHC: Quickly Building an Optimizer for Complex Embedded ArchitecturesabstractTo meet the high demand for powerful embedded processors, VLIW architectures are increasingly complex (e.g., multiple clusters), and moreover, they now run increasingly sophisticated control-intensive applications. As a result, developing architecture-specific compiler optimizations is becoming both increasingly critical and complex, while time-to-market constraints remain very tight. We present a novel program optimization approach, called the virtual hardware compiler (VHC), that can perform as well as static compiler optimizations, but which requires far less compiler development effort, even for complex VLIW architectures and complex target applications. The principle is to augment the target processor simulator with superscalar-like features, observe how the target program is dynamically optimized during execution, and deduce an optimized binary for the static VLIW architecture. Developing an architecture-specific optimizer then amounts to modifying the processor simulator which is very fast compared to adapting static compiler optimizations to an architecture. We also show that a VHC-optimized binary trained on a number of data sets performs as well as a statically-optimized binary on other test data sets. The only drawback of the approach is a largely increased compilation time, which is often acceptable for embedded applications and devices. Using the Texas Instruments C62 VLIW processor and the associated compiler, we experimentally show that this approach performs as well as static compiler optimizations for a much lower research and development effort. Using a single-core C60 and a dual-core clustered C62 processors, we also show that the same approach can be used for efficiently retargeting binary programs within a family of processors. Michael Dupré, Nathalie Drach-Temam, Olivier Temam |
CGO | 3 |
| 2004 | A New Optimized Implemention of the SystemC Engine Using Acyclic SchedulingabstractSystemC is rapidly gaining wide acceptance as a simulation framework for SoC and embedded processors. While its main assets are modularity and the very fact it is becoming a de facto standard, the evolution of the SystemC framework (from version 0.9 to version 2.0.1) suggests the environment is particularly geared toward increasing the framework functionalities rather than improving simulation speed. For cycle-level simulation, speed is a critical factor as simulation can be extremely slow, affecting the extent of design space exploration. In this article, we present a fast SystemC engine that, in our experience, can speed up simulations by a factor of 1.93 to 3.56 over SystemC 2.0.1. This SystemC engine is designed for cycle-level simulators and for the moment, it only supports the subset of the SystemC syntax (signals, methods) that is most often used for such simulators. We achieved greater speed (1) by completely rewriting the SystemC engine and improving the implementation software engineering, and (2) by proposing a new scheduling technique, intermediate between SystemC dynamic scheduling technique and existing static scheduling schemes. Unlike SystemC dynamic scheduling, our technique removes many if not all useless process wake-ups, while using a simpler scheduling algorithm than in existing static scheduling techniques. Daniel Gracia Pérez, Gilles Mouchard, Olivier Temam |
DATE | 3 |
| 2004 | A Polyhedral Approach to Ease the Composition of Program Transformations
Albert Cohen 0001, Sylvain Girbal, Olivier Temam |
Euro-Par | 3 |
| 2004 | From Sequences of Dependent Instructions to Functions: An Approach for Improving Performance without ILP or SpeculationabstractIn this article, we present an approach for improving the performance of sequences of dependent instructions. We observe that many sequences of instructions can be interpreted as functions. Unlike sequences of instructions, functions can be translated into very fast but exponentially costly two-level combinational circuits. We present an approach that exploits this principle, speeds up programs thanks to circuit-level parallelism/redundancy, but avoids the exponential costs. We analyze the potential of this approach, and then we propose an implementation that consists of a superscalar processor with a large specific functional unit associated with specific back-end transformations. The performance of the SpecInt2000 benchmarks and selected programs from the Olden and MiBench benchmark suites improves on average from 2.4% to 12% depending on the latency of the functional units, and up to 39.6%; more precisely, the performance of optimized code sections improves on average from 3.5% to 19%, and up to 49%. Sami Yehia, Olivier Temam |
ISCA | 2 |
| 2004 | MicroLib: A Case for the Quantitative Comparison of Micro-Architecture MechanismsabstractWhile most research papers on computer architectures include some performance measurements, these performance numbers tend to be distrusted. Up to the point that, after so many research articles on data cache architectures, for instance, few researchers have a clear view of what are the best data cache mechanisms. To illustrate the usefulness of a fair quantitative comparison, we have picked a target architecture component for which lots of optimizations have been proposed (data caches), and we have implemented most of the performance-oriented hardware data cache optimizations published in top conferences in the past 4 years. Beyond the comparison of data cache ideas, our goals are twofold: (1) to clearly and quantitatively evaluate the effect of methodology shortcomings, such as model precision, benchmark selection, trace selection..., on assessing and comparing research ideas, and to outline how strong is the methodology effect in many cases, (2) to outline that the lack of interoperable simulators and not disclosing simulators at publication time make it difficult if not impossible to fairly assess the benefit of research ideas. This study is part of a broader effort, called MicroLib, an open library of modular simulators aimed at promoting the disclosure and sharing of simulator models. Daniel Gracia Pérez, Gilles Mouchard, Olivier Temam |
MICRO | 3 |
| 2004 | Towards a Systematic, Pragmatic and Architecture-Aware Program Optimization Process for Complex ProcessorsabstractBecause processor architectures are increasingly complex, it is increasingly difficult to embed accurate machine models within compilers. As a result, compiler efficiency tends to decrease. Currently, the trend is on top-down approaches: static compilers are progressively augmented with information from the architecture as in profile-based, iterative or dynamic compilation techniques. However, for the moment, fairly elementary architectural information is used. In this article, we adopt a bottom-up approach to the architecture complexity issue: we assume we know everything about the behavior of the program on the architecture. We present a manual but systematic process for optimizing a program on a complex processor architecture using extensive dynamic analysis, and we find that a small set of run-time information is sufficient to drive an efficient process. We have experimentally observed on an Alpha 21264 that this approach can yield significant performance improvement on Spec benchmarks, beyond peak Spec. We are currently using this approach for optimizing customer applications. David Parello, Olivier Temam, Albert Cohen 0001, Jean-Marie Verdun |
SC | 2 |
| 2004 | A fast and accurate method for determining a lower bound on execution timeabstractAbstract In performance critical applications, memory latency is frequently the dominant overhead. In many cases, automatic compiler‐based optimizations to improve memory performance are limited and programmers frequently resort to manual optimization techniques. However, this process is tedious and time‐consuming. Furthermore, as the potential benefit from optimization is unknown there is no way to judge the amount of effort worth expending, nor when the process can stop, i.e. when optimal memory performance has been achieved or sufficiently approached. Architecture simulators can provide such information but designing an accurate model of an existing architecture is difficult and simulation times are excessively long. In this article, we propose and implement a technique that is both fast and reasonably accurate for estimating a lower bound on execution time for scientific applications. This technique has been tested on a wide range of programs from the SPEC benchmark suite and two commercial applications, where it has been used to guide a manual optimization process and iterative compilation. We compare our technique with that of a simulator with an ideal memory behaviour and demonstrate that our technique provides comparable information on memory performance and yet is over two orders of magnitude faster. We further show that our technique is considerably more accurate than hardware counters. Copyright © 2004 John Wiley & Sons, Ltd. Grigori Fursin, Michael F. P. O'Boyle, Olivier Temam, G. Watts |
Concurr. Comput. Pract. Exp. | 3 |
| 2003 | DiST: a simple, reliable and scalable method to significantly reduce processor architecture simulation timeabstractWhile architecture simulation is often treated as a methodology issue, it is at the core of most processor architecture research works, and simulation speed is often the bottleneck of the typical trial-and-error research process. To speedup simulation during this research process and get trends faster, researchers usually reduce the trace size. More sophisticated techniques like trace sampling or distributed simulation are scarcely used because they are considered unreliable and complex due to their impact on accuracy and the associated warm-up issues.In this article, we present DiST, a practical distributed simulation scheme where, unlike in other simulation techniques that trade accuracy for speed, the user is relieved from most accuracy issues thanks to an automatic and dynamic mechanism for adjusting the warm-up interval size. Moreover, the mechanism is designed so as to always privilege accuracy over speedup. The speedup scales with the amount of available computing resources, bringing an average 7.35 speedup on 10 machines with an average IPC error of 1.81% and a maximum IPC error of 5.06%.Besides proposing a solution to the warm-up issues in distributed simulation, we experimentally show that our technique is significantly more accurate than trace size reduction or trace sampling for identical speedups. We also show that not only the error always remains small for IPC and other metrics, but that a researcher can reliably base research decisions on DiST simulation results. Finally, we explain how the DiST tool is designed to be easily pluggable into existing architecture simulators with very few modifications. Sylvain Girbal, Gilles Mouchard, Albert Cohen 0001, Olivier Temam |
SIGMETRICS | 4 |
| 2002 | On increasing architecture awareness in program optimizations to bridge the gap between peak and sustained processor performance: matrix-multiply revisitedabstractAs the complexity of processor architectures increases, there is a widening gap between peak processor performance and sustained processor performance so that programs now tend to exploit only a fraction of available performance. While there is a tremendous amount of literature on program optimizations, compiler optimizations lack efficiency because they are plagued by three flaws: (1) they often implicitly use simplified, if not simplistic, models of processor architecture, (2) they usually focus on a single processor component (e.g., cache) and ignore the interactions among multiple components, (3) the most heavily nvestigated components (e.g., caches) sometimes have only a small impact on overall performance. Through the in-depth analysis of a simple program kernel, we want to show that understanding the complex interactions between programs and the numerous processor architecture components is both feasible and critical to design efficient program optimizations. David Parello, Olivier Temam, Jean-Marie Verdun |
SC | 2 |
| 2002 | Increasing hardware data prefetching performance using the second-level cache
Nathalie Drach-Temam, Jean-Luc Béchennec, Olivier Temam |
J. Syst. Archit. | 3 |
| 2000 | Load Scheduling with Profile Information
Götz Lindenmaier, Kathryn S. McKinley, Olivier Temam |
Euro-Par | 3 |
| 1999 | An Algorithm for Optimally Exploiting Spatial and Temporal Locality in Upper Memory LevelsabstractIn this study, we present an extension of Belady's MIN algorithm that optimally and simultaneously exploits spatial and temporal locality. Thus, this algorithm provides a performance upper bound of upper memory levels. The purpose of this algorithm is to assess current memory optimizations and to evaluate the potential benefits of future optimizations. We formally prove the optimality of this new algorithm with respect to minimizing misses and we show experimentally that the algorithm produces nearly minimum memory traffic on the SPEC95 benchmarks. Olivier Temam |
IEEE Trans. Computers | 1 |
| 1999 | Quantifying loop nest locality using SPEC'95 and the perfect benchmarksabstractThis article analyzes and quantifies the locality characteristics of numerical loop nests in order to suggest future directions for architecture and software cache optimizations. Since most programs spend the majority of their time in nests, the vast majority of cache optimization techniques target loop nests. In contrast, the locality characteristics that drive these optimizations are usually collected across the entire application rather than at the nest level. Researchers have studied numerical codes for so long that a number of commonly held assertions have emerged on their locality characteristics. In light of these assertions, we use the SPEC'95 and Perfect Benchmarks to take a new look at measuring locality on numerical codes based on references, loop nests, and program locality properties. Our results show that several popular assertions are at best overstatements. For example, although most reuse is within a loop nest, in line with popular assertions, most misses are internest capacity misses, and they correspond to potential reuse between nearby loop nests. In addition, we find that temporal and spatial reuse have balanced roles within a loop nest and that most reuse across nests and the entire program is temporal. These results are consistent with high hit rates (80% or more hits), but go against the commonly held assumption that spatial reuse dominates. Our locality measurements reveal important differences between loop nests and programs, refute some popular assertions, and provide new insights for the compiler writer and the architect. Kathryn S. McKinley, Olivier Temam |
ACM Trans. Comput. Syst. | 2 |
| 1998 | Investigating Optimal Local Memory PerformanceabstractRecent work has demonstrated that, cache space is often poorly utilized. However, no previous work has yet demonstrated upper bounds on what a cache or local memory could achieve when exploiting both spatial and temporal locality. Belady's MIN algorithm does yield an upper bound, but exploits only temporal locality. In this article, we present an optimal replacement algorithm for local memory that exploits temporal locality and spatial locality simultaneously. This algorithm is an extension of Belady's algorithm. We prove the optimality of this new algorithm with respect to minimizing misses, and we show experimentally that the algorithm produces nearly minimum memory traffic on the SPEC95 benchmarks. Like Belady's algorithm, our algorithm requires the entire program trace. It selects replacement victims and the number of words it fetches at once based on future accesses. Many different spatial locality strategies can be implemented with this algorithm. With an optimal strategy, the algorithm yields an upper bound that enables us to evaluate alternative implementations to today's caches. We further demonstrate the utility of this algorithm as an analysis tool by evaluating several intermediate strategies between cache and optimal to highlight the limitations of the cache line paradigm using the SPEC95 benchmarks. Olivier Temam |
ASPLOS | 1 |
| 1998 | Dataflow Analysis of Branch Mispredictions and Its Application to Early Resolution of Branch OutcomesabstractThe goal of this study is twofold: to analyze in detail the nature of conditional branch mispredictions in correlation based branch predictors, and, based on this analysis, to reduce the impact of branch mispredictions on processor performance by decreasing the branch resolution delay instead of improving the branch prediction accuracy. We classify conditional branches with the highest number of mispredictions according to the nature of their branch condition analytical expression. Based on these expressions, we can analyze and even precisely explain the origin of mispredictions in many cases. Moreover we find that many such branches belong to small sets of blocks inside loops, and within such sets we find that some of the branch expressions have regularity properties. We show how to exploit this regularity property by anticipating the branch outcome, where anticipation is a combination of value prediction and normal dataflow execution. We investigate a hardware mechanism to implement the concept of branch outcome anticipation. This mechanism relies on the separate execution of the normal program flow and a branch flow, which is a subset of the program flow corresponding to copies of the instructions needed to compute branch outcomes. The branch flow uses the regularity properties of branch condition expressions to get ahead of the normal program flow whenever possible. Currently, the mechanism can only target a subset of the conditional branches, but with these branches we experimentally show that the anticipation mechanism successfully reduces the average branch misprediction latency by 60%. Alexandre Farcy, Olivier Temam, Roger Espasa, Toni Juan |
MICRO | 2 |
| 1997 | Data Caches for Superscalar ProcessorsabstractAs the number of instructions executed in parallel increases, superscalar processors will require higher bandwidth from data caches.Because of the high cost of true multi-ported caches, alternative cache designs must be evaluated.The purpose of this study is to examine the data cache bandwidth requirements of high-degree superscalar processors, and investigate alternative solutions.The designs studied range from classic solutions like multi-banked caches to more complex solutions recently proposed in the literature.The performance tradeoffs of these different cache designs are examined in details.Then, using a chip area cost model, all solutions are compared with respect to both cost and performance.While many cache designs seem capable of achieving high cache bandwidth, the best cost/performance t,radeoff varies significantly depending on the dedicated area cost, ranging from multi-banked cache designs to hybrid multi-banked/multi-ported caches or even true multi-ported caches.For instance, we find that an 8-bank cache with minor optimizations perform 10% better than a true a-port cache at half the cost, or that a 4-bank 2 ports per bank cache performs better than a true 4-port cache and uses 45% less chip area. Toni Juan, Juan J. Navarro, Olivier Temam |
International Conference on Supercomputing | 3 |
| 1996 | A Quantitative Analysis of Loop Nest LocalityabstractThis paper analyzes and quantifies the locality characteristics of numerical loop nests in order to suggest future directions for architecture and software cache optimizations. Since most programs spend the majority of their time in nests, the vast majority of cache optimization techniques target loop nests. In contrast, the locality characteristics that drive these optimizations are usually collected across the entire application rather than the nest level. Indeed, researchers have studied numerical codes for so long that a number of commonly held assertions have emerged on their locality characteristics. In light of these assertions, we use the Perfect Benchmarks to take a new look at measuring locality on numerical codes based on references, loop nests, and program locality properties. Our results show that several popular assertions are at best overstatements. For example, we find that temporal and spatial reuse have balanced roles within a loop nest and most reuse across nests and the entire program is temporal. These results are consistent with high hit rates, but go against the commonly held assumption that spatial reuse dominates. Another result contrary to popular assumption is that misses within a nest are overwhelmingly conflict misses rather than capacity misses. Capacity misses are a significant source of misses for the entire program, but mostly correspond to potential reuse between different loop nests. Our locality measurements reveal important differences between loop nests and programs; refute some popular assertions; and provide new insights for the compiler writer and the architect. Kathryn S. McKinley, Olivier Temam |
ASPLOS | 2 |
| 1996 | Improving Single-Process Performance with Multithreaded ProcessorsabstractMukithreaded processors are an attractive alternative to superscalar processors.Their ability to handle multiple threads simultaneously is likely to result in higher instruction throughput andinbetter utilization of functional units, though they can still benefit from many (hardware and software) functionalities of superscalar processors and thus consist in an evolution rather than a radical transformation of current processors.However, to date, multithreaded processors have been mostly shown capable ofimproving theperformance ofmultiple-process workloads, i.e. threads with independent contexts, but in order to compete with superscalar processors, they must also prove their ability to improve single-process performance.In this article, it is proposed to improve single-process performance by simply pamllelizing a process over several threads sharing the same context, using automatic parallelization techniques already available for multiprocessors.The purpose of this article is toanalyze the impact of shared-context worfdoads on both processor architecture and processor performance.On afh-st hand, basedon previous research works and by reusing many components of superscalar processors, a multithreaded processor architectureis defined.Then, considering theissues raised by sharedcontext workloads on data cache architectures have mostly been ignored up to now, we attempt to determine how current cache architectures can evolve to cope with shared-context workloads.The impact ofshared workloads onthis architecture is analyzed in details, showing that, like multiprocessors, multithreaded processors exhibit performance bottlenecks of their own that limit single-process speedups. Alexandre Farcy, Olivier Temam |
International Conference on Supercomputing | 2 |
| 1995 | Software Assistance for Data CachesabstractHardware and software cache optimizations are active fields of research, that have yielded powerful but occasionally complex designs and algorithms. The purpose of this paper is to investigate the performance of combined though simple software and hardware optimizations. Because current caches provide little flexibility for exploiting temporal and spatial locality, two hardware modifications are proposed to support these two kinds of locality. Spatial locality is exploited by using large virtual cache lines which do not exhibit the performance flaws of large physical cache lines. Temporal locality is exploited by minimizing cache pollution with a bypass mechanism that still allows to exploit spatial locality. Subsequently, it is shown that simple software informations on the spatial/temporal locality of array references, as provided by current data locality optimizing algorithms, can be used to significantly increase cache performance. The performance and design trade-offs of the proposed mechanisms are discussed. Software assisted caches are further shown to provide a convenient support for hardware and software optimizations.> Olivier Temam, Nathalie Drach-Temam |
HPCA | 1 |
| 1995 | Software assistance for data caches
Olivier Temam, Nathalie Drach-Temam |
Future Gener. Comput. Syst. | 1 |
| 1995 | Influence of Cross-Interferences on Blocked Loops: A Case Study with Matric-Vector MultiplyabstractState-of-the art data locality optimizing algorithms are targeted for local memories rather than for cache memories. Recent work on cache interferences seems to indicate that these phenomena can severely affect blocked algorithms cache performance. Because of cache conflicts, it is not possible to know the precise gain brought by blocking. It is even difficult to determine for which problem sizes blocking is useful. Computing the actual optimal block size is difficult because cache conflicts are highly irregular. In this article, we illustrate the issue of precisely evaluating cross-interferences in blocked loops with blocked matrix-vector multiply. Most significant interference phenomena are captured because unusual parameters such as array base addresses are being considered. The techniques used allow us to compute the precise improvement due to blocking and the threshold value of problem parameters for which the blocked loop should be preferred. It is also possible to derive an expression of the optimal block size as a function of problem parameters. Finally, it is shown that a precise rather than an approximate evaluation of cache conflicts is sometimes necessary to obtain near-optimal performance. Christine Fricker, Olivier Temam, William Jalby |
ACM Trans. Program. Lang. Syst. | 2 |
| 1994 | Using virtual lines to enhance locality exploitationabstractBecause the spatial locality of numerical codes is significant, the potential for performance improvements is important. However, large cache lines cannot be used in current on-chip data caches because of the important pollution they breed. In this paper, we propose a hardware design, called the Virtual Line Scheme, that allows the utilization of large virtual cache lines when fetching data from memory for better exploitation of spatial locality, while the actual physical cache line is smaller than currently found cache lines for better exploitation of temporal locality. Simulations show that a 17% to 64% reduction of the average memory access time can be obtained for a 20-cycle memory latency. It is also shown how simple software informations can be used to significantly decrease memory traffic, a flaw associated with the utilization of large cache lines. Olivier Temam, Yvon Jégou |
International Conference on Supercomputing | 1 |
| 1994 | Cache Interference PhenomenaabstractThe impact of cache interferences on program performance (particularly numerical codes, which heavily use the memory hierarchy) remains unknown. The general knowledge is that cache interferences are highly irregular, in terms of occurrence and intensity. In this paper, the different types of cache interferences that can occur in numerical loop nests are identified. An analytical method is developed for detecting the occurrence of interferences and, more important, for computing the number of cache misses due to interferences. Simulations and experiments on real machines show that the model is generally accurate and that most interference phenomena are captured. Experiments also show that cache interferences can be intense and frequent. Certain parameters such as array base addresses or dimensions can have a strong impact on the occurrence of interferences. Modifying these parameters only can induce global execution time variations of 30% and more. Applications of these modeling techniques are numerous and range from performance evaluation and prediction to enhancement of data locality optimizations techniques. Olivier Temam, Christine Fricker, William Jalby |
SIGMETRICS | 1 |
| 1993 | Fast Enumeration of Solutions for Data Dependence Analysis and Data Locality OptimizationabstractMost of the sophisticated optimization tools dealing with data dependence analysis, parallelization and data locality exploitation cannot provide satisfactory solutions to a number of problems because they are, in general, unable to precisely handle some complex systems of linear equations coming from dependence equations between array subscripts. For such cases, these algorithms either provide rough estimates or resort to unefficient and therefore costly enumeration strategies. In this paper, we present an efficient technique, named Fast Determination, for dealing with the enumeration problem which degrades the behavior of sophisticated algorithms. Incorporating Fast Determination would enhance the performance and accuracy of existing algorithms, and widen their scope of application. Christine Eisenbeis, Olivier Temam, Harry A. G. Wijshoff |
ICPP (3) | 2 |
| 1993 | Evaluating the Impact of Cache Interferences on Numerical CodesabstractIn numerical codes, the regular interleaved accesses that occur within do-loop nests induce cache interference phe nomena that can severely degrade program performance. Cache interferences can significantly increase the volume of memory traffic and the amount of communication in uniprocessors and multiprocessors. In this paper, we iden tify cache interference phenomena, determine their causes and the conditions under which they occur. Based on these results, we derive a methodology for computing an analyt ical expression of cache misses for most classic loop nests, which can be used for precise performance analysis and prediction. We show that cache performance is unstable, because some unexpected parameters such as arrays base address can play a significant role in interference phenom ena. We also show that the impact of cache interferences can be so high, that the benefits of current data local ity optimization techniques can be partially, if not totally, eradicated. Olivier Temam, Christine Fricker, William Jalby |
ICPP (1) | 1 |
| 1993 | Speculative PrefetchingabstractA hardware prefetching mechanism for cache memories named Speculative Prefetching is proposed. This scheme detects regular accesses issued by a load/store instruction and prefetches the corresponding data. The scheme requires no software add-on, and in some cases it is more powerful than software techniques for identifying regular accesses. The tradeoffs related to its hardware implementation are extensively discussed in order to finely tune the mechanism. Experiments show that average memory access time of regular codes is brought within 10% of optimum for processors with usual issue rates, while performance of irregular codes is little reduced though never degraded. The scheme performance is discussed over a wide range of parameters. Keywords: cache, hardware prefetch, numerical codes, memory latency. 1 Introduction The memory latency observed by current processors is high whether they are superpipelined (fast processor clock), have no secondary caches or belong to a multiprocesso... Yvon Jégou, Olivier Temam |
International Conference on Supercomputing | 2 |
| 1993 | To copy or not to copy: a compile-time technique for assessing when data copying should be used to eliminate cache conflictsabstractTo reduce conflict misses, this technique, the data layout in a cache is adjusted by copying array files into temporary arrays that exhibit better cache behavior. This approach incurs a cost proportional to the amount of data being copied. To date, there has been no discussion regarding either this tradeoff or the problem of determining what and when to copy. The authors present a compile-time technique for making this determination and present a selective copying strategy based on this methodology. Preliminary experimental results demonstrate that, because of the sensitivity of cache conflicts to small changes in problem size and base addresses, selective copying can lead to better overall performance than either no copying, complete copying, or copying based on manually applied heuristics. Olivier Temam, Elana D. Granston, William Jalby |
SC | 1 |
| 1992 | Characterizing the Behavior of Sparse Algorithms on CachesabstractA methodology is presented for modeling the irregular references of sparse codes using probabilistic methods. The behavior on cache of one of the most frequent primitives, SpMxV sparse matrix vector multiply, is analyzed. A model of its references is built, and performance bottlenecks of SpMxV are analyzed using the model and simulations. The main parameters are identified and their role is explained and quantified. This analysis is then used to discuss optimizations of SpMxV. A blocking technique which takes into account the specifics of sparse codes is proposed.> Olivier Temam, William Jalby |
SC | 1 |