论文标题
卧推:一个深活动的基准生成器
BenchPress: A Deep Active Benchmark Generator
论文作者
论文摘要
我们开发了BenchPress,这是第一个用于编译器的ML基准生成器,它是在源代码的功能空间表示中可检测的。 Benchpress通过在空序列或现有序列的任何部分中添加新代码,通过共同观察其左和右下文,从而综合了编译功能,从而达到了出色的编译率。卧推方向基准产生了所需的目标特征,这对于最先进的合成器(或实际上人类)无法达到。与(a)CLGEN-最先进的ML合成器,(b)Clsmith Fuzzer,(c)Srciror Mutator或GitHub的(d)人工写入的代码相比,它在针对3个不同特征空间的Rodinia基准的特征方面表现更好。 Benchpress是第一个通过主动学习搜索功能空间的生成器,以生成可以改善下游任务的基准。我们展示了Grewe's等人如何使用台式。与其他技术相比,在台式基准测试中接受训练时,CPU与GPU启发式模型可以获得更高的加速。卧推是一个强大的代码生成器:其生成的样品以86%的速度编译,而Clgen的2.33%则以86%的速度编译。从一个空的固定输入开始,台式比Clgen产生的10倍,可汇编的OpenCL基准测试,这些基准比Clgen更大,并且功能更多样化。
We develop BenchPress, the first ML benchmark generator for compilers that is steerable within feature space representations of source code. BenchPress synthesizes compiling functions by adding new code in any part of an empty or existing sequence by jointly observing its left and right context, achieving excellent compilation rate. BenchPress steers benchmark generation towards desired target features that has been impossible for state of the art synthesizers (or indeed humans) to reach. It performs better in targeting the features of Rodinia benchmarks in 3 different feature spaces compared with (a) CLgen - a state of the art ML synthesizer, (b) CLSmith fuzzer, (c) SRCIROR mutator or even (d) human-written code from GitHub. BenchPress is the first generator to search the feature space with active learning in order to generate benchmarks that will improve a downstream task. We show how using BenchPress, Grewe's et al. CPU vs GPU heuristic model can obtain a higher speedup when trained on BenchPress's benchmarks compared to other techniques. BenchPress is a powerful code generator: Its generated samples compile at a rate of 86%, compared to CLgen's 2.33%. Starting from an empty fixed input, BenchPress produces 10x more unique, compiling OpenCL benchmarks than CLgen, which are significantly larger and more feature diverse.