ano*_*non 25 algorithm cpu fpga
在我生命的大部分时间里,我都编写了CPU; 虽然对于大多数算法来说,CPU或FPGA上的大哦运行时间保持不变,但常数却大不相同(例如,大量的CPU功率浪费了数据周围的混乱;而对于FPGA,它通常是计算限制的).
我想了解更多相关信息 - 任何人都知道有关以下问题的好书/参考文件/教程:
FPGA的主要任务是什么(在纯粹的速度方面)FPGA的主要任务是什么(就每个工作量而言)
注意:标记为社区维基
Ben*_*kin 34
[没有链接,只是我的思考]
FPGA本质上是硬件的解释器!该架构就像专用ASIC一样,但为了实现快速开发,您需要支付大约10倍的频率和[不知道,至少10?]的功率因数.
因此,采取专用硬件可以大大超越CPU的任何任务,除以FPGA 10/[?]因素,你可能仍然有一个胜利者.这类任务的典型特质:
编辑:其中几个条件 - 尤其是 固定数据流和许多单独的任务要处理 - 也可以在CPU 上启用位切片,这在某种程度上可以调整字段.
最新一代Xilinx器件只是弹出的吹制4.7TMACS和600MHz的通用逻辑.(这些基本上是Virtex 6s在较小的工艺上制造.)
如果你能在固定点操作中实现你的算法,主要是乘法,加法和减法,并利用宽并行和流水线并行,你可以在功率和处理方面吃掉大多数PC,就像这样的野兽.
你可以对它们进行浮动,但会有性能损失.DSP模块包含一个25x18位的MACC,总和为48位.如果你可以摆脱奇怪的格式并绕过通常发生的一些浮点归一化,你仍然可以从这些中获得卡车的性能.(即使用18位输入作为海峡固定点或浮动与17位尾声,而不是正常的24位.)双打浮动将占用大量资源,所以如果你需要,你可能会在PC上做得更好.
如果您的算法可以表示为加法和减法运算,那么这些算法中的通用逻辑可用于实现数十亿加法器.像Bresenham的line/circle/yadda/yadda/yadda算法这样的东西非常适合FPGA设计.
如果你需要分裂...... EH ......这很痛苦,而且可能会相对缓慢,除非你可以实现你的分数倍增.
如果你需要很多高精度三角函数,那就不要太多了......再一次可以做到,但它不会很漂亮或者很快.(就像它可以在6502上完成.)如果你可以应对只在有限范围内使用查找表,那么你的金色!
说到6502,6502演示编码器可以让这些东西中的一个唱歌.任何熟悉程序员过去常常在旧式学校机器上使用的旧数学技巧的人仍然适用.现代程序员告诉你的"让图书馆为你做的"所有技巧都是你需要知道的在这些上实现数学的东西.如果你能找到一本关于在基于68000的Atari或Amiga上做3d的书,那么他们将讨论如何仅以整数形式实现东西.
实际上,任何可以使用查找表实现的算法都非常适合FPGA.您不仅可以通过零件分配阻塞,而且逻辑单元本身可以配置为各种大小的LUTS和迷你公羊.
您可以免费查看固定位操作等内容!它只是通过路由处理.固定转移或位反转不需要任何费用.像可变量一样的动态位操作将花费最少量的逻辑,并且可以在奶牛回家之前完成!
最大的部分有3960个乘法器!并且142,200个切片,每个切片可以是8位加法器.(每片切片4个6Bit或每个切片8个5bit Luts,具体取决于配置.)
选择一个粗糙的SW算法.我们公司以SW algo的硬件加速为生.
我们已经完成了正则表达式引擎的硬件实现,它将以高达10Gb /秒的速度并行执行1000个规则集.目标市场是路由器,其中反病毒和ips/ID可以在数据流传输时实时运行,而不会降低路由器的速度.
我们在HW中完成了高清视频编码.过去每秒需要几个小时的胶片处理时间才能将其转换为高清.现在我们几乎可以实时完成......转换1秒的胶片需要大约2秒的处理时间.Netflix几乎专门用于他们的视频点播产品.
我们甚至在HW中完成了诸如RSA,3DES和AES加密和解密之类的简单操作.我们在HW中完成了简单的zip/unzip.目标市场是安全摄像机.政府拥有大量的摄像机,可以产生大量的实时数据.他们在通过网络发送之前将其实时压缩,然后在另一端实时解压缩.
Heck,我工作的另一家公司曾经使用FPGA做雷达接收器.他们会直接在几个不同的天线上对数字化的敌方雷达数据进行采样,并从到达的时间三角洲,找出敌方发射机的方向和距离.哎呀,我们甚至可以检查FPGA中信号脉冲的意外调制,以找出特定发射器的指纹,因此我们可以知道这个信号来自一个特定的俄罗斯SAM站点,该站点曾经驻扎在不同的边界,所以我们可以跟踪武器的移动和销售.
尝试用软件做!! :-)
归档时间: |
|
查看次数: |
8242 次 |
最近记录: |