硬件加速背景以及卷积神经网络优化
大数据时代的到来,数据呈爆发式增长的态势,深度学习技术不断发展,比如图像识别、语音识别和自然语言处理等。但是这些深度学习技术都有着极为庞大的计算量,对芯片的性能功耗要求很高,现今,比较热门的比如神经网络被广泛应用于人工智能应用之中,而传统的通用芯片再处理复杂神经网络的时候收到了带宽和能耗的限制,因此就推动了人们对深度学习硬件加速器的研究,目前主流的硬件加速器有三类:GPU、ASIC和FPGA。
GPU:与传统CPU不同,GPU的内部拥有大量的逻辑计算单元,远超其中的控制单元和寄存器的规模;GPU拥有一些存储单元可以使得GPU线程之间可以共享这些内存而不依赖于全局内存;GPU拥有相对高速且内存带宽相对较大的全局内存。
ASIC:针对某一个或者某一类算法进行硬件定制,通常来说,相对于其他硬件加速器,ASIC加速深度学习算法能取得较高的性能和功耗,但是其开发周期长,成本高,缺乏灵活性。
FPGA:与其他硬件加速其不同的是FPGA具有可编程性,也就是FPGA内部的逻辑块是可以通过编程进行调整的,因此灵活性较高,并且也拥有不错的性能和较低的功耗。现阶段,GPU更适合深度学习算法的训练阶段,FPGA更适合深度学习算法的推理阶段。