问题描述
我正在开发一款具有大量3D图形计算功能的产品,在很大程度上是最近点和范围搜索。一些硬件优化将很有用。虽然对此我知之甚少,但我的老板(没有软件经验)提倡使用FPGA(因为可以定制),而我们的初级开发人员则提倡将GPGPU与CUDA结合使用,因为它便宜,热销且开放。虽然我在这个问题上缺乏判断力,但我相信CUDA还是可以解决的,因为我担心灵活性,我们的产品仍处于强劲的发展之中。
I am developing a product with heavy 3D graphics computations, to a large extent closest point and range searches. Some hardware optimization would be useful. While I know little about this, my boss (who has no software experience) advocates FPGA (because it can be tailored), while our junior developer advocates GPGPU with CUDA, because its cheap, hot and open. While I feel I lack judgement in this question, I believe CUDA is the way to go also because I am worried about flexibility, our product is still under strong development.
换一个问题,根本没有理由选择FPGA吗?还是有第三个选择?
So, rephrasing the question, are there any reasons to go for FPGA at all? Or is there a third option?
推荐答案
我前一段时间调查了同样的问题。与从事FPGA工作的人聊天之后,我得到的是:
I investigated the same question a while back. After chatting to people who have worked on FPGAs, this is what I get:
- FPGA非常适合实时系统,即使延迟1ms可能太长了。这不适用于您的情况;
- FPGA可以非常快,特别是用于定义明确的数字信号处理用途(例如雷达数据),但是好的FPGA则比昂贵的且专门化的甚至是专业的GPGPU;
- FPGA的编程非常繁琐。由于有要编译的硬件配置组件,因此可能要花费几个小时。它似乎比软件开发人员更适合电子工程师(通常是从事FPGA工作的人)。
如果可以的话使CUDA为您工作,这可能是目前最好的选择。它肯定会比FPGA灵活。
If you can make CUDA work for you, it's probably the best option at the moment. It will certainly be more flexible than a FPGA.
其他选项包括ATI的Brook,但在发生重大变化之前,它的使用程度不如CUDA。在那之后,仍然有所有传统的HPC选项(x86 / PowerPC / Cell的集群),但它们都相当昂贵。
Other options include Brook from ATI, but until something big happens, it is simply not as well adopted as CUDA. After that, there's still all the traditional HPC options (clusters of x86/PowerPC/Cell), but they are all quite expensive.
希望有帮助。
这篇关于用于特殊目的3D图形计算的CUDA或FPGA?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!