20498|9

6423

帖子

16

TA的资源

版主

楼主
 

为什么最近几年fpga变得越发受大家重视了 [复制链接]

 
知乎问题  原文地址
谨慎乐观吧,主体客户仍维持不变,部分新方向用户倾向软硬件融合化。

要分清几个区别:某学科与技术在学术圈里变成热点、某技术在国际领先公司那里成为新闻热点、在国内领先公司那里成为热点、普通公司那里变得普及……这几个范围对应的就业人群与人数是不一样的。

比如大家耳熟能详的几个关于FPGA的热点:Intel收购Altera; IBM建立Power CAPI联盟; 微软使用FPGA对搜索引擎进行加速; iPhone7采用Lattice FPGA; 国内BAT也将FPGA加速用在服务器上......这些新闻让我们很振奋,觉得FPGA的春天来了。但真想想,这些职位能有多少?国外的不谈,国内的原Intel(不包含Altera)每次开放都是个位数,申请者众多,能拿到offer的少之又少,再想想FPGA这个就业基数……

把之前写的文章贴出来:学习FPGA将来的出路在哪里? - Evan172 的回答 - 知乎

列了八条,现在和未来段时间的主体客户仍然是FPGA作为产品使用和作为IC验证平台,有些新应用范围在扩大,比如汽车电子、eFPGA、硬件加速、消费电子、IoT等。这些新范围未来时间内能容纳多少就业人群,现在还难判断。

有个倾向是软硬件融合,可能有更多本来是其它领域的工程师来兼任FPGA开发,而不需要专职的FPGA工程师,比如汽车电子、消费电子等,只需要用极简单的设计,可能是原先的工程师简单培训下就上手了; Lattice那块FPGA里的bitfile是Lattice AE帮忙生成后发给客户的(iPhone 7 为什么集成一颗 FPGA 芯片?); eFPGA或者说类似Xilinx ZYNQ系列芯片吧,用于低端板卡控制芯片不错,与以前的Spartan6相比还可带个系统在里面; 硬件加速OpenCL这块倒是值得期待,去厂商如Intel或解决方案那里还不错,去用户如BAT那里也只是平台的一部分,类似IT,地位远不能与核心应用相比。


此帖出自FPGA/CPLD论坛

最新回复

哇奥,简直太赞了……  详情 回复 发表于 2016-11-26 17:14

赞赏

1

查看全部赞赏

点赞 关注(1)
个人签名training
 

回复
举报

1万

帖子

141

TA的资源

版主

推荐
 
FPGA越来越受重视的原因没什么神秘的,甚至跟技术无关,就一条,够便宜了而已,大家用的起了。
此帖出自FPGA/CPLD论坛
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

6423

帖子

16

TA的资源

版主

推荐
 


从微薄看到爱可可老师的链接,过来聊几句。

我在华大读书的时候就是做FPGA优化算法的,当时的导师后来放着自己业界几十年的功成名就觉得不好玩,跑去altr当工程师,过了几年某奥就被某尔收购了。

当时我跟他读书的时候,他已经在FPGA界做出了重大成就,还自己筹资生产了他独创架构的可编程高性能计算芯片,当然那个时候太早了,也没太出名,那些芯片就扔在他书桌上。

我跟他的时候,他让我琢磨向量运算,我不是传统意义上的好学生,凡事不是导师说了就做,而是要刨根问底先让导师说服我,导师倒是也不烦,就说服我,说高性能计算的根本就是矩阵运算,而矩阵运算的根本就是向量运算。我凭着小时候耳濡目染的一点点数学底子,眨眨眼想明白了,就认真做。现在大家说的什么tensor flow,里面tensor就是张量,一维张量就是向量,二维就是传统意义的矩阵,不管多少维,运算都是回到向量计算。

后来我做出一个算法来,是在导师发明的算法控制之下的,把可编程芯片的最关键部分:片上互联网络的利用率提上去,然后把这种算法的效率提高了很多,另外还把时空资源分配的事情也搞定了。这个东西出来,基本上一个可编程芯片就可以随时变成一个超级计算机,当时还拿了一个奖。我毕业以后也在某奥做了几年。

我导师发明的这种可编程芯片,一部分是FPGA,另外一部分是运算器件。以后FPGA的发展方向,会朝这种混合高效形式走。

回答提问者的问题:
1.FPGA的运算优势。主要是高性能计算,高性能计算就是拼向量,向量的维度有长有短,能同时计算的维度,就是数据通路宽度。CPU的问题在于数据通路窄,phi也就是几个维度,GPU的维度宽,FPGA的好处是可以随时变化宽度。一个FPGA的数据通路宽度,理论上仅受限于片上的乘法器数量。FPGA另外一个优势是能耗低,但是这个东西以后会上来的,bit per watt的理论极限在那里,没办法的。

