CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE Concurrency Computat.: Pract. Exper. (2012) Published online in Wiley Online Library (wileyonlinelibrary.com). DOI: 10.1002/cpe.2975 SPECIAL ISSUE PAPER Finding near-perfect parameters for hardware and code optimizations with automatic multi-objective design space explorations Ralf Jahr 1, * ,† , Horia Calborean 2 , Lucian Vintan 2 and Theo Ungerer 1 1 Department of Computer Science, University of Augsburg, 85135 Augsburg, Germany 2 “Lucian Blaga” University of Sibiu, Computer Science & Engineering Department, E. Cioran Str., No. 4, Sibiu - 550025, Romania SUMMARY In the design process of computer systems or processor architectures, typically many different parameters are exposed to configure, tune, and optimize every component of a system. For evaluations and before produc- tion, it is desirable to know the best setting for all parameters. Processing speed is no longer the only objec- tive that needs to be optimized; power consumption, area, and so on have become very important. Thus, the best configurations have to be found in respect to multiple objectives. In this article, we use a multi-objective design space exploration tool called Framework for Automatic Design Space Exploration (FADSE) to auto- matically find near-optimal configurations in the vast design space of a processor architecture together with a tool for code optimizations and hence evaluate both automatically. As example, we use the Grid ALU Pro- cessor (GAP) and its postlink optimizer called GAPtimize, which can apply feedback-directed and platform- specific code optimizations. Our results show that FADSE is able to cope with both design spaces. Less than 25% of the maximal reasonable hardware effort for the scalable elements of the GAP is enough to achieve the processor’s performance maximum. With a performance reduction tolerance of 10%, the necessary hardware complexity can be further reduced by about two-thirds. The found high-quality configurations are analyzed, exhibiting strong relationships between the parameters of the GAP, the distribution of complexity, and the total performance. These performance numbers can be improved by applying code optimizations concur- rently to optimizing the hardware parameters. FADSE can find near-optimal configurations by effectively combining and selecting parameters for hardware and code optimizations in a short time. The maximum observed speedup is 15%. With the use of code optimizations, the maximum possible reduction of the hardware resources, while sustaining the same performance level, is 50%. Copyright © 2012 John Wiley & Sons, Ltd. Received 20 December 2011; Revised 10 October 2012; Accepted 5 November 2012 KEY WORDS: automatic design space exploration; multi-objective optimization; hardware complexity estimation; code optimization 1. INTRODUCTION As in the last decade, the complexity of novel processor architectures is going to increase in the future. This is caused by the steadily growing number of transistors. Although for early processor architectures the available number of transistors was a limiting bound, the architectures proposed more recently have the freedom to use lots of hardware. To cope with the increasing complexity of designs, while preserving effective usage of hardware resources, is one of the challenges to be solved by new approaches. *Correspondence to: Ralf Jahr, Department of Computer Science, University of Augsburg, 85135 Augsburg, Germany. E-mail: jahr@informatik.uni-augsburg.de Copyright © 2012 John Wiley & Sons, Ltd.