未来的高性能FPGA是否会优于GPU?

英特尔加速器架构实验室的eriko nurvitadhi 博士以最新的 gpu 为参照,对两代 intel fpga 上新兴的dnn算法进行了评估,认为新兴的低精度和稀疏dnn算法效率较之传统的密集fp32 dnn有巨大改进,但是它们引入了gpu难以处理的不规则并行度和定制数据类型。相比之下,fpga正是设计用于在运行不规则并行度和自定义数据类型时实现极端的可定制性的。这样的趋势使未来fpga成为运行dnn、ai和ml应用的可行平台。
来自社交媒体和互联网的图像、视频和语音数字数据的持续指数增长推动了分析的需要,以使得数据可以理解和处理。
数据分析通常依赖于机器学习(ml)算法。在ml算法中,深度卷积神经网络(dnn)为重要的图像分类任务提供了最先进的精度,并被广泛采用。
在最近的 international symposium onfield programmable gate arrays (isfpga) 上,intel accelerator architecture lab (aal) 的 eriko nurvitadhi 博士提出了一篇名为 can fpgas beat gpus in acceleratingnext-generation deep neural networks 的论文。他们的研究以最新的高性能的 nvidia titan x pascal * graphics processing unit (gpu) 为参照,对两代 intel fpga(intel arria10 和intel stratix 10)的新兴dnn算法进行了评估。
intel programmable solutionsgroup 的 fpga 架构师 randy huang 博士,论文的合著者之一,说:“深度学习是ai中最令人兴奋的领域,因为我们已经看到了深入学习带来的巨大进步和大量应用。虽然ai 和dnn 研究倾向于使用 gpu,但我们发现应用领域和英特尔下一代fpga 架构之间是完美契合的。我们考察了接下来fpga 的技术进展,以及dnn 创新算法的快速增长,并思考了对于下一代 dnn 来说,未来的高性能 fpga 是否会优于gpu。我们的研究发现,fpga 在dnn 研究中表现非常出色,可用于需要分析大量数据的ai、大数据或机器学习等研究领域。使用经修剪或压缩的数据(相对于全32位浮点数据(fp32)),被测试的 intel stratix10 fpga 的性能优于gpu。除了性能外,fpga 的强大还源于它们具有适应性,通过重用现有的芯片可以轻松实现更改,从而让团队在六个月内从想法进展到原型(和用18个月构建一个 asic 相比)。”
测试中使用的神经网络机器学习
神经网络可以被表现为通过加权边互连的神经元的图形。每个神经元和边分别与激活值和权重相关联。该图形被构造为神经元层。如图1所示。
图1 深度神经网络概述
神经网络计算会通过网络中的每个层。对于给定层,每个神经元的值通过相乘和累加上一层的神经元值和边权重来计算。计算非常依赖于多重累积运算。dnn计算包括正向和反向传递。正向传递在输入层采样,遍历所有隐藏层,并在输出层产生预测。对于推理,只需要正向传递以获得给定样本的预测。对于训练,来自正向传递的预测错误在反向传递中被反馈以更新网络权重。这被称为反向传播算法。训练迭代地进行向前和向后传递以调整网络权重,直到达到期望的精度。
fpga成为可行的替代方案
硬件:与高端gpu 相比,fpga 具有卓越的能效(性能/瓦特),但它们不具有高峰值浮点性能。fpga技术正在迅速发展,即将推出的intel stratix10 fpga提供超过5,000个硬件浮点单元(dsp),超过28mb的芯片上ram(m20ks),与高带宽内存(up to 4x250gb/s/stack or 1tb/s)的集成,并来自新hyperflex技术的改进频率。英特尔fpga 提供了一个全面的软件生态系统,从低级hardwaredescription 语言到具有opencl、c和c ++的更高级别的软件开发环境。英特尔将进一步利用mkl-dnn库,针对intel的机器学习生态系统和传统框架(如今天提供的caffe)以及其他不久后会出现的框架对 fpga进行调整。基于14nm工艺的英特尔stratix 10在fp32吞吐量方面达到峰值9.2tflop/s。相比之下,最新的titan x pascal gpu的fp32吞吐量为11tflop/s。
新兴的dnn算法:更深入的网络提高了精度,但是大大增加了参数和模型大小。这增加了对计算、带宽和存储的要求。因此,使用更为有效的dnn已成趋势。新兴趋势是采用远低于32位的紧凑型低精度数据类型, 16位和8位数据类型正在成为新的标准,因为它们得到了dnn软件框架(例如tensorflow )支持。此外,研究人员已经对极低精度的2位三进制和1位二进制 dnn 进行了持续的精度改进,其中值分别约束为(0,+ 1,-1)或(+ 1,-1)。nurvitadhi 博士最近合著的另一篇论文首次证明了,ternary dnn可以在最著名的imagenet数据集上实现目前最高的准确性。另一个新兴趋势是通过诸如修剪、relu 和ternarization 等技术在dnn神经元和权重中引入稀疏性(零存在),这可以导致dnn带有〜50%至〜90%的零存在。由于不需要在这样的零值上进行计算,因此如果执行这种稀疏dnn 的硬件可以有效地跳过零计算,性能提升就可以实现。新兴的低精度和稀疏dnn算法效率较之传统的密集fp32 dnn有巨大改进,但是它们引入了gpu难以处理的不规则并行度和定制数据类型。相比之下,fpga正是设计用于在运行不规则并行度和自定义数据类型时实现极端的可定制性的。这样的趋势使未来fpga成为运行dnn、ai和ml应用的可行平台。黄先生说:“fpga专用机器学习算法有更多的余量。图2说明了fpga的极端可定制性(2a),可以有效实施新兴的dnn(2b)。
图2
研究所用的硬件和方法
gpu:使用已知的库(cublas)或框架(torch with cudnn)fpga:使用quartus early beta版本和powerplay
图3 gemm测试结果、gemm是dnn中的关键操作
在低精度和稀疏dnn中,stratix 10 fpga 比 titan x gpu的性能更好,甚至性能功耗比要更好。未来这类dnn可能会成为趋势。
研究1:gemm测试
dnn 严重依赖gemm。常规dnn依靠fp32密集gemm。然而,较低的精度和稀疏的新兴dnn 依赖于低精度和/或稀疏的gemm 。intel 团队对这些gemm进行了评估。
fp32 密集gemm:由于fp32密集gemm得到了很好的研究,该团队比较了fpga和gpu数据表上的峰值。titan x pascal 的最高理论性能是stratix 10 的11 tflop和9.2 tflop。图3a显示,带有多得多的dsp 数量的intle stratix 10 将提供比intel arria 10 更强大的fp32性能,和titan x 的性能表现接近。
低精度int6 gemm:为了显示fpga的可定制性优势,该团队通过将四个int6打包到一个dsp模块中,研究了fpga的int6 gemm。对于本来不支持int6 的gpu,他们使用了int8 gpu 的峰值性能进行了比较。图3b显示,intel stratix 10 的性能优于gpu。fpga比gpu提供了更引人注目的性能/功耗比。
非常低精度的1位二进制gemm :最近的二进制dnn 提出了非常紧凑的1bit数据类型,允许用xnor 和位计数操作替换乘法,非常适合fpga。图3c显示了团队的二进制gemm 测试结果,其中fpga 基本上执行得比gpu 好(即,根据频率目标的不同,为~2x 到 ~10x)。
稀疏gemm:新出现的稀疏dnn包含许多零值。该团队在带有85%零值的矩阵上测试了一个稀疏的gemm(基于已修剪的alexnet)。该团队测试了使用fpga的灵活性以细粒度的方式来跳过零计算的 gemm 设计。该团队还在 gpu 上测试了稀疏的 gemm,但发现性能比在gpu 上执行密集的 gemm 更差(相同的矩阵大小)。该团队的稀疏 gemm 测试(图3d)显示,fpga 可以比 gpu 表现更好,具体取决于目标 fpga 的频率。
图4 dnn精度的趋势,以及fpga和gpu在ternary resnet dnn上的测试结果
研究2:使用三进制 resnet dnn 测试
三进制dnn最近提出神经网络权重约束值为+1,0或-1。这允许稀疏的2位权重,并用符号位操作代替乘法。在本次测试中,该团队使用了为零跳跃、2位权重定制的fpga设计,同时没有乘法器来优化运行ternary-resnet dnn 。
与许多其他低精度和稀疏的dnn 不同,三进制dnn可以为最先进的dnn(即resnet)提供可供比较的精度,如图4a所示。“许多现有的gpu和fpga研究仅针对基于alexnet(2012年提出)的imagenet的”足够好“的准确性。最先进的resnet(在2015年提出)提供比alexnet高出10%以上的准确性。在2016年底,在另一篇论文中,我们首先指出,resnet上的低精度和稀疏三进制dnn 算法可以在全精度resnet 的±1%的精度范围内实现。这个三进制resnet 是我们在fpga研究中的目标。因此,我们首先论证,fpga可以提供一流的(resnet)imagenet精度,并且可以比gpu更好地实现。““nurvitadhi说。
图4b显示了 intel stratix 10 fpga 和 titan x gpu 在 resnet-50上的性能和性能/功耗比。即使保守估计,intel stratix 10 fpga 也比 titan x gpu 性能提高了约60%。中度和激进的估计会更好(2.1x和3.5x的加速)。有趣的是,intel stratix 10 750mhz的激进预估可以比 titan x 的理论峰值性能还高35%。在性能/功耗比方面,从保守估计到激进估计,intel stratix 10 比 titan x 要好2.3倍到4.3倍, fpga如何在研究测试中堆叠
结果表明,intel stratix 10 fpga的性能(top /秒)比稀疏的、int6 和二进制dnn的gemm上的 titan x pascal gpu分别提高了10%、50%和5.4倍。在三进制 resnet 上,stratix 10 fpga 的性能比titan x pascal gpu 提高了60%,而性能/功耗比好2.3倍。结果表明,fpga 可能成为下一代dnn 加速的首选平台。深层神经网络中fpga的未来
fpga 能否在下一代 dnn 的性能上击败 gpu ?intel 对两代 fpga(intel arria 10和 intel stratix 10)以及最新的 titan x gpu 的各种新兴dnn的评估显示,目前dnn算法的趋势可能有利于fpga,而且fpga甚至可以提供卓越的性能。虽然这些结论源于2016年完成的工作,intel 团队在继续测试 intel fpga 的现代 dnn 算法和优化(例如,fft / winograd 数学变换,量化,压缩)。
该团队还指出,除了dnn之外,fpga在其他不规则应用以及延迟敏感(如adas和工业用途)等领域也有机会。
“目前使用32位密集矩阵乘法的机器学习是gpu体现优势的领域”,黄表示:“我们鼓励其他开发人员和研究人员与我们一起重新表述机器学习问题,以充分发挥 fpga 更小位数处理能力的优势,因为 fpga 可以很好地适应向低精度的转变。”
精彩推荐至芯科技12年不忘初心、再度起航3月6日西安中心fpga工程师就业班开课、线上线下多维教学、欢迎咨询!fpga学习-sdram
fpga芯片的供电系统
扫码加微信邀请您加入fpga学习交流群
欢迎加入至芯科技fpga微信学习交流群,这里有一群优秀的fpga工程师、学生、老师、这里fpga技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!
点个在看你最好看
原文标题:未来的高性能fpga是否会优于gpu?
文章出处:【微信公众号:fpga设计论坛】欢迎添加关注!文章转载请注明出处。

微小力量测试仪的基本原理和应用领域
土壤重金属快速测定仪主要特征以及特点
红外对射控制器诚征代理
伺服驱动器故障代码_伺服驱动器参数详解
时尚电商中的RFID物流仓储革新
未来的高性能FPGA是否会优于GPU?
OPPO计划在印度建厂 投资数额达22亿
关于剩余电流继电器在智能建筑中的应用分析
4D成像雷达将成为未来自动驾驶的核心部件
物流仓储系统企业在动力市场呈现“两大一新贵”
深度学习:搜索和推荐中的深度匹配问题
长输管道能耗分析系统方案
物联网时代的十大定律解读
未来可能走到哪都能碰到机器人
电化学传感器详细介绍
高芯科技红外芯片在智能驾驶领域的创新
了解基准电压源:并联还是串联拓扑
华为FreeBuds 3评测 骨声纹识别功能终登场!
算力需求呈“爆炸式”递增 摩尔定律失效
打破常规!索尼OLED电视A1为何如此大受欢迎?