GPU和FPGA之间的关系是什么?谈论GPU和FPGA

GPU是图形处理器,GPU在很多方面都有应用,例如手机,计算机等。

在前两篇文章中,编辑器介绍了GPU和图形卡之间的关系以及GPU渲染。

为了增进大家对GPU的理解,本文将解释GPU和FPGA,因为有很多人将两者进行比较。

如果您对GPU感兴趣,则不妨继续阅读。

就峰值性能而言,GPU(10Tflops)比FPGA(<1TFlops)高得多。

GPU上的数千个内核同时以GHz频率运行仍然非常出色,最新的GPU峰值性能可以达到10TFlops以上。

GPU架构已经过精心设计(例如,使用深层管道,重新定型和其他技术)。

电路实现基于标准单元库,并且可以在关键路径上手动定制电路,即使有必要,半导体晶圆厂也可以基于设计要求。

微调该过程,因此许多内核可以同时以很高的频率运行。

相对而言,一开始FPGA的设计资源受到很大限制。

例如,如果要向GPU添加更多核,则仅需要增加芯片面积,但是一旦选择了FPGA模型,就将确定逻辑资源的上限(浮点运算为Take占用了大量资源)。

而且,FPGA中的逻辑单元基于SRAM查找表,其性能将比GPU中的标准逻辑单元差很多。

最后,FPGA路由资源也很有限(某些线路必须走很远),而GPU可以通过ASIC流随意路由,这也会限制性能。

除了芯片性能之外,GPU相对于FPGA的另一个优势是存储器接口。

GPU内存接口(传统的GDDR,以及最近的HBM和HBM2)的带宽比FPGA的传统DDR接口好得多,众所周知,服务器端机器学习算法需要频繁的内存访问。

但是就灵活性而言,FPGA远远优于GPU。

FPGA可以根据特定的应用程序对硬件进行编程(例如,如果应用程序中有很多加法运算,则可以使用很多逻辑资源来实现加法器),但是一旦设计了GPU,就不能已更改,因此无法根据应用进行调整。

硬件资源。

当前,大多数机器学习都适合使用SIMD架构(也就是说,仅一条指令就可以并行处理大量数据),因此GPU非常适合。

但是某些应用程序是MISD(也就是说,单个数据需要与许多指令并行处理。

微软在2014年引用了MISD的示例在ISCApaper中并行提取功能)。

在这种情况下,使用FPGA作为MISD架构将具有优于GPU的优势。

但是,FPGA编程对于程序员来说并不容易,因此为了使机器学习程序员可以方便地使用FPGA,通常需要在FPGA公司提供的编译器的基础上进行二次开发。

这些只是大公司。

做。

由FPGA实现的机器学习加速器的体系结构可以针对特定应用进行优化,因此它们具有优于GPU的优势,但是GPU的运行速度(> 1 GHz)具有优于FPGA(〜200MHz)的优势。

因此,平均性能取决于FPGA加速器架构的优势是否可以弥补运行速度的劣势。

如果FPGA上的架构优化可以比GPU架构带来两到三个数量级的优势,那么FPGA的平均性能将优于GPU。

例如,百度在HotChips上发表的论文表明,在矩阵操作等标准批处理数据SIMDbench上,GPU的平均性能远远优于FPGA。

但是,它在服务器端处理少量的多个处理请求(即频繁的请求,但每个数据请求)。

当数量和计算量不大时,平均性能将优于GPU。

在功耗方面,尽管GPU(200W)的功耗远大于FPGA(10W)的功耗,但是如果要比较功耗,则应在执行效率为相同。

如果FPGA架构优化如此出色,以至于FPGA的平均性能可以接近GPU的平均性能,那么FPGA解决方案的总功耗将远小于GPU的总功耗,并且散热问题可能是大大减少了。

相反,如果需要二十个FPGA来实现GPU的平均性能,则FPGA在功耗方面就没有优势。

能源效率比的比较

产品知识/行业、品牌资讯