最近和一个单位技术交流,得知最近FPGA忽然非常火,据说去年的出货量增加一倍,微软在Bing内部也部署了1000多节点的测试环境,据说测试结果表明可以减少50%的计算节点,单机成本增加30%左右,因此还是省钱了。同时百度、腾讯、谷歌也都有尝试FPGA的计划。据说吸引投资方的两个重要问题是:1.CPU收到量子效应的影响,集成度难以提高2.GPU能耗太高。
在学校期间曾经做过8位机,当时承担角色是设计运算逻辑,基本上就是门电路设计,为了放到金钟GAL里面,费了老鼻子劲,后来还烧坏了一批GAL。GAL之后是CPLD,支持更多的可编程门电路。同时另外一个技术分支就是FPGA,这个玩意工作原理类似,和CPLD的主要区别是FPGA基于查找表(LUT)实现了大规模状态机电路,而CPLD由大量门电路构成。因此CPLD适用于组合逻辑应用,而FPGA更适合于类似CPU的工作。
学术界在2010年前后发表了不少FPGA的研究论文,总体结论是GPU的性能占优,开发容易,FPGA开发复杂,在部分领域可能占优,但是需要社区来大力推动。工业界近期开始利用FPGA做一些产品化工作,但是主要还是集中在网络设备,在计算设备方面,有些厂商在研究FPGA在产品和服务中的应用,但是并未有大规模商用案例。个人预计在固定计算模式的产品方面会有较多一体化设备使用FPGA,但是在服务方面,FPGA目前还不成熟。
学术界:有一些研究和基准测试
一、2013年,Egil Fykse硕士论文测试比较DSP、GPU和FPGA(注:测试的内容不是很充分)
综合比较了性价比,总体来说价格不好比较,同样作业FPGA能耗大大低于GPU,开发能力方面GPU大大优于FPGA,性能方面GPU占优
二、2013年Mathworks的Christopher Cullinan等人对CPU、GPU和FPGA进行性能测试
FFT的性能测试,GPU有1000倍左右的性能优势,但是如果考虑数据传输时间,则GPU变成69ms,变成了最慢的,而FPGA变成最快的。其他的测试也表明,GPU的性能主要在数据传输方面
其他三种算法的测试,GPU对比CPU有一些优势,最大3~100倍左右
三、2010年David H. Jones等人发表论文比较GPU和FPGA的性能,HPC领域
伪随机数生成,GPU和FPGA相当(唯一一个相当的例子),64位矩阵相乘,GPU优于FPGA
N-bady仿真,GPU显著优于FPGA。最终的结论是,如果不能通过开源优化算法,FPGA只能用于特定的计算领域。一个证据是Cray系统已经放弃FPGA而是用GPU
工业界:在FPGA方面的进展并没有什么商用案例,微软Bing案例是一个最大的试点系统,其他就很不清楚了
一、微软Bing案例
Putnam介绍了在Bing做的原型项目中(离线计算搜索词排名,并行系统),使用1632个服务器,每台服务器使用一个PCIe的FPGA卡,增加单台服务器成本不到30%,但是提升吞吐率100%。即传说可以节约50%服务器的由来。主要问题是难以开发应用程序,需要高级语言的支持。同时开发流程也非常慢。貌似由于系统基于Windows,而设备的Windows驱动也是个问题。
二、百度案例
开发了FPGA的板子,据说用于至少10个底层任务的优化,据说在性能/功耗/成本方面由于GPU和CPU。百度的FPGA架构师(欧阳健)原来在微软研究院做FPGA方面的研究工作,Putnam的团队。
三、Google案例
Jonathan Ross在FPGA 2014大会上主要讲了Google对FPGA的一些态度,一方面存在计算需求,但是FPGA目前存在很多问题,如不开源、不成熟、许可费、支持差等问题。看来Google并未开始什么商用。
四、Oracle和IBM案例
Oracle打算利用FPGA优化数据库,目前停留在Lab状态。IBM还在忽悠
相关信息:
- Programmable logic device
- Performance Comparison of GPU, DSP and FPGA implementations of image processing and computer vision algorithms in embedded systems
- Computing Performance Benchmarks among CPU, GPU, and FPGA
- GPU versus FPGA for high productivity computing
- Lattice’s iCE40 FPGA Shipments Reach 200 Million Unit Milestone
- Xilinx Begins Shipping TSMC 20nm FPGAs
《下一代计算设备CPU/GPU/FPGA:FPGA规模商用还需时日》有1个想法