微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 看FPGA如何击败GPU和GPP

看FPGA如何击败GPU和GPP

时间:02-24 来源:edn 点击:

革,未来也可能很快看到FPGA与个人应用和数据中心应用的整合。另外,算法设计工具可能朝着进一步抽象化和体验软件化的方向发展,从而吸引更广技术范围的用户。

  常用深度学习软件工具

  在深度学习最常用的软件工具中,有些工具已经在支持CUDA的同时,认识到支持OpenCL的必要性。这将使得FPGA更容易实现深度学习的目的。虽然据我们所知,目前没有任何深度学习工具明确表示支持FPGA,不过下面的表格列出了哪些工具正朝支持OpenCL方向发展:

  Caffe,由伯克利视觉与学习中心开发,其GreenTea项目对OpenCL提供非正式支持。Caffe另有支持OpenCL的AMD版本。

  Torch,基于Lua语言的科学计算框架,使用范围广,其项目CLTorch对OpenCL提供非正式支持。

  Theano,由蒙特利尔大学开发,其正在研发的gpuarray后端对OpenCL提供非正式支持。

  DeepCL,由Hugh Perkins开发的OpenCL库,用于训练卷积神经网络。

  对于刚进入此领域、希望选择工具的人来说,我们的建议是从Caffe开始,因为它十分常用,支持性好,用户界面简单。利用Caffe的model zoo库,也很容易用预先训练好的模型进行试验。

  增加训练自由度

  有人或许以为训练机器学习算法的过程是完全自动的,实际上有一些超参数需要调整。对于深度学习尤为如此,模型在参数量上的复杂程度经常伴随着大量可能的超参数组合。可以调整的超参数包括训练迭代次数、学习速率、批梯度尺寸、隐藏单元数和层数等等。调整这些参数,等于在所有可能的模型中,挑选最适用于某个问题的模型。传统做法中,超参数的设置要么依照经验,要么根据系统网格搜索或更有效的随机搜索来进行。最近研究者转向了适应性的方法,用超参数调整的尝试结果为配置依据。其中,贝叶斯优化是最常用的方法。

  不管用何种方法调整超参数,目前利用固定架构的训练流程在某种程度上局限了模型的可能性,也就是说,我们或许只在所有的解决方案中管窥了一部分。固定架构让模型内的超参数设置探究变得很容易(比如,隐藏单元数、层数等),但去探索不同模型间的参数设置变得很难(比如,模型类别的不同),因为如果要就一个并不简单符合某个固定架构的模型来进行训练,就可能要花很长时间。相反,FPGA灵活的架构,可能更适合上述优化类型,因为用FPGA能编写一个完全不同的硬件架构并在运行时加速。

  低耗能计算节点集群

  深度学习模型最让人着迷的就是其拓展能力。不管是为了从数据中发现复杂的高层特征,还是为数据中心应用提升性能,深度学习技术经常在多节点计算基础架构间进行拓展。目前的解决方案使用具备Infiniband互连技术的GPU集群和MPI,从而实现上层的并行计算能力和节点间数据的快速传输。然而,当大规模应用的负载越来越各不相同,使用FPGA可能会是更优的方法。FPGA的可编程行允许系统根据应用和负载进行重新配置,同时FPGA的能耗比高,有助于下一代数据中心降低成本。

  结语

  相比GPU和GPP,FPGA在满足深度学习的硬件需求上提供了具有吸引力的替代方案。凭借流水线并行计算的能力和高效的能耗,FPGA将在一般的深度学习应用中展现GPU和GPP所没有的独特优势。同时,算法设计工具日渐成熟,如今将FPGA集成到常用的深度学习框架已成为可能。未来,FPGA将有效地适应深度学习的发展趋势,从架构上确保相关应用和研究能够自由实现。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top