2

我是一位经验丰富的 C#/.NET 开发人员(实际上这都无关紧要,因为 FPGA 就像另一个复杂级别)。虽然我的能力水平不像 C# 那样专家,因为我有时还是会查资料(但不是很经常,虽然我在一些语法/高级概念上遇到了困难),但我的老板做 FPGA 并建议我参与进来(放松自己,我很惊讶我没有气馁,因为我是一名初级开发人员,而且它是一项复杂的技术)。

因此我的问题是,学习 FPGA 的最佳方法是什么?我正在收集书籍等。

我正在研究可扩展的 3D 建模和渲染(理想情况下是在用户等待即时响应的 Windows 应用程序中),并且 CUDA 很受欢迎,但根据我老板的说法,速度没有那么快。

FPGA 是否适合此类项目?

谢谢

4

4 回答 4

7

老实说,我认为你的老板是错的。NVIDIA 和 AMD 正在销售专为加速 3D 渲染而设计的真正硅硬件。除非您的特定问题没有映射到现有的着色器/CUDA 范例,否则可配置的硬件设备无法与之竞争。出于同样的原因,即使是最好的基于 FPGA 的 CPU(Xilinx 的 MicroBlaze、Altera 的 Nios)与低端嵌入式 ARM 内核相比也是玩具。(请注意,这通常是有用的玩具,但没有竞争力,除非在具有其他未使用的 FPGA 门空间的设计中。)

但我绝对可以推荐学习 FPGA 和 HDL 编程。这是“收集书籍”确实对您没有帮助的一个领域。您需要做的是获得一个便宜的开发板(市场上有很多在 100-200 美元的范围内),下载匹配的工具链并开始编写和测试代码。

于 2009-10-07T21:47:51.693 回答
0

好吧,在 fpga 上进行可扩展的 3d 渲染。你会如何处理它?FPGA 非常适合将经典 simd 架构扩展到您喜欢(或限制)的数据大小,具有出色的并行性,即使使用 100mhz,您也可以将数据处理到可接受的水平,在我看来,您唯一的限制是内存带宽和速度。不要忘记您需要一个图形控制器才能使用您吐出的数据。本质上,您将制造所有硬件来完成如此复杂的任务,您确定您有能力制造能够进行 3D 渲染的 SIMD 处理器吗?你的硬件设计是什么?

正如许多其他人指出的那样,ITT;来自 nvidia 的 CUDA 是一个很好的选择,新的 fermi 架构看起来很有前途,但如果你正在寻找低成本、小尺寸和低功耗的产品,我不推荐使用 CUDA。当然它非常适合解决任务,但如果你的任务有轮子和电池,它就会变得复杂。

我认为比图形更适合 fpgas 的任务是生物计算,这是一个比图形需要更大并行性的问题空间。

于 2009-10-27T00:33:08.260 回答
0

为什么不学习如何使用当今现代 PC 附带的硬件加速?我敢打赌,使用带有硬件加速的 OpenGL 或 DirectX(无论现在叫什么)会表现得更好。

我想如果你的应用程序要在某种定制的嵌入式设备上运行,也许你想创建自己的硬件,但对于 PC 应用程序来说,它可能太贵了,而且与已经完成疯狂工作的软件解决方案相比几乎没有任何好处调整性能。

我的意见:利用所有投入到 3D 游戏技术中的工作。

于 2009-10-07T22:27:31.697 回答
0

正如 Andy Ross 所说,我认为 FPGA 是解决这类问题的方法——你还需要以某种方式将它与 PC 连接起来。

我会先得到一个 DevKit 并玩弄它。让 LED 闪烁 - 当我开始使用新的嵌入式设备时,我总是发现这是最困难的部分 oO 获取某种形式的通信(RS232 / TCP),这可能在 DevBoard 上。然后在其上实现一些数学函数,这些函数通过通讯获取参数/传回结果。

于 2009-10-08T00:51:43.897 回答