2.FPGA的发展方向我看还是在人工智能。主要是因为物联网的大爆发,数据产生速度超过了人类能处理的能力,所以需要高性能自动化数据处理,特别是时间序列数据的处理能力。FPGA在消费类电子产品里面虽然会有应用,但是那种主要是glue logic,注意iphone里面的FPGA不是高性能FPGA,lattice的市场份额最多只有个位数,X和A家基本上7:3的样子。

3.新手不要先学FPGA,那个东西目前的工具链还不太成熟,先把编程学好,或者偏电子专业的学Verilog / VHDL也好。

一晃已经12年过去了,摩尔定律的发展,终于走到了这一步。FPGA走上了正式的高性能计算的舞台,我导师自己忍不住,跑到第一线去玩了。哪天去问候一下,聊聊最新进展。
此帖出自FPGA/CPLD论坛
个人签名training
 
 
 

回复

6423

帖子

16

TA的资源

版主

4
 

FPGA的发明就是提高数字电路的重复利用性,通过可编程的方式实现不同的电路逻辑功能。随着FPGA结构的不断演变和工艺的不断提升,在FPGA内部集成了越来多的资源,比如BRAM、PLL、DSP、Transceiver、 DDR IP以及处理器ARM等,可以说功能变得越来越强大,用来辅助CPU计算,也获得了协处理器的名称。

针对楼主的问题:
1)与处理器的对比:FPGA与处理器是不一样的硬件结构,所以无法直接进行对比,FPGA是以可编程的数字电路为设计理念(通过编程改变内部电路逻辑),而CPU是以逻辑计算为设计出发点。FPGA擅长的领域是数字信号处理,兼容多电平标准的接口可以互联各种高速电子器件,比如高速ADC和DAC、光纤收发器等,同时丰富的IP资源保证了有丰富的外设,比如SDRAM、PCIE接口、以太网PHY、SATA接口等等。从外设上看,FPGA可搭载的外设和CPU区别的不是太大,该有的都有了。

2)与GPU的对比:FPGA可以和GPU在并行计算上进行对比,更确切的说是GPGPU(通用计算GPU)。FPGA的并行处理体现在逻辑单元的并发性和流水线的处理方式上。并发性指的是各个逻辑模块相互独立处理,依赖各自的电路资源同时工作;流水线的处理方式就是将任务切片,同一时刻可以多任务执行(FPGA的并行优势更多的体现于此)。此外FPGA带有丰富的片上存储资源,可以大大减少访问片外存储的延迟,提高计算性能(访问SDRAM储存大约是访问寄存器存储延迟的几百倍以上)。GPU的并行性体现在多核上,计算任务通过编译器编译完成之后分配到每个计算单元,每个计算单元同时工作,计算完成之后通过多级内存管理(一般为三级,private memory, local memory和global memory,映射到FPGA可以为register file, BRAM 和外部DDR存储)回到CPU,GPU的多核类似于CPU的多核,但是GPU的核仅仅是负责计算的核,以支持多bit的向量计算见长。

3)FPGA未来的发展:FPGA之前一直应用于高速数字信号领域和ASIC验证,比如数字信号采集,工业控制,航天,军工,很多人讲过,不一而足。最近几年,个人感觉从2012年伴随着Vivada开发套件的推出(以Xilinx推出Vivado作为参考,Vivado工具支持高级语言综合(High Level synthesis),支持C语言到RTL的映射,以及开始支持亿级以上门电路的设计),FPGA作为协处理器慢慢走上正轨,有了工具的支持才使得CPU上的算法移植到RTL语言变得的简单,亿级门电路保证了丰富的逻辑资源。现在FPGA在机器学习和硬件加速上得到越来越多的重视(2015年底 Intel收购Altera),也做出了不少具有开创性的作品,但同时也存在诸多问题,比如1)什么样的算法适合FPGA进行加速,2)FPGA的加速性如何提升,是靠逻辑资源来取胜还是靠真正的算法优化,3)FPGA能不能摆托对CPU的依赖(现在加速采用异构的方式进行,CPU作为Host,FPGA作为device),4)FPGA的编译器能不能发生革命性的变革? 总而言之:一个越是充满不确定性的领域,越可能是发生革命性的变革(熵很大)。

4) 建议:若想从事电子领域,应当先学好单片机,精通单片机基本可以做到窥一斑而知全豹吧。

