系统与设计
的意见

深度学习硬件:FPGA与GPU

而gpu有条件在机器学习中,数据类型的灵活性和功率效率使fpga越来越有吸引力。

受欢迎程度

fpga或gpu,这是个问题。

以来的普及使用机器学习算法从原始数据中提取和处理信息,这是一个种族之间的FPGA和GPU供应商提供HW平台运行计算密集型的机器学习算法快速有效。深入学习带动大多数先进的机器学习的应用程序中,它被认为是主要的比较点。

虽然GPU厂商积极定位他们的硬件作为这个新时代最有效的平台,fpga显示一个伟大的功耗和性能的改善在深层神经网络(款)应用程序中,提供高精度的重要图像分类任务,因此成为广泛采用[1]。有各种权衡考虑,很难回答,“是”或“不。“形成自己的意见,我邀请你去读这个博客,首次涉及使用fpga和GPU的好处和障碍,并考虑执行的研究这个领域的主要参与者;即Xilinx、英特尔、微软和加州大学洛杉矶分校的研究实验室。

款被广泛用作学习模式,因为他们的推理精度。他们可以制定图表类似于一个如图1所示。


图1:深层神经网络结构的概述

在这幅图像中,节点是神经元和边缘是神经元之间的连接。图中,每个神经元和边缘有一个值,和网络有四层(输入、输出和2隐藏层)。网络的计算是通过每一层派生而来。每个神经元的价值计算乘法和积累的所有值的前一层神经元对应的边的权值。这表明计算依赖于乘法和积累操作。预测一个给定的样本,向前穿过层就足够了。训练,预测误差传递回模型来更新网络权值的准确性。款的用户使用不同的数据类型挑战gpu和带回家fpga为机器学习应用程序的好处。这些功能将会更详细地解释。

FPGA与GPU:优点和缺点
总结这些,我提供了四个主要类别:原始计算能力,效率和力量,灵活性和易用性和功能安全。这一节的内容来源于Xilinx发表的研究[2],英特尔[1],微软[3]和加州大学洛杉矶分校[4]。

1。原始的计算能力:Xilinx研究表明,特斯拉P40 (40 INT8 / s) Ultrascale + TM XCVU13P FPGA (38.3 INT8 / s)几乎相同的计算能力。当涉及到芯片上的记忆,这是至关重要的减少延迟在深度学习应用程序中,fpga导致更高的计算机能力。片上缓存内存的高数量减少与外部内存访问相关联的内存瓶颈以及高内存带宽解决方案的能力和成本。此外,fpga的灵活性在支持的各种数据类型,例如,INT8, FTP32,二进制和任何其他自定义数据类型,是一种强有力的理由fpga深层神经网络应用程序。这背后的原因是深度学习应用程序发展的快节奏和用户使用不同的数据类型,比如二进制,三元甚至自定义数据类型。赶上这个需求,GPU供应商必须调整现有架构保持更新。所以,GPU用户必须停止他们的项目,直到新的架构。因此,fpga方便的it,因为用户可以实现任何自定义数据类型的设计。

2。效率和功率:fpga是众所周知的功率效率。一个研究项目由微软在一个图像分类的项目表明,Arria 10 FPGA执行能耗近10倍。在其他的研究中,Xilinx表明Xilinx Virtex Ultrascale +执行几乎四倍比NVidia Tesla V100通用计算效率。gpu权力——饥饿的主要原因是,他们需要额外的复杂性在计算资源促进软件的可编程性。虽然NVidia V100提供了一个类似的效率Xilinx fpga(千兆几乎相同操作每秒每瓦特共和党/ s / W)由于硬化张量核张量操作对于今天的深度学习工作负载,它是不可预测的多久NVidia的张量核保持高效的深度学习应用,为这一领域的快速发展。其他通用的工作负载,即除了深度学习,英伟达V100挑战从性能和效率的角度来看。fpga的it除了软件开发的主要供应商,如Xilinx (SDAccel)和英特尔(FPGA对OpenCL SDK)提供了更高的效率为大量应用程序和工作负载。

