【问题标题】:FPGA for 3d rendering/modelling用于 3D 渲染/建模的 FPGA
【发布时间】:2010-12-04 19:07:34
【问题描述】:

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

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

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

FPGA 是否适合此类项目?

谢谢

【问题讨论】:

    标签: c# 3d modeling fpga


    【解决方案1】:

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

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

    【讨论】:

    • 嗯...军事 + 雷达 + FPGA = 宙斯盾。您甚至无法接近 500 万门 FPGA 上的水平或并行处理。在 FPGA 上使用 CPU 很酷,但首先违背了拥有可配置电路的目的,我同意你的观点,即低端 ARM CPU 会击败相同 CPU 的 FPGA 实现,但这就是它们在硅片中的原因。学习 FPGA 的力量和理由不是为了开发 CPU。
    • 停止燃烧。是的,如果您的目标是加速渲染(或任何特定任务),您可以。您当地零售商 300 美元的 GPU 有 数十亿 个专用于该问题的门,它们以 GHz 速度运行,而不是现代 FPGA 合成中的 50-100MHz。 FPGA 具有可配置的优点。它们当然不会比原始晶体管快。
    【解决方案2】:

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

    我猜如果您的应用程序要在某种定制的嵌入式设备上运行,也许您想创建自己的硬件,但对于 PC 应用程序来说,它可能过于昂贵,并且与已经拥有的软件解决方案相比几乎没有任何好处为优化性能所做的疯狂工作。

    我的意见:充分利用已投入 3d 游戏技术的所有工作。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-12
          • 2017-08-05
          • 2013-03-25
          • 1970-01-01
          • 2021-05-30
          • 1970-01-01
          • 1970-01-01
          • 2012-05-04
          相关资源
          最近更新 更多