Cuda 针对GPU与FPGA的OpenCL

Cuda 针对GPU与FPGA的OpenCL,cuda,opencl,fpga,Cuda,Opencl,Fpga,我最近读到关于OpenCL/CUDA for FPGA与GPU的比较 据我所知,FPGA在功率标准方面获胜。 对此的解释,我在一些文章中发现: 可重构设备的功耗比峰值功耗低得多 值,因为只有芯片的配置部分处于活动状态 基于以上所述,我有一个问题——这是否意味着,如果某个CU(计算单元)不执行任何工作项,它仍然会消耗电力?(如果是的话,它消耗电能的原因是什么?一如既往,它取决于工作负载。对于本机GPU硬件(例如浮点、纹理过滤)支持良好的工作负载,我怀疑FPGA能否与之竞争。有趣的是,我听说FPGA

我最近读到关于OpenCL/CUDA for FPGA与GPU的比较 据我所知,FPGA在功率标准方面获胜。 对此的解释,我在一些文章中发现:

可重构设备的功耗比峰值功耗低得多 值,因为只有芯片的配置部分处于活动状态


基于以上所述,我有一个问题——这是否意味着,如果某个CU(计算单元)不执行任何工作项,它仍然会消耗电力?(如果是的话,它消耗电能的原因是什么?

一如既往,它取决于工作负载。对于本机GPU硬件(例如浮点、纹理过滤)支持良好的工作负载,我怀疑FPGA能否与之竞争。有趣的是,我听说FPGA在图像处理工作负载方面具有竞争力或更好。这是有道理的,因为GPU并没有优化到对小整数进行操作。(因此,GPU通常与运行SSE2优化图像处理代码的CPU没有竞争力。)


至于功耗,对于GPU来说,合适的工作负载通常会让所有执行单元保持忙碌,因此这有点像是全有或全无的主张。

是的,空闲电路仍然会消耗电源。它没有消耗那么多,但仍然消耗一些。原因在于晶体管如何工作,以及CMOS逻辑门如何消耗功率

传统上,CMOS逻辑(所有现代芯片上的类型)仅在切换状态时消耗电源。与之前一直耗电的技术相比,这款手机的功耗非常低。即使如此,每次时钟边缘出现时,即使并没有功可做,一些逻辑也会改变状态。时钟频率越高,使用的功率越大。GPU往往具有较高的时钟频率,因此它们可以做大量的工作;FPGA往往具有较低的时钟频率。这是第一个影响,但可以通过不给无功电路计时(称为“时钟选通”)来缓解

随着晶体管的尺寸越来越小,开关时使用的功率越来越小,但其他影响(称为泄漏)变得更加显著。现在我们正处在一个漏功率非常重要的位置,它乘以设计中的门的数量。复杂的设计具有高泄漏功率;简单的设计具有低泄漏功率(在非常基本的术语中)。这是第二个效果


因此,对于一项简单的任务来说,使用小型专用低速FPGA可能比使用大型复杂但高速/通用CPU/GPU更省电。

基于我对FPGA的研究和它们的工作方式,这些设备可以设计为非常省电,并且可以针对一项特殊任务(例如,算法)进行微调并尽可能使用最小的资源(因此,在除ASIC之外的所有可能选择中,能耗较低)

当使用FPGA实现翻转完成算法时,设计者可以选择展开算法以使用提供的最大并行性,或者使用紧凑的顺序设计。每种方法都有自己的成本效益;前者有助于以更高的资源消耗为代价实现性能最大化,后者以最小化性能为代价重用硬件,从而有助于最小化面积和资源消耗

在为GPU开发时,不存在对算法实现的这种控制级别。开发人员有权使用最有效的算法,但他们不是决定算法最终精确硬件实现的人。与FPGA设计人员在计算其设计的硬件实现(使用后期布局工具)时甚至计算“纳秒”的情况不同,GPU开发人员依靠可用的框架自动增强所有实现细节。与FPGA设计人员相比,它们的开发水平要高得多


因此,这里也出现了众所周知的权衡问题;您希望以更长的开发时间为代价精确控制硬件实现吗?选择FPGA。你想要并行性,但你已经下定决心放弃对硬件实现的精确控制,并想利用你现有的软件技能进行开发?使用OpenCL

这是@hamzed的荣幸,但OpenCL并没有从OpenCL的FPGA设计者手中夺走控制权。它实际上提供了两个方面的最佳效果:FPGA的完全可编程性和所有自定义并行算法的优点,以及比RTL更好的设计关闭速度。通过巧妙地处理移动和不移动数据的算法,您可以接近FPGA的理论性能。请参阅本参考资料中的最后一个图表:

“GPU未优化为在小整数上运行。(因此,GPU通常与运行SSE2优化图像处理代码的CPU没有竞争力)。”。你意识到GPU来自图形处理,并且仍然包含逻辑以使其适合这种工作。Paul,内置于帧缓冲硬件中的本机8位整数支持不适用于通用计算(甚至不适用于图像处理)。如果您关注SMs的整数数学功能,请注意SSE2可以在一条指令中执行16个8位整数运算,时钟频率比GPU高5-6倍。GPU更高的内核数无法弥补这一差异。对于这样一个工作量的具体例子,考虑3x3媒体。FPGA加密卡是大的,需要一个完整的工作站来插入…如果你只有几张卡,并且它插在工作站上。。。权力有什么区别?如果它是一种便携式设备,比如平板电脑或手机,需要电池供电,那么电源就是你所担心的……要想在FPGA上获得电源优势,需要在同一块板上集成CPU和FPGA的定制板……如今,FPGA的阿喀琉斯之踵超过了GPU等客户IC设计,FPGA时钟频率多年来一直没有提高。。。他们的成绩仍然不比200强多少