我是一名经验丰富的C#/.NET开发人员(实际上这都是无关紧要的,因为FPGA就像是另一层复杂性)。虽然我的能力水平并不像C#那样专业,因为我有时仍然会查找东西(但并不是经常的,尽管我在一些语法/高级概念上苦苦挣扎),我的老板做C#,并建议我参与进来(放松一下,我很惊讶我没有因为我是一个初级开发人员而感到沮丧,这是一项复杂的技术)。
因此,我的问题是,学习FPGA的最好方法是什么?我在收集书籍等。
我正在考虑可伸缩的3d建模和渲染(理想情况下是在windows应用程序中,用户可以等待即时响应),CUDA很受欢迎,但据我的老板说,CUDA的速度没有那么快。
FPGA是这类项目的首选吗?
谢谢
发布于 2009-10-07 21:47:52
老实说,我认为你的老板错了。NVIDIA和AMD正在销售专为加速3D渲染而设计的真正的硅硬件。除非您的特定问题不能映射到现有的着色器/CUDA范例,否则可配置的硬件设备将无法与之竞争。这是出于同样的原因,即使是最好的基于现场可编程门阵列的CPU(Xilinx的MicroBlaze,Altera的Nios),即使与低端的嵌入式ARM内核相比也是玩具。(请注意,通常是有用的玩具,但不具有竞争力,除非设计中有其他未使用的FPGA门空间。)
但我绝对推荐你学习FPGA和HDL编程。这是一个“收集书籍”不会对你有帮助的领域。你需要做的就是买一块便宜的开发板(市场上有很多价格在100-200US之间),下载匹配的工具链,然后开始编写和测试代码。
发布于 2009-10-07 22:27:32
为什么不学习如何使用现代PC附带的硬件加速功能呢?我敢打赌,使用带有硬件加速的OpenGL或DirectX(不管现在怎么叫它)会表现得更好。
我猜如果你的应用程序要在某种定制的嵌入式设备上运行,也许你想创建自己的硬件,但对于PC应用程序来说,它可能太贵了,而且几乎没有什么好处,因为软件解决方案已经做了疯狂的工作来调整性能。
我的观点是:充分利用所有投入到3d游戏技术中的工作。
发布于 2009-10-08 00:51:44
正如安迪·罗斯所说,我认为FPGA是你解决这类问题的方法--你还需要以某种方式将它与PC连接起来。
我会从买一个DevKit开始,然后试着使用它。让发光二极管闪烁-当我开始使用一个新的嵌入式设备时,我总是发现这是最困难的部分。获得某种形式的通信(RS232 / TCP),可能是在DevBoard上。然后在其上实现一些数学函数,这些函数通过通信获取参数/传递结果。
https://stackoverflow.com/questions/1534362
复制相似问题