Mitigating the Compiler Optimization Phase-Ordering problem using Machine Learning




Optimizing compilers to execute programs are important to design efficient modern compilers. In fact selecting best order of optimization potentially improves running time of dynamically compiled programs. The current state-of-the art approach to find this ordering is Genetic algorithm (GA), which suffer from (i) an expensive search, and (ii) the method-specific difficulty. To mitigate these shortcomes to solve this so-called phase ordering problem (finding best order for optimizations), this paper goes through utilization of an artificial neural network (ANN) to find best order. Indeed, there might be two possible approaches to this problem from an ANN point of view. First, to predict complete sequence of optimizations needed to be applied to the code, and second to find the current best optimization required. This paper adheres to the second approach. A salient feature the paper relies to on is the Markovian assumption for the state of the method bein optimized. This is in contrast to classical fixed tedious approaches considered.









Positive aspects:

1-      The proposed approach only needs one time expesie training, and then can easily be applied withought high overload to find phase orderings

2-      Optimization period for the proposed method is not that high which is in important positive aspect

3-      The method tries to (re)generate features that are important to solve problem, and thus it is a kind of task adaptive approach.

4-      In contrast to most compilers that apply optimizations in a fixed order, this approach is dynamic and the states evolve in a Markovian process fashion.

Short comes:

1-      Why Markovian property is a valid assumption here? This is not well described or tested?

2-      Why the problem fits into the ANN approaches, this problem more seems to need reinforcement learning approaches, since it seems more like a planning or decision making rather than function approximation!

3-      Why just ANNs are considered, the problem might need more power full NN such as RNN, since there is a kind of long and short term dependencies between states and thus LSTMs might be a better option to attack problem.

Comments

  1. I agree that the claims of 'better' w/r to RL are not convincing though it is claimed to relate to the dynamic nature of the NN. I would also highlight the search for a NN as this is something we have not seen in any papers yet. Use of RNN/LSTM could be interesting here.

    ReplyDelete

Post a Comment

Popular posts from this blog

A Machine Learning Approach to Live Migration Modeling

StormDroid: A Streaminglized Machine Learning-Based System for Detecting Android Malware

Coordinated Management of Multiple Interacting Resources in Chip Multiprocessors: A Machine Learning Approach