|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Machine Learning in Optimization ?
Hi,
I've read the paper "Using Machine Learning to Focus Iterative " where the authors use machine learning to learn "good" sequences of compiler transformations for particular classes of programs. They then use the learned data as start sequences for new programs to run an focused iterative compiler optimization based on a genetic algorithm. That way they don't waste time with "worse" sequences. Just out of curiosity I was wondering how the machine learning system is integrated into a compiler. Is this done by having a data base which is extended during learning or are the results stored in a file? And what free tools are there which can be integrated in a C++ project? Any powerful C++ libraries? I'd be grateful to hear your experiences. Thank you. Best regards, Stephan |
|
#2
|
|||
|
|||
|
Machine Learning in Optimization ?
Hi Bjorn,
thank you for your answer. You may want to look at GCC ICI [1] (= Interactive Compilation Interface). Basically, GCC ICI is an initiative to open up the internal heuristics of GCC and allow an external tool to make the decisions for GCC whenever it has to decide on whether or not to apply a transformation or to choose a transformation parameter. So, GCC ICI is a GCC framework with handles to an external decision making tool which may or may not be based on machine learning. I will have a look at the software. In terms of machine learning packages WEKA [2] may be useful to you. As WEKA is written in Java you may need to develop your own C++ wrappers, though. Some information on bridging WEKA and .NET can be found in [3]. I'm still interested in 2 other issue: 1) how many lines of code (or benchmarks) were required in your paper to achieve good results for machine learning, i.e. how much code had to be passed in the training phase before the learned data base provided reliable results for the classification of new benchmarks? 2) The selection of static features that describe a particular C construct (as is used in your paper to learn "good" optimizations for different classes of programs) seems to be a crucial part. Can you give me some advices how such "good" features for learning can be found? Is it promising to specify as many static features of the C programs in the training phase as possible (intuitively more features should allow one to describe a program more precisely) or might a too large set of features have a negative impact of machine learning aiming at pattern recognition? Best regards, Stephan |
![]() |
| Viewing: Web Development Archives > FAQs > Compilers > Machine Learning in Optimization ? |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|