我看到Facebook的Keith Adams将talk比较机器学习技术与调整代码以提高现实世界中的性能。是否有这种自动化技术应用于实际项目的例子?我
我知道某些编译器中的配置文件引导优化以及JIT编译器用于提高性能的一些技术,但我正在考虑提高代码性能的更基本方法,这些方法可能需要更改代码本身而不是代码生成。比如:
我在Halide上阅读paper,这是一个图像处理框架,它使用遗传算法自动调整图像处理流水线以提高性能。像这样的例子或任何研究指针都是有用的。
答案 0 :(得分:2)
看看雷米http://web.mit.edu/remy/ 它采用一种遗传优化方法生成网络拥塞控制算法,显着提高网络性能。一个指定关于正在使用的网络的假设,并且Remy生成控制算法以在该网络的数据节点上运行。结果令人惊讶,Remy优于所有人类开发的迄今为止的优化技术。
答案 1 :(得分:1)
FFTW是一种广泛使用的软件包,它使用OCaml生成优化的C代码。本文详细介绍了该流程:http://vuduc.org/pubs/vuduc2000-fftw-dct.pdf
您还可以查看Acovea,一种优化编译器标志的遗传算法:http://stderr.org/doc/acovea/html/index.html