用于部署深度学习应用的元编程与自动调优框架
神经与进化计算
2016-11-22 v1 分布式、并行与集群计算
数学软件
摘要
近年来,深度神经网络在广泛的应用中取得了优异的结果。图形处理器是导致 DNN 当前普及的关键促成因素之一。然而,尽管硬件灵活性不断增强且软件编程工具链日益成熟,高效率的 GPU 编程仍然困难:其复杂性高、生产力低且可移植性差。诸如 NVIDIA 等 GPU 厂商投入了大量精力编写专用 DNN 库。然而,在其他硬件目标上,尤其是移动 GPU 上,通常无法获得此类厂商库。因此,为 DNN 操作开发可移植、开放、高性能且能效高的 GPU 代码将使基于 DNN 的算法得到更广泛的部署。为此,本工作提出了一个框架,以跨硬件平台和编程模型实现用于 DNN 计算的高生产力、高效率 GPU 编程。具体而言,该框架为元编程、自动调优和 DNN 量身定制的数据类型提供了特定支持。利用我们的框架,我们探索了在三个不同硬件目标上实现 DNN 操作:NVIDIA、AMD 和 Qualcomm GPU。在 NVIDIA GPU 上,我们展示了 OpenCL 与 CUDA 之间的可移植性以及与厂商库相比具有竞争力的性能。在 Qualcomm GPU 上,我们展示了我们的框架能够高效开发目标特定的优化,并实现了合理的绝对性能。最后,在 AMD GPU 上,我们展示了初步结果,表明我们的框架能够以极少的精力在新平台上产生合理的性能。
引用
@article{arxiv.1611.06945,
title = {A Metaprogramming and Autotuning Framework for Deploying Deep Learning Applications},
author = {Matthew W. Moskewicz and Ali Jannesari and Kurt Keutzer},
journal= {arXiv preprint arXiv:1611.06945},
year = {2016}
}