最后附上三家公司的股票对比(近5年)
Xilinx 市值13.44 Billion(截止到2016-11-19),中规中矩


Nvidia市值 49.95 Billion(截止到2016-11-19),多么漂亮的爬坡曲线~~

Intel市值 165 Billon (截止到2016-11-19),老大哥经历过低谷,开始慢慢爬起


2016年半导体厂商营收排名:Top20


--------------------------------------------------------------------------------------------------------------------
更新2016-11-22
如果看Nvidia股票近5年的走势话,和深度学习热度十分吻合,不知谁因谁果,但我更偏向于2012年Hinton课题组拿下ImageNet比赛的冠军,引爆了深度学习的热潮,从而推动了GPU的发展。于此同时GPU的发展也带来了深度学习性能的提升。既然GPU在深度学习领域如鱼得水,那么怎么会将GPU与FPGA进行对比呢?在深度学习爆发之前为什么没有呢(大家各走各的阳关道)?

我想期初(2012-2014)GPU在深度学习领域的地位无可撼动,可以说是拿着探照灯也找不到对手,而且那时大家是深挖深度学习的潜能出成果,无暇顾及太多。还没吃饱自然不会想到胖。随着深度学习的发展,功耗和硬件结构成为摆在眼前的问题,这时研究者们开始思考有没有其他的硬件也可以进行深度学习?放眼望去,只有FPGA具有的并行性或许可以,但结构和GPU相差甚远,完全是两个体系。

功耗方面,电子元器件的功耗与C(寄生电容)、V(工作电压)和f^2(工作频率成正比),可以写为P=CVf^2, GPU作为多核来讲,可以将其功耗与Core看成是线性关系,即P=NCVf^2, 核越多功耗就越大。除此之外,GPU板卡的功耗还来自与大量访问片外存储SDRAM造成的功耗,这些功耗主要包括寄有功耗(Background)\读写(Write/Read)功耗、激活(Active)功耗、刷新功耗(Refresh)、端接功耗(DQ terminal)等。

硬件结构上,大家希望可以研制出深度学习处理器,这样在处理性能和功耗上都会是一个飞跃,所以这也是很多深度学习芯片公司纷纷成立的原因(深受VC推崇),这完全是一片蓝海,很蓝很广。研制深度学习芯片离不开FPGA,但是万一深度学习芯片研制成功了,Nvidia的股票会如何呢,FPGA又会如何呢?

现在FPGA为什么会得到重视,就是抛开FPGA原有的领域,在深度学习领域似乎有那么点光,有光就意味着有希望。如同2012年前,GPU只是游戏发烧友口中的电脑配置的代名词,时至今日,GPU从游戏界走到了学术界,走到了工业界。说不定FPGA或者AI芯片也会,有机会就要抓住他。从来不要低估一颗冠军的心。

FPGA的开发问题:现在已经可以在FPGA上通过OpenCL实现Caffe的framework,假以时日,会有不错的成绩(困难会被慢慢推倒)。

最后附上FPGA与GPU的对比文章(已经有人做了),文章从浮点运算能力、延迟、单位瓦特的处理能力、接口、向后兼容性、灵活性、物理尺寸、人员成本、单位美元的处理能力进行了对比。但是Flexibility上原文可能写错了,应该是FPGA占优势。






v2-3f63beaf3dc259eb9cd723ad47613d27_b.png (25.29 KB, 下载次数: 0)

v2-3f63beaf3dc259eb9cd723ad47613d27_b.png
此帖出自FPGA/CPLD论坛
个人签名training
 
 
 

回复

6423

帖子

16

TA的资源

版主

5
 


原因是先进制程ASIC的NRE成本在飙升。90nm工艺刚出来的时候,还有近百个设计采用,据说当时的NRE是1500万刀,现在据说还要好几百万,现在14nm工艺全球可能只有6-7家企业的十几个设计能够支付的起了。原因是什么,一个14nm设计,NRE需要一亿刀,我就算毛利到60%,收回成本也得卖1.6亿刀,再考虑盈利,风险,其他的成本(高复杂逻辑芯片会有很高的软件开发费用),不卖个5亿刀根本不考虑开14nm的ASIC项目。而市场上有这么大市场规模的单品是很少的。市场规模不够大,就没法开先进ASIC;但是没有先进ASIC就没法完成一些高要求的工作。这就陷入了一个死循环,FPGA是打破这个死循环的利器。FPGA的NRE成本可以摊到上千个小项目上,从而让每个项目只分担几十万刀的NRE。比如开发一款14nm的FPGA,需要一亿刀,他的性能可以达到45nm ASIC的水平。然后有一千个有45nm工艺要求的项目可以采用该FPGA来解决问题,他们支付不了45nm工艺数千万刀的NRE,但是通过分摊的方式每家支付几十万刀还是可以得。
不过我觉得FPGA会越来越重要,侵占更多传统上ASIC的地盘是没错,但是也很难大热。未来大热的方向上,VR/AR面临GPU的竞争,FPGA没什么优势,物联网上FPGA这种高密度高能耗的玩意没戏,人工智能深度学习上很难说,我觉得类似DSP那样特化的CPU或者一些新概念器件可能才是方向。未来大人方向里FPGA我觉得有优势只有大数据了。
总之,我觉得如果你现在是集成电路方向的数字工程师,一定要掌握FPGA相关的技能,无论是转行还是在目前的工作中都很有用。其他人就不必太关注了。
此帖出自FPGA/CPLD论坛
个人签名training
 
 
 

