On 06/03/17 16:06, Alexander Monakov wrote:
On Mon, 6 Mar 2017, ltp0709@xxxxxxxx wrote:
Is there any replacement tool of ACOVEA ? Can anyone give some suggestions?
I’ll appreciate that :-).
There's a tool called TACT developed by my colleagues at ISPRAS, but as far as
I'm aware it didn't get a lot of use outside of our institute. You can see a
presentation outlining design goals and some results linked from GNU Cauldron
2013 page at https://gcc.gnu.org/wiki/cauldron2013 (search for "TACT"), and the
tool itself is available at https://github.com/ispras/tact .
There's also a paper with more exposition:
http://www.sciencedirect.com/science/article/pii/S1877050913004419 .
Since it is rare that I can combine my research with my interest in GCC, please
excuse me if I also advertise our own tool:
http://iridia.ulb.ac.be/irace
It is a general-purpose tool for black-box optimization in noisy problems with
some block structure. It supports numerical and categorical parameters,
forbidden parameter combinations, parameters that are conditional to other
parameters, etc. Someone would need to add the glue to connect it to GCC.
I would not recommend it over TACT if you just want something that works
out-of-the-box. But if you have some time to experiment, it can provide you a
baseline for comparison with TACT. (TACT also has other nice GCC-specific
features that irace does not have, such as filtering and parameter importance.
And it supports multi-objective tuning, whereas irace does not, yet.)
The main advantage of irace over ACOVEA (I didn't understand completely how
TACT aggregates and compares results over independent GCC executions, so
perhaps they do something beyond computing the mean/median) is that it uses a
smarter evaluation method to aggregate and compare over multiple testcases that
tries hard to be efficient but also not be misled by outliers, thus it is ideal
if you have a bunch of testcases (different codes to compile or different
inputs for your code) that should be similar to, but not necessarily identical
to, the ones you actually care about.
irace has been used for tuning parameters of optimization software, such as
CPLEX, and machine learning software.
Cheers,
Manuel.