Comparing DSP Software Performance Prediction Models at Source Code Level — From Analytical to Statistical Erh-Wen Hu 1 , Weihua Liu 1 , Bogong Su 1* , Jian Wang 2 1 Dept. of Computer Science, William Paterson University, Wayne, NJ, USA 2 Mobile Broadband Software Design, Ericsson, Ottawa, ON, Canada *Corresponding author: Tel: 1 973 720 2979; email: sub@wpunj.edu Manuscript submitted September 25, 2018; accepted January 23, 2019. doi: 10.17706/jsw.14.6. 247-256 Abstract: Efficient performance prediction at source code level is essential in reducing the turnaround time of software development, particularly when the source code is subject to changes due to modification of problem specification. In this paper, we investigate and compare five performance prediction models from practical standpoint to determine the usefulness of these models. To verify the effectiveness of these models, we select a set of functions from PHY DSP Benchmark and TIC64 DSP processor for experiment. Comparing the predicted performance to the actual measured execution time, we observed that the relative prediction error generated from two of the five models are low and can thus be used for practical purposes. Key words: Performance prediction, source code level, analytical model, statistic model. 1. Introduction Performance prediction is an essential phase of DSP software development. It can be carried out at either the source code or lower level. Prediction at source level is much faster because it does not require the code to be compiled and executed. Thus, performance prediction at source code level helps reduce the turnaround time of software development especially when the source code must be modified due to changes in problem specification [1]-[20]. Over the past few years, we have separately investigated and developed five different models to estimate the execution time of DSP software at source code level. The formulations of these models are presented in section 2. To determine the effectiveness of these models in practice, we need to compute the predicted execution time of practical DSP application software and compare the computed result with experimentally measured data. To this end, we have chosen eight most frequently used functions from the Long Term Evolution or LTE Uplink Receiver, a major part of the PHY benchmark [10] as the testing set of samples. PHY is an open-source benchmark developed by Chalmers University of Technology of Sweden and Ericson. It provides a realistic implementation of the baseband processing for an LTE mobile base station. Its source code is written in C and can be freely downloaded from [19]. In choosing the set of samples for the testing set, we used gprof, a popular profiling tool in UNIX, to make sure that the selected set is indeed the most frequently executed kernel functions in the PHY benchmark. In Section 2 below, we provide a summary description of our five prediction models. Section 3 discusses the experimental procedures including how experimental results are gathered and organized. Section 4 Journal of Software 247 Volume 14, Number 6, June 2019