回复

6423

帖子

16

TA的资源

版主

6
 
为什么最近几年FPGA变得变得越发受大家重视了?
这题目咋一看问得很有深度。但是很遗憾这不是事实。
不过结合到题主的描述……你有这样的感受是因为你之前没有听说过吧。毕竟几年前你也不太可能知道什么叫FPGA。
一个简单的办法,在google Trends上把FPGA和目前真正有上升趋势的一次词汇对比一下搜索热度。比如就拿Machine Learning 来比较一下就知道了。


蓝色的是FPGA,红色的是Machine Learning。看出趋势了吗?FPGA这5年里搜索热度是在平稳下降,而Machine Learning才是在大幅提升。
什么叫越发受大家重视?这至少从一个侧面说明了问题。

此帖出自FPGA/CPLD论坛
个人签名training
 
 
 

回复

6423

帖子

16

TA的资源

版主

7
 
1,不会爆发,量大都流片去了,
2,高薪,学习曲线太抖,数字电路模拟电路外加算法就够很多人喝一壶的了,
3,优势在于,用于验证,流片毕竟太贵。
4,非从业者,搞过几天,建议可以试试,这是一条道,咬着牙走下来吃好喝好肯定没啥问题,挣大钱难度很大。
此帖出自FPGA/CPLD论坛
个人签名training
 
 
 

回复

6423

帖子

16

TA的资源

版主

8
 


上面已经有很多优秀的回答来,刚好我最近在做FPGA相关课题研究,我想应该能补充一下的,如有不对,欢迎批评指正。针对题主的问题

1.FPGA到底相较于传统处理器在哪些方面更有优势?是否类似于显卡与CPU的关系呢?
FPGA相对于传统的CPU,优势在于以下几点: 1)更大的并行度。这个主要是通过并发和流水两种技术实现。A)并发是指重复分配计算资源,使得多个模块之间可以同时独立进行计算。这一点与现在的多核和SIMD技术相似。但相对与SIMD技术,FPGA的并发可以在不同逻辑功能之间进行,而不局限于同时执行相同的功能。举个简单例子说就是使用SIMD 可以同时执行多个加法,而FPGA可以同时执行多个加法和乘法和任何你能设计出来的逻辑。B)流水是通过将任务分段,段与段之间同时执行。其实这一点和CPU相似,只是CPU是指令间的流水而FPGA是任务间流水或者我们可以说是线程间流水。2)可定制。FPGA 内部通过Lookup Table实现逻辑,我们可以简单理解为是硬件电路。可定制指的是在资源允许范围内,用户可实现自己的逻辑电路。通常情况下任务在硬件电路上跑是比在软件上快的,比如要比较一个64位数高32位和低32位的大小,在CPU下需要2条区数指令,两条位与指令,一条移位指令一条比较指令和一条写回指令,而在FPGA下只要一个比较器就行了。3)可重构。可重构指的是FPGA内部的逻辑可根据需求改变,减少开发成本。同时,使用FPGA复用资源比使用多个固定的ASIC模块为服务器省下更多的空间。
FPGA与CPU的关系和GPU与FPGA的关系是非常类似的,我们可以认为是co-processor。但实际上FPGA/GPU和CPU之间的关系是不对等的,通常情况下FPGA/GPU是以设备形式存在。简单说就是FPGA/GPU需要CPU管理,而且传输数据时需要在内存中进行一个copy操作把数据从内存拷贝到设备内存中。近年Intel的HARP和IBM的CAPI改变的这一局面,Intel将FPGA集成到CPU中,两者通过QPI相连,而IBM的CAPI/Nvink使得FPGA/GPU与CPU共享内存,从某种意义上说改变了FPGA/GPU的角色,也就是说他们和CPU的关系是对等的(这是很重要的改变!!!)。更详细的请关注FPL16的keynote,或者查阅IBM CAPI相关信息。

