使用 SYCL-DNN 在 OpenCL 设备上加速神经网络
机器学习
2019-04-09 v1 分布式、并行与集群计算
性能
摘要
过去几年中,在若干研究显示神经网络此前被认为极困难的一系列任务上的有效性之后,机器学习迎来了兴趣的重新爆发。神经网络在图像识别与自然语言处理领域的有效性,主要源于企业与研究者可获取的海量数据,以及现代加速器(如 GPU、FPGA 与 ASIC)中可用的巨大算力。开发者可利用 SYCL、OpenCL 与 CUDA 等多种方法来使用 GPGPU 技术,但许多应用需要相同的底层数学例程。致力于加速这些通用例程的库使开发者无需了解硬件底层知识即可轻松充分利用可用硬件,然而此类库常由硬件制造商针对特定硬件提供,如面向 Nvidia 硬件的 cuDNN 或面向 AMD 硬件的 MIOpen。SYCL-DNN 是一个新的开源库,致力于提供与硬件及供应商无关的神经网络操作加速例程。构建于 SYCL 开放标准之上且完全以标准 C++ 编写,SYCL-DNN 使用现代 C++ 接口使用户可轻松为广泛硬件加速神经网络代码。该库在 AMD 的 GPU OpenCL、Intel 的 CPU 与 GPU OpenCL、ARM 的 Mali GPU OpenCL 以及 ComputeAorta 的 R-Car CV 引擎与主机 CPU OpenCL 上进行了测试。本报告中,我们将给出 SYCL-DNN 在该系列硬件上的性能数据,并讨论如何在特征差异如此之大的各类加速器上实现高性能。
引用
@article{arxiv.1904.04174,
title = {Accelerated Neural Networks on OpenCL Devices Using SYCL-DNN},
author = {Rod Burns and John Lawson and Duncan McBain and Daniel Soutar},
journal= {arXiv preprint arXiv:1904.04174},
year = {2019}
}
备注
4 pages, 3 figures. In International Workshop on OpenCL (IWOCL '19), May 13-15, 2019, Boston