Skip to main content
QUICK REVIEW

[论文解读] A model-driven approach for a new generation of adaptive libraries

Marco Cianfriglia, Flavio Vella|arXiv (Cornell University)|Jun 19, 2018
Algorithms and Data Compression参考文献 41被引用 3
一句话总结

本文提出一种基于机器学习的、模型驱动的框架,用于动态选择GPU加速BLAS库的最优算法参数,特别针对矩阵乘法等数据驱动工作负载。通过在合成数据和真实数据集上训练决策树,该方法在NVIDIA Pascal GPU上实现了最高3倍的加速,在ARM Mali GPU上实现了2.5倍的加速,优于传统的硬编码优化方法。

ABSTRACT

Efficient high-performance libraries often expose multiple tunable parameters to provide highly optimized routines. These can range from simple loop unroll factors or vector sizes all the way to algorithmic changes, given that some implementations can be more suitable for certain devices by exploiting hardware characteristics such as local memories and vector units. Traditionally, such parameters and algorithmic choices are tuned and then hard-coded for a specific architecture and for certain characteristics of the inputs. However, emerging applications are often data-driven, thus traditional approaches are not effective across the wide range of inputs and architectures used in practice. In this paper, we present a new adaptive framework for data-driven applications which uses a predictive model to select the optimal algorithmic parameters by training with synthetic and real datasets. We demonstrate the effectiveness of a BLAS library and specifically on its matrix multiplication routine. We present experimental results for two GPU architectures and show significant performance gains of up to 3x (on a high-end NVIDIA Pascal GPU) and 2.5x (on an embedded ARM Mali GPU) when compared to a traditionally optimized library.

研究动机与目标

  • 解决深度学习和图分析等数据驱动高性能计算工作负载中的性能可移植性挑战,这些工作负载的输入数据特征差异显著。
  • 克服传统BLAS库使用固定手调参数或简单启发式方法的局限性,这些方法在不同输入大小和硬件上表现不佳。
  • 基于输入维度和硬件特性,实现实时自适应选择最优GEMM(通用矩阵乘法)配置。
  • 开发一种可推广的、与架构无关的解决方案,避免依赖低层指令集或架构特定的代码生成。
  • 通过从训练数据中学习最优参数选择,而非硬编码,提升异构系统——尤其是GPU——上的性能可移植性。

提出的方法

  • 采用决策树作为白盒、可解释的监督分类器,基于矩阵维度等输入特征预测最佳GEMM实现和调优参数。
  • 使用三种方法生成训练数据集:均匀采样的合成数据、来自应用工作负载的真实世界数据,以及混合采样以覆盖边缘情况。
  • 在多样化输入配置上训练预测模型,以实现实时选择最优内核配置(如块大小、分块策略)以适应特定矩阵形状。
  • 将训练好的模型集成到CLBlast(一个开源的OpenCL BLAS库)中,实现在运行时自适应选择优化内核。
  • 采用跨架构训练以提升模型泛化能力,使在一种GPU上训练的模型可几乎无需重新训练即应用于其他GPU。
  • 通过优化模型推理过程,将运行时开销降至最低,确保预测模型带来的延迟可忽略不计,远小于性能提升。

实验结果

研究问题

  • RQ1基于机器学习的预测模型能否在不同输入大小和GPU架构上有效选择最优GEMM配置?
  • RQ2使用合成数据与真实世界数据训练时,模型准确率与性能提升之间有何相关性?
  • RQ3轻量级、可解释的模型(如决策树)在数据驱动工作负载中,能否显著优于传统的基于启发式的配置选择方法?
  • RQ4训练数据的密度和多样性对模型泛化能力和运行时性能有何影响?
  • RQ5所提出的框架是否能在无需架构特定代码或指令集暴露的情况下,实现显著的性能加速?

主要发现

  • 该模型驱动方法在高端NVIDIA Pascal GPU上实现了最高3倍的加速,在嵌入式ARM Mali GPU上实现了2.5倍的加速,优于传统优化的BLAS库。
  • 即使决策树的准确率中等,性能提升依然显著,因为当训练数据集密集且具有代表性时,误判的影响有限。
  • 仅使用合成数据训练不足以实现最佳性能;结合合成数据与真实世界数据可显著提升模型的鲁棒性和泛化能力。
  • 该框架展现出强大的跨架构性能可移植性,使在一种GPU上训练的模型可几乎无需重新训练即在其他GPU上有效运行。
  • 预测模型的运行时开销可忽略不计,使其可实际集成到CLBlast等生产级库中。
  • 该方法可扩展至其他计算密集型内核及复杂工作负载(如图分析),其中最优数据并行策略难以预先定义。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。