您的位置 首页 基础

介绍GPU与FPGA的几个方面和观点

介绍GPU与FPGA的几个方面和看法-除了芯片性能外,GPU相对于FPGA还有一个优势就是内存接口。GPU的内存接口(传统的GDDR,最近更是用上了HBM和HBM2)的带宽远好于FPGA的传统DDR接口,而众所周知服务器端机器学习算法需要频繁访问内存。

从几个方面来介绍一下GPU和FPGA。

从峰值功能来说,GPU(10Tflops)远远高于FPGA(<1TFlops)。GPU上面不计其数个core一起跑在GHz的频率上仍是十分壮丽的,最新的GPU峰值功能可达10TFlops以上。GPU的架构通过细心规划(例如运用深度流水线,reTIming等技巧),在电路完结上是依据规范单元库而在criTIcal path上能够用手艺定制电路,甚至在必要的景象下能够让半导体fab依据规划需求微调工艺制程,因而能够让许多core一起跑在十分高的频率。相对而言,FPGA首要规划资源遭到很大的约束,例如GPU假如想多加几个core只需添加芯片面积就行,但FPGA一旦你类型选定了逻辑资源上限就确认了(浮点运算在FPGA里会占用许多资源)。并且,FPGA里边的逻辑单元是依据SRAM-查找表,其功能会比GPU里边的规范逻辑单元差很多。最终,FPGA的布线资源也受约束(有些线必需求绕很远),不像GPU这样走ASIC flow能够随意布线,这也会约束功能。

除了芯片功能外,GPU相关于FPGA还有一个优势便是内存接口。GPU的内存接口(传统的GDDR,最近更是用上了HBM和HBM2)的带宽远好于FPGA的传统DDR接口,而众所周知服务器端机器学习算法需求频频拜访内存。

介绍GPU与FPGA的几个方面和观点

可是从灵活性来说,FPGA远好于GPU。FPGA能够依据特定的运用去编程硬件(例如假如运用里边的加法运算十分多就能够把很多的逻辑资源去完结加法器),可是GPU一旦规划完那就无法改动了,无法依据运用去调整硬件资源。现在机器学习大多数合适运用SIMD架构(即只需一条指令能够平行处理很多数据),因而用GPU很合适。可是有些运用是MISD(即单一数据需求用许多条指令平行处理,微软在2014年ISCA paper里边就举了一个MISD用于并行提取feature的比如),这种情况下用FPGA做一个MISD的架构就会比GPU有优势。不过FPGA的编程关于程序员来说并不简单,所以为了能让机器学习程序员能方便地运用FPGA往往还需求在FPGA公司供给的编译器基础上进行二次开发,这些都是只要大公司才干做。

FPGA完结的机器学习加速器在架构上能够依据特定运用优化所以比GPU有优势,可是GPU的运转速度(>1GHz)比较FPGA有优势(~200MHz)。

介绍GPU与FPGA的几个方面和观点

所以,关于均匀功能,看的便是FPGA加速器架构上的优势是否能补偿运转速度上的下风。假如FPGA上的架构优化能够带来比较GPU架构两到三个数量级的优势,那么FPGA在均匀功能上会好于GPU。例如,百度在HotChips上发布的paper显现,GPU的均匀功能比较FPGA在矩阵运算等规范batch data SIMD bench上远好于FPGA;可是在处理服务器端的少数屡次处理恳求(即频频恳求但每次恳求的数据量和核算量都不大)的场合下,均匀功能会比GPU更好。

功耗方面,尽管GPU的功耗(200W)远大于FPGA的功耗(10W),可是假如要比较功耗应该比较在履行功率相一起需求的功耗。假如FPGA的架构优化能做到很好以致于一块FPGA的均匀功能能挨近一块GPU,那么FPGA计划的总功耗远小于GPU,散热问题能够大大减轻。反之,假如需求二十块FPGA才干完结一块GPU的均匀功能,那么FPGA在功耗方面并没有优势。

能效比的比较也是相似,能效指的是完结程序履行耗费的能量,而能量耗费等于功耗乘以程序履行的时刻。尽管GPU的功耗远大于FPGA的功耗,可是假如FPGA履行相同程序需求的时刻比GPU长几十倍,那FPGA在能效比上就没有优势了;反之假如FPGA上完结的硬件架构优化得很合适特定的机器学习运用,履行算法所需的时刻仅仅是GPU的几倍或甚至于挨近GPU,那么FPGA的能效比就会比GPU强。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/93025.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部