【问题标题】:Are there any examples of applying machine learning to improve code performance? [closed]有没有应用机器学习来提高代码性能的例子? [关闭]
【发布时间】:2013-12-03 00:10:59
【问题描述】:

我看到 Facebook 的 Keith Adams 撰写的 talk 比较了机器学习技术与调整代码以提高现实世界中的性能。有没有在实际项目中应用这种自动化技术的例子?我

我知道某些编译器中的配置文件引导优化以及 JIT 编译器用来提高性能的一些技术,但我正在考虑更基本的方法来提高代码性能,这可能需要更改代码本身而不是代码生成。比如:

  1. 在特定网络应用程序中选择最佳缓冲区大小或为特定应用程序选择正确的堆栈大小。
  2. 在多线程应用程序中选择结构布局可提高本地缓存性能,同时减少错误共享。
  3. 为特定算法选择不同的数据结构。

我在 Halide 上阅读了 paper,这是一个使用遗传算法自动调整图像处理管道以提高性能的图像处理框架。像这样的例子或任何研究指针都会很有用。

【问题讨论】:

    标签: performance machine-learning performance-testing


    【解决方案1】:

    看看雷米http://web.mit.edu/remy/ 它采用一种遗传优化方法生成网络拥塞控制算法,显着提高网络性能。一个指定关于正在使用的网络的假设,并且 Remy 生成要在该网络的数据节点上运行的控制算法。结果令人惊叹,Remy 的性能优于迄今为止所有人工开发的优化技术。

    【讨论】:

      【解决方案2】:

      FFTW 是一个广泛使用的软件包,它使用 OCaml 生成优化的 C 代码。本文有更多关于这个过程的细节:http://vuduc.org/pubs/vuduc2000-fftw-dct.pdf

      您也可以研究一下 Acovea,这是一种优化编译器标志的遗传算法:http://stderr.org/doc/acovea/html/index.html

      【讨论】:

        猜你喜欢
        • 2013-07-02
        • 1970-01-01
        • 2010-09-06
        • 1970-01-01
        • 2011-12-07
        • 2011-02-17
        • 2015-10-08
        • 2016-10-25
        • 1970-01-01
        相关资源
        最近更新 更多