使用Logistic回归模型自动选择gcc编译器优化

时间:2012-02-12 20:22:17

标签: optimization gcc compiler-construction automation machine-learning

基于本文,我使用基于LRM(Logistic回归模型)的算法为gcc编译器选择优化选项做了一个项目...... http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5066672

在该算法中,第一步是通过为每个组合编译和执行程序,从所有可用优化选项组合(现在大约65个)中创建训练数据。然后使用此数据更快地找到其他代码的最佳优化选项集。

有人可以帮我理解我应该如何存储所有这些数据。我打算创建一个2D数组,然后将数组存储在二进制文件中。有一个更好的方法吗? Plz的帮助。如何继续使用LRM从训练数据中找到最佳集合。任何建议也欢迎。

三江源。

1 个答案:

答案 0 :(得分:1)

这是一个2D数组,每个选项有一列,结果有一列(标准测试用例的运行时间)。由于有65列,选项打开或关闭,有2 ^ 65种可能的组合,等于36893488147419103232。按结果列排序,这是最佳的选项集!

我想我会使用CSV文件....

可能的组合数量是不切实际的。测试以确定是否有任何单个标志使您的程序更快或更慢,然后如果任何两个标志组合比其各自改进的总和(协同效应)更好,那么对三个标志执行相同操作,依此类推。然后可以在这些协同组中使用这些选项以减少可能的组合数量。

但这是一个可笑的大量选项组合!