对于深度学习来说,目前硬件加速主要靠使用图形处理单元(GPU)集群作为通用计算图形处理单元(GPGPU)。相比传统的通用处理器(GPP),GPU的核心计算能力要多出几个数量级,也更容易进行并行计算。尤其是NVIDIA CUDA,作为最主流的GPGPU编写平台,各个主要的深度学习工具均用其来进行GPU加速。最近,开放型并行程序设计标准OpenCL作为异构硬件编程的替代性工具备受关注,而对这些工具的热情也在高涨。虽然在深度学习领域内,OpenCL获得的支持相较CUDA还略逊一筹,但OpenCL有两项独特的性能。首先,OpenCL对开发者开源、免费,不同于CUDA单一供应商的做法。其次,OpenCL支持一系列硬件,包括GPU、GPP、现场可编程门阵列(FPGA)和数字信号处理器(DSP)。
1.1. FPGA