FPGA与Deep Learning

来源:互联网 发布:java库存盘点系统源码 编辑:程序博客网 时间:2024/06/15 17:51

你还没听过FPGA?那你一定是好久没有更新自己在IT领域的知识了。

FPGA全称现场可编程门阵列(Field-Programmable Gate Array),最初作为专用集成电路领域中的一种半定制电路而出现的,具有一定的可编程性,可同时进行数据并行和任务并行计算,在处理特定应用时有更加明显的效率。

实际上,英特尔、紫光、浪潮等企业均已开始布局FPGA。早在SC2015大会上,浪潮就联合Altera,以及中国最大的智能语音技术提供商科大讯飞,共同发布了一套面向深度学习、基于Altera Arria 10 FPGA平台。

最著名的应该就属英特尔豪掷167亿美元,收购Altera,这也是英特尔公司历史上最大规模的一笔收购。而英特尔收购Altera主要为的就是FPGA。而根据后来英特尔在IDF展会中展出的集成了FPGA芯片的至强E5 2600 v4处理器来看,167亿美元收购可谓物有所值:至强处理器在FPGA芯片的帮助下每瓦性能提升了70%。

紫光是另一家希望通过收购手段直接接触FPGA最新科技的公司,继寻求并购美光失利、收购硬盘大厂威腾(WD)破局后,紫光或将收购美国莱迪思半导体(Lattice Semiconductor)股份,为抢进FPGA市场做布局[1]

那么,FPGA吸引如此多厂商为之疯狂的原因究竟是什么?

从应用场景角度分析,我们可以看到随着谷歌的阿尔法狗打败了人类围棋冠军后,深度学习已经从神坛走下来,越来越多的人开始认识到深度学习可能会改变未来的生活,成为未来科技发展的方向;而FPGA设计工具使其对深度学习领域经常使用的上层软件兼容性更强,FPGA正是助力深度学习的一大技术。

何为深度学习?Deep Learning

深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。

主要应用:

  • 计算机视觉

  • 语音识别

  • 自然语言处理等其他领域


部分主要技术:
    • 卷积神经网络
    • 循环神经网络
    • 递归神经网络
    • 深度神经网络和深度堆叠网络
        如果说FPGA是继任传统CPU与GPU的未来,就有些夸大其词。且不论CPU与GPU技术已经成熟,拥有完善的生态链,CPU与FPGA的结构也有所不同。CPU中拥有控制取指、译码等流程,处理可信具备处理各式各样千奇百怪的指令要求的能力;相比之下FPGA就不能向CPU一样灵活的处理各种没有见过的指令,只能根据一个固定的模式来处理输入的数据然后输出,这也是为什么FPGA经常被看作一种行家专属的架构。

FPGA架构

不同于CPU的是,FPGA和GPU内都有大量的计算单元,因此它们的计算能力都很强。在进行神经网络运算的时候,两者的速度会比CPU快很多。但是GPU由于架构固定硬件原生支持的指令固定了,而FPGA则是可编程的。

GaxPy算法性能对比(单位:微秒)
        可以看到,FPGA的应用领域主要是深度学习和神经网络算法,而传统的CPU更关注的是“通用”,GPU虽然更注重计算速度,但是其指令仍然是固定的。而FPGA的出现之所以风靡全球,就是因为其可编程性,这让FPGA在深度学习领域拥有了得天独厚的优势。

文章来源:卿萃科技FPGA极客空间 微信公众号

版权所有权归卿萃科技,转载请注明出处。

作者:卿萃科技ALIFPGA