Fre*_*u73 54 hardware cuda fpga
我正在开发一种具有大量3D图形计算的产品,在很大程度上是最接近的点和范围搜索.一些硬件优化会很有用.虽然我对此知之甚少,但我的老板(没有软件经验)主张FPGA(因为它可以定制),而我们的初级开发人员则主张GPGPU和CUDA,因为它便宜,热门和开放.虽然我觉得我在这个问题上缺乏判断力,但我相信CUDA也是要走的路,因为我担心灵活性,我们的产品仍然处于强劲发展之中.
所以,重新解释这个问题,是否有理由去使用FPGA?或者有第三种选择吗?
flo*_*olo 48
我们在FPGA和CUDA之间做了一些比较.如果您能够以SIMD方式真正地制定问题并且可以访问合并的内存,那么CUDA会发光.如果内存访问没有合并(1)或者如果你在不同的线程中有不同的控制流,那么GPU可能会大大降低其性能,并且FPGA可以胜过它.另一件事是当你的操作很小,但你有大量的操作.但是你不能(例如由于同步)没有在一个内核的循环中启动它,那么GPU内核的调用时间超过了计算时间.
此外,FPGA的功能可能会更好(取决于您的应用程序情况,即GPU在其计算时始终更便宜(就瓦特/翻牌而言)).
在幕后,FPGA也有一些缺点:IO可以是一个(我们这里有一个应用程序,我们需要70 GB/s,GPU没问题,但要将这些数据量传输到FPGA中,传统设计所需的引脚数量超过可用数量).另一个缺点是时间和金钱.FPGA比最好的GPU贵得多,而且开发时间非常长.
(1)从不同线程到存储器的同时访问必须是顺序地址.这有时很难实现.
bio*_*inc 47
我不久前调查了同样的问题.与曾经参与FPGA工作的人聊天后,这就是我得到的:
如果你能让CUDA为你工作,它可能是目前最好的选择.它肯定比FPGA更灵活.
其他选择包括来自ATI的布鲁克,但直到发生重大事件,它根本不像CUDA那样被采用.之后,仍然有所有传统的HPC选项(x86/PowerPC/Cell集群),但它们都非常昂贵.
希望有所帮助.
Mar*_*ett 15
我会选择CUDA.
我从事图像处理工作,多年来一直在尝试硬件附加组件.首先我们有i860,然后是Transputer,然后是DSP,然后是FPGA和直接编译到硬件.
不可避免地发生的事情是,当硬件板真正被调试和可靠并且代码被移植到它们时 - 常规CPU已经提前击败它们,或者托管机架构发生了变化,我们无法使用旧板,或者董事会的制造商破产了.
通过坚持像CUDA这样的东西,你不会被一个小型的FPGA板专家制造商所束缚.GPU的性能比CPU更快,并且由游戏玩家提供资金.它是一种主流技术,因此可能在未来与多核CPU合并,从而保护您的投资.
小智 8
小智 5
这是一个从 2008 年开始的旧话题,但最好回顾一下从那时起 FPGA 编程发生了什么: 1. FPGA 中的 C 到门是许多公司的主流开发,与 Verilog/SystemVerilog HDL 相比,节省了大量时间。在 C to gates 中,系统级设计是最难的部分。2. OpenCL on FPGA 已经存在 4 年以上,包括 Microsoft (Asure) 和 Amazon F1 (Ryft API) 的浮点和“云”部署。由于在主机和计算设备之间定义了非常明确的内存模型和 API,因此 OpenCL 系统设计相对容易。
软件人员只需要了解一点关于 FPGA 架构的知识,就能够完成 GPU 和 CPU 甚至无法完成的事情,因为它们都是固定芯片,而且没有与外界的宽带 (100Gb+) 接口。缩小芯片几何尺寸不再可能,也不可能在不熔化单芯片封装的情况下从单芯片封装中提取更多热量,因此这看起来像是单封装芯片之路的尽头。我的论点是,未来属于多芯片系统的并行编程,FPGA 很有可能领先。如果您对性能等有顾虑,请查看http://isfpga.org/。
归档时间: |
|
查看次数: |
32998 次 |
最近记录: |