2.fpga在未来五到十五年里的发展方向会是怎么样?特别是在消费电子领域会有爆发点吗?
对消费电子领域研究不多,我的观点是FPGA在消费电子上使用更多的是成本问题,FPGA还是挺贵的,除非能把成本降下来,不然用在消费电子上会增加成本,太贵的手机买的人也不多。但是FPGA在企业级应用上使用是越来越广,比如说机器学习,大数据,数据库,DNA匹配和检测等。比如说现有的IBM的Netezza系统,Kickfire的Kickfire系统,Microsoft的Bing引擎等等。

至于题主提到的没感觉单片机和FPGA的区别,我猜是你跑的应用太简单了或者说数据集太小了。如果你是比较跑马灯或者电梯控制器在FPGA和在单片机上的区别,可以说很难看出FPGA的优势,甚至说FPGA的开发过程会让你觉得单片机更加方便。你可以试着跑一个复杂一点的算法和大一点的数据集,比如说基因序列比对 smith waterman算法。在CPU上需要运算几十小时,在FPGA上可能只需要几小时,在单片机上保守估计要个几天(真没试过,欢迎提供数据)。

3.对相关专业学生有什么建议吗?
我是Computer Science/Engineering的,我的建议是,哈哈哈哈,转CS吧,转CS吧,转CS吧。我还是为自己N年前乱填的一个计算机科学与技术感到荣幸,现在CS真的好火,需求也广,真是新时代民工。从我了解的FPGA的职位看来,做FPGA的有这么几种:1)制作FPGA,也就是做一个更好更快更符合客户要求的FPGA芯片,这个难度很大,市场主要被Xilinx和以前的Altera占了,而且这个更多的属于工艺问题,类似职位能提供的应该也不多。2)使用FPGA做开发/原型验证,或者说FPGA只是开发的平台,最后转到ASIC上,这个做了好久,估计职位不会很多,或者你可以自己拓展新应用。3)FPGA加速,实现基于FPGA的异构系统,FPGA是直接集成到系统中运行的,是近年比较或的几种架构之一。

所以说,如果真的想做FPGA,也尽量往CS靠(不知到CS还能坚持多久),做大数据/深度学习/生物信息学相关的FPGA 加速项目。以架构师的培养方式锻炼自己。不能局限于FPGA内部逻辑的设计,要跳出FPGA,站在系统层面上考虑FPGA的角色。比如说如何解决FPGA local memory (BRAM)太小的问题,如何解决FPGA-Memory和CPU-Memory内存带宽不均等的问题,等等。近几年FPGA的几大顶会FPGA,FCCM,FPL等都在关注CPU-FPGA的异构系统架构。更让人惊喜的是近几年系统结构的几大顶会(ISCA,HPCA,MICRO,ASPLOS,SC)中,FPGA相关文章也占有一定比重,从一点角度说FPGA再次受到重视,但是可能并不是传统的FPGA开发研究,而是如何真正在系统上用好FPGA。最后说一点,架构师的工资比普通码农高一些。仅供参考。
此帖出自FPGA/CPLD论坛
个人签名training
 
 
 

回复

6423

帖子

16

TA的资源

版主

9
 
从略偏CS的角度答第一问
FPGA是可编程的,一块FPGA芯片接上电以后还可以修改逻辑功能,这一点跟处理器是比较像的。个人认为FPGA跟处理器(包括CPU、GPU等)相比

优点:并行度高。没有『一条一条依次执行指令』的限制,verilog里写
assign a = x + y;
assign b = x - y;
a和b的计算自然是并行的,根本不用管线程进程什么的。合理的设计可以让大部分运算单元都不闲着。
性能功耗比高。没有指令译码等控制模块吃功耗。
位运算自由。不受『一次操作8/16/32/64/etc.个bit』的限制,不用搞些奇怪的bit mask。
a = (a & 0xF0) | (b & 0x0F);
可以写成
a[3:0] <= b[3:0];

缺点:编程困难。HDL就不说了,即使现在有了opencl这样的东西,思维方式也没有很大的变化。算固定数据流图的是厉害,比如FFT;遇到动态任务的,数据流图和输入数据有关的就很无力,比如快速排序。

(为什么『快速傅里叶变换』不叫Quick Fourior Transform 而『快速排序』不叫Fast Sort呢?)

此帖出自FPGA/CPLD论坛
个人签名training
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

10
 
哇奥,简直太赞了……
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表