Nexys 2 1200K FPGA Xilinx Spartan-3E合适吗?

时间:2013-02-22 11:05:34

标签: hardware fpga hardware-acceleration hft

我想加快计算一些处理金融工具价格的数学算法。 这个FPGA是否合适?它与其他FPGA相比如何? 我是否应该坚持使用CUDA而不是费心用FPGA(但我仍然想学习门编程,所以我很想买它)。 这是正确的选择还是有更好的价格/质量选择? 它可以处理多少复杂的程序? 我可以使用C ++库(如QuantLib)并将代码编译到芯片中吗?

  

Nexys 2 1200K FPGA Xilinx Spartan-3E

     

info:http://kamami.pl/index.php?ukey=product&productID=59726

     

主要特点:

Xilinx Spartan-3E FPGA 1200K gate
USB2 port providing board power, device configuration, and high-speed data transfers
Works with ISE/Webpack and EDK
16MB fast Micron PSDRAM
16MB Intel StrataFlash Flash R
Xilinx Platform Flash ROM
High-efficiency switching power supplies (good for battery-powered applications
50MHz oscillator, plus a socket for a second oscillator
75 FPGA I/O's routed to expansion connectors (one high-speed Hirose FX2 connector with 43 signals and four 2x6 Pmod connectors)
All I/O signals are ESD and short-circuit protected, ensuring a long operating life in any environment.
On-board I/O includes eight LEDs, four-digit seven-segment display, four pushbuttons, eight slide switches
Ships in a DVD case with a high-speed USB2 cable

是否有适用于C ++的类似工具? http://blogs.msdn.com/b/satnam_singh/archive/2010/10/15/compiling-c-programs-into-fpga-circuits-factorial-example.aspx

似乎有这样的工具: http://www.fpgarelated.com/usenet/fpga/show/21843-1.php

我可以转换为使用外部C ++库的Verilog或VHDL C ++代码吗?

2 个答案:

答案 0 :(得分:1)

这是一个很好的学习但我怀疑你会在漂浮点表现上接近一个不错的CUDA卡(注意Spartan-3已经过时几代了)。

不,你不能把C ++库编译成FGPA设计。

答案 1 :(得分:0)

我在这里找到了一个很好的信息来源: 12

在这里:

  

“我们现在看到供应商拥抱芯片的全部功能,”   佩雷特说。

     

“传统上,他们为开发人员提供了空白画布,然后是他们   采用了一种方法,可以添加各种核心,如MegaWizard   来自Altera和Xilinx的CORE Gen,这些都是众所周知的,   围绕诸如FIFO这样的事物建立了良好的结构   (先入先出)。这很棒,因为你可以建立一个设计   很容易使用这个'乐高'。但它没有真正做的是提供   一个多方面的算法开发平台。是的,你有AND,OR   和其他算术运算符,但试图建立逻辑或   使用单个组件的算法表达式最终会成为现实   非常重,并没有真正优化。所以要做任何聪明的事情   标准差,你基本上是自己的,不得不发展   你自己。“

     

根据佩雷特的说法,这种情况正在发生变化。

     

“我们现在看到的是其中一些算法的封装   由供应商自己提供,“他说。 “这意味着在   像我们这样的未来公司可以考虑提供算法开发,   无论是作为专业服务承诺还是通过我们自己的API,   哪些客户可以作为EMS平台的一部分加入。“

     

做标准偏差等事情可能涉及浮点   处理,这是FPGA传统上一直很薄弱的领域,   虽然像Altera这样的FPGA芯片供应商已经做了很多工作   在他们的工具链中使用IEEE支持浮点开发   754,数学协处理器的浮点格式。

     

然而,根据技术副总裁Ron Huizen的说法   BittWare,FPGA计算系统的提供商,做浮点运算   FPGA中的设计仍然是一个耗时的开发,即   为什么他的公司提出了另一种方法。

     

“FPGA中的浮点可以提供大量的   性能,但对复杂的算法来说并不容易“,   Huizen。 “所以我们投资了我们称之为浮点的东西   用于FPGA的协处理器,Anemone,实际上是一个小型的,非常的   低功耗,多核,C可编程处理器,专为坐在旁边而设计   一个FPGA,所以你可以卸载浮点数并写入C代码   控制它。这样你就可以优化更直接的部分   您的算法在纯FPGA中,并留下复杂的部分,或那些   经常改变,在可编程协处理器上用C语言“。

     

根据Huizen的说法,这与大多数其他方法不同。

     

“其他人已经走上了可编程的道路   处理器作为中心与外围的FPGA,但因为我们   主要在FPGA工作,我们反过来看。我们已经   故意使这款协处理器体积小,功耗低而且非常高   性能因为我们不关心所有其他接口,   这就是FPGA本身的用途。如果你看一个典型的德克萨斯州   仪器协处理器,它是一个拥有PCIe的大功耗芯片,   10GbE和所有这些接口内置,而我们拥有的只是一个非常   带有外部端口的小芯片,连接到FPGA然后具有   16个内核只是平稳运行。所以我们在1以下获得24 gigaFLOPS   瓦特总核心力量。

     

“那些正在做纯网络接口的人可能   不像那些正在做的人那样关心浮点数   硬件加速和风险分析“,Huizen建议,”但是   人们试图将他们的大算法放在FPGA上,有一些   在FPGA中仍然很难做到的事情。所以用这种方法,在哪里   有很多决策正在进行,或者有没有   经常更改,他们可以将其放入C代码并在其中运行   而是银莲花协处理器。

     

“我们从财务人员那里看到了很多人的兴趣   空间,因为这意味着他们可以在FPGA空间中做出决定   而不是通过PCIe总线将它们发送到Intel CPU中   有延迟,Linux必须处理它。有了海葵   处理器直接放在FPGA旁边,它们可以放一些   在那里进行决策并使其接近硬件但仍然如此   用C代码写“,Huizen说,”他们认识到了银莲花   协处理器实际上是16个可以运行任何代码的RISC引擎   不必是基于浮点的。所以基本上你得到了   并行运行16个控制线程,没有上下文切换。“

另一个解决方案: http://www.bittware.com/products-services-value-add-products-for-fpga/anemone104-co-processor-for-fpgas