3所示。灵活性和易用性:数据流在GPU是由软件定义由GPU的复杂的内存层次结构(如与cpu)。与内存访问和内存相关的延迟和权力冲突迅速增加数据穿过记忆的层次结构。另一个重要的事实是GPU的体系结构,这是单指令多线程(SIMT)。这个特性允许将gpu比cpu功率效率。然而,很明显,在接收大量的GPU线程的情况下,只有部分的工作负载可以有效地映射到并行的体系结构中,如果无法找到足够的并行线程中,这导致了较低的性能效率。fpga可以提供更灵活的架构,这是一个混合的硬件可编程资源,DPS和布拉姆块。用户可以解决所有的需求预期的工作负载由fpga提供的资源。这种灵活性允许用户重新配置datapath公司容易,即使在运行时,使用局部调整。这种独特的it从一定的限制意味着用户是免费的,像SIMT或固定datapath公司,然而大规模并行计算成为可能。fpga的灵活的架构已经显示出巨大的潜力在稀疏的网络,这是一个热门趋势在当前机器学习应用。 Another important feature of FPGAs, and one that makes them even more flexible, is the any-to-any I/O connection. This enables FPGAs to connect to any device, network, or storage devices without the need for a host CPU. Regarding ease-of-use, GPUs are more ‘easy going’ than FPGAs. This is one of the main reasons that GPUs are widely being used these days. CUDA is very easy to use for SW developers, who don’t need an in-depth understanding of the underlying HW. However, to do a machine learning project using FPGAs, the developer should have the knowledge of both FPGAs and machine learning algorithms. This is the main challenge for FPGA vendors; to provide an easy development platform for users. Xilinx has put considerable effort into this by providing tools such asSDSoC,SDAccelVivado HLS。这些工具使得FPGA设计流程的过程更容易SW工程师,他们可以很容易地转换HDL C / c++代码。

4所示。功能安全:gpu图形和高性能计算系统最初设计,安全不是必需的。一些应用程序,比如ADAS,需要功能安全。在这种情况下,gpu应该设计一种满足功能安全的要求。这可能是一个耗时的GPU厂商面临的挑战。另一方面,使用fpga在产业功能安全起着非常重要的作用如自动化、航空和国防。因此,fpga设计方法满足广泛的应用程序包括ADAS的安全要求。在这方面,Xilinx zynq - 7000Ultrascale + TM MPSoC设备被设计成支持ADAS等对安全性要求苛刻的应用程序。

显然,应用程序和项目目标选择合适的HW平台很重要。根据提到的功能,fpga显示更强的潜力gpu的新一代机器学习算法来玩大量款。基于研究提到在这个博客,我想说的主要赢得点fpga在gpu将fpga提供的灵活性玩不同的数据类型,如二进制、三元甚至定制的——以及不规则的并行性的功率效率和适应性稀疏算法款。然而,FPGA供应商所面临的挑战是提供一个易于使用的平台。

构建任何类型的先进的FPGA设计如机器学习需要先进的FPGA设计和验证工具。模拟实际验证方法验证FPGA设计用混合语言HDL SystemC / C / C + testbenches。编译和仿真速度的关键因素——越快你可以做更多的测试场景的模拟在一个给定的时间框架内检查。大部分的时间,你会在验证调试所以你在阿森纳需要先进的调试工具如波形查看器,先进的数据流,状态机覆盖,可视化和断点记忆。

一旦你准备好机器学习推理,一个健壮的和高容量FPGA板组丰富的外设是至关重要的。看看我们FPGA与Virtex Ultrascale XCVU440由5541 k逻辑细胞,2880 k DSP片和64 gb的DDR4,作为PCIe出数创3,千兆以太网,QSFP +, HDMI, 2 x SATA, USB 3.0和4 x FMC连接器。这块板还包括一个Xilinx Zynq XC7Z100可以作为CPU主机模块具有双重ARM cortex - a9。

引用
[1]Nurvitadhi Eriko, et al。”可以fpga击败gpu加速下一代深层神经网络?“学报2017 ACM / SIGDA国际研讨会现场可编程门阵列。ACM, 2017年。
[2]Cathal墨菲和姚明傅,”Xilinx所有可编程设备:一个优越的平台计算密集型系统”。
[3]Ovtcharov Kalin, et al。”加速深卷积神经网络使用专门的硬件。“微软研究院白皮书2.11 (2015)。
[4],杰森,et al。“理解fpga的性能差异和gpu”学报2018 ACM / SIGDA国际研讨会现场可编程门阵列。ACM, 2018年。



留下一个回复


(注意:这个名字会显示公开)

Baidu