STOKE--一种随机超优化器和程序合成器

2020-05-29 18:39:18

Stoke是x86-64指令集的随机优化器和程序合成器。Stoke使用随机搜索来探索所有可能的程序转换的极高维空间。尽管任何一个随机变换都不太可能产生所需的码序列,但是重复应用数百万次变换足以产生新颖且不明显的码序列。Stoke可以在许多不同的场景中使用,比如针对性能或大小优化代码,从头开始综合实现,或者用浮点计算的精度来换取性能。作为一个超级优化器,Stoke已经被证明优于通用和特定于域的编译器生成的代码,在某些情况下还胜过专家手写代码。

除了搜索程序之外,Stoke还包含验证基础设施来显示x86-64程序之间的等价性。Stoke可以考虑测试用例,执行有界验证,直到显示所有可能输入的等价性的完全形式验证。

Stoke是在GitHub上作为开源开发的,可以从github.com/StanfordPL/stoke下载。存储库包含有关如何安装Stoke及其依赖项的说明。