GEVO:基于进化计算的GPU代码优化
神经与进化计算
2020-04-29 v2
摘要
GPU是机器学习与高性能计算革命的关键推动者,作为事实上的协处理器加速大规模计算。随着编程栈与工具支持的成熟,GPU也已为程序员所用,但他们可能缺乏底层架构的详细知识,未能充分利用GPU的计算能力。GEVO(使用进化计算进行GPU优化,Gpu optimization using EVOlutionary computation)是一个用于自动发现优化机会并调优LLVM表示中GPU内核性能的工具。GEVO使用基于种群的搜索来寻找对编译为LLVM-IR的GPU代码的修改,并在保持所需功能的同时按期望准则提升性能。我们展示了GEVO在NVIDIA Tesla P100上改进了Rodinia基准测试套件以及机器学习模型SVM和ResNet18的GPU程序执行时间。对于Rodinia基准,GEVO相较完全编译器优化的基线将GPU内核运行性能平均提升49.48%,最高达412%。若放宽内核输出精度以容忍至多1%误差,GEVO可找到比基线版本平均快51.08%的内核变体。对于机器学习负载,GEVO在MNIST手写识别(3.24倍)与a9a收入预测(2.93倍)数据集上于SVM取得内核性能提升且无模型精度损失。GEVO在使用ResNet18/CIFAR-10的图像分类上取得1.79倍内核性能提升,模型精度下降小于1%。
引用
@article{arxiv.2004.08140,
title = {GEVO: GPU Code Optimization using Evolutionary Computation},
author = {Jhe-Yu Liou and Xiaodong Wang and Stephanie Forrest and Carole-Jean Wu},
journal= {arXiv preprint arXiv:2004.08140},
year = {2020}
}