当前位置: X-MOL 学术ACM Trans. Archit. Code Optim. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
GEVO
ACM Transactions on Architecture and Code Optimization ( IF 1.6 ) Pub Date : 2020-11-26 , DOI: 10.1145/3418055
Jhe-Yu Liou 1 , Xiaodong Wang 2 , Stephanie Forrest 3 , Carole-Jean Wu 4
Affiliation  

GPUs are a key enabler of the revolution in machine learning and high-performance computing, functioning as de facto co-processors to accelerate large-scale computation. As the programming stack and tool support have matured, GPUs have also become accessible to programmers, who may lack detailed knowledge of the underlying architecture and fail to fully leverage the GPU’s computation power. GEVO (Gpu optimization using EVOlutionary computation) is a tool for automatically discovering optimization opportunities and tuning the performance of GPU kernels in the LLVM representation. GEVO uses population-based search to find edits to GPU code compiled to LLVM-IR and improves performance on desired criteria while retaining required functionality. We demonstrate that GEVO improves the execution time of general-purpose GPU programs and machine learning (ML) models on NVIDIA Tesla P100. For the Rodinia benchmarks, GEVO improves GPU kernel runtime performance by an average of 49.48% and by as much as 412% over the fully compiler-optimized baseline. If kernel output accuracy is relaxed to tolerate up to 1% error, GEVO can find kernel variants that outperform the baseline by an average of 51.08%. For the ML workloads, GEVO achieves kernel performance improvement for SVM on the MNIST handwriting recognition (3.24×) and the a9a income prediction (2.93×) datasets with no loss of model accuracy. GEVO achieves 1.79× kernel performance improvement on image classification using ResNet18/CIFAR-10, with less than 1% model accuracy reduction.

中文翻译:

GEVO

GPU 是机器学习和高性能计算革命的关键推动力,可作为事实上的协处理器来加速大规模计算。随着编程堆栈和工具支持的成熟,GPU 也变得可供程序员使用,他们可能缺乏对底层架构的详细了解,并且无法充分利用 GPU 的计算能力。GEVO(使用 EVOlutionary 计算的 Gpu 优化)是一种用于自动发现优化机会并在 LLVM 表示中调整 GPU 内核性能的工具。GEVO 使用基于群体的搜索来查找编译为 LLVM-IR 的 GPU 代码的编辑,并在保留所需功能的同时提高所需标准的性能。我们展示了 GEVO 改进了通用 GPU 程序和机器学习 (ML) 模型在 NVIDIA Tesla P100 上的执行时间。对于 Rodinia 基准,GEVO 将 GPU 内核运行时性能平均提高了 49.48%,比完全编译器优化的基线提高了 412%。如果内核输出精度放宽以容忍高达 1% 的错误,GEVO 可以找到平均优于基线 51.08% 的内核变体。对于 ML 工作负载,GEVO 在 MNIST 手写识别(3.24 倍)和 a9a 收入预测(2.93 倍)数据集上实现了 SVM 的内核性能提升,而没有损失模型精度。GEVO 使用 ResNet18/CIFAR-10 在图像分类上实现了 1.79 倍的内核性能提升,模型精度降低不到 1%。GEVO 将 GPU 内核运行时性能平均提高了 49.48%,与完全编译器优化的基线相比提高了 412%。如果内核输出精度放宽以容忍高达 1% 的错误,GEVO 可以找到平均优于基线 51.08% 的内核变体。对于 ML 工作负载,GEVO 在 MNIST 手写识别(3.24 倍)和 a9a 收入预测(2.93 倍)数据集上实现了 SVM 的内核性能提升,而没有损失模型精度。GEVO 使用 ResNet18/CIFAR-10 在图像分类上实现了 1.79 倍的内核性能提升,模型精度降低不到 1%。GEVO 将 GPU 内核运行时性能平均提高了 49.48%,与完全编译器优化的基线相比提高了 412%。如果内核输出精度放宽以容忍高达 1% 的错误,GEVO 可以找到平均优于基线 51.08% 的内核变体。对于 ML 工作负载,GEVO 在 MNIST 手写识别(3.24 倍)和 a9a 收入预测(2.93 倍)数据集上实现了 SVM 的内核性能提升,而没有损失模型精度。GEVO 使用 ResNet18/CIFAR-10 在图像分类上实现了 1.79 倍的内核性能提升,模型精度降低不到 1%。GEVO 可以找到平均优于基线 51.08% 的内核变体。对于 ML 工作负载,GEVO 在 MNIST 手写识别(3.24 倍)和 a9a 收入预测(2.93 倍)数据集上实现了 SVM 的内核性能提升,而没有损失模型精度。GEVO 使用 ResNet18/CIFAR-10 在图像分类上实现了 1.79 倍的内核性能提升,模型精度降低不到 1%。GEVO 可以找到平均优于基线 51.08% 的内核变体。对于 ML 工作负载,GEVO 在 MNIST 手写识别(3.24 倍)和 a9a 收入预测(2.93 倍)数据集上实现了 SVM 的内核性能提升,而没有损失模型精度。GEVO 使用 ResNet18/CIFAR-10 在图像分类上实现了 1.79 倍的内核性能提升,模型精度降低不到 1%。
更新日期:2020-11-26
down
wechat
bug