FPGA与Deep Learning
你还没听过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
扫描二维码关注卿萃科技FPGA极客空间
FPGA与Deep Learning的更多相关文章
- 深度学习FPGA实现基础知识10(Deep Learning(深度学习)卷积神经网络(Convolutional Neural Network,CNN))
需求说明:深度学习FPGA实现知识储备 来自:http://blog.csdn.net/stdcoutzyx/article/details/41596663 说明:图文并茂,言简意赅. 自今年七月份 ...
- Growing Pains for Deep Learning
Growing Pains for Deep Learning Advances in theory and computer hardware have allowed neural network ...
- 论文笔记(1):Deep Learning.
论文笔记1:Deep Learning 2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...
- 深度学习加速器堆栈Deep Learning Accelerator Stack
深度学习加速器堆栈Deep Learning Accelerator Stack 通用张量加速器(VTA)是一种开放的.通用的.可定制的深度学习加速器,具有完整的基于TVM的编译器堆栈.设计了VTA来 ...
- Deep learning:五十一(CNN的反向求导及练习)
前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- 《Neural Network and Deep Learning》_chapter4
<Neural Network and Deep Learning>_chapter4: A visual proof that neural nets can compute any f ...
- Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep le ...
- paper 124:【转载】无监督特征学习——Unsupervised feature learning and deep learning
来源:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio c ...
随机推荐
- Ajax异步请求模板
$.ajax({ url: '', type: 'post', data: {'id':id}, dataType: 'json', success: function(data,statusText ...
- 用GDI+画验证码
1.新建一个窗体应用程序,在上面拖一个pictureBox对象,为其添加单击事件 2.创建GDI对象.产生随机数画入图片中.画线条.最后将图片到pictureBox中,代码如下: private vo ...
- 玩转PS路径,轻松画logo!
轻松画图标!教你一分钟玩转PS路径描边 推荐: cyRotel 2014/11/24 in PS 教程 & 设计文章 @Micu设计 :Photoshop的路径工具和钢笔工具 ...
- 转深入Java虚拟机 之四:类加载机制
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17881581 类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个 ...
- 结对作业-基于GUI的四则运算
一.需求分析 1.题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web ...
- 201521123065《java程序设计》第七周学习总结
1. 本周学习总结 1.Iterator迭代器用于遍历集合中的元素: 2.使用迭代器删除元素一定要先指向下一个元素在删除第一个元素: 3.List可以有重复对象: Set不能有重复对象: 4.Map是 ...
- 201521123001《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123005 《java程序设计》 第六周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123037 《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 创建自己的异常 1.自定义异常要继承已有的异常,需要手动throw异常:根据继承的异常不同以及具体情况,选择 ...
- 201521123009 《Java程序设计》第9周学习总结
1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 Q1:常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何 ...