在我的大部分人生中,我都编写CPU程序;虽然对于大多数算法,CPU / FPGAs的大O运行时间保持不变,但常数差别很大(例如,大量CPU功率被浪费在数据传输上;而对于FPGA来说,通常是计算受限)。
我想更多地了解这个问题--是否有好的书籍/参考论文/教程,可以涉及以下问题:
FPGA在哪些任务上具有纯速度优势而超越CPU? FPGA在哪些任务上具有比CPU更高的性能功耗比?
注意:标记为社区wiki。
在我的大部分人生中,我都编写CPU程序;虽然对于大多数算法,CPU / FPGAs的大O运行时间保持不变,但常数差别很大(例如,大量CPU功率被浪费在数据传输上;而对于FPGA来说,通常是计算受限)。
我想更多地了解这个问题--是否有好的书籍/参考论文/教程,可以涉及以下问题:
FPGA在哪些任务上具有纯速度优势而超越CPU? FPGA在哪些任务上具有比CPU更高的性能功耗比?
注意:标记为社区wiki。
[没有链接,只有我的思考]
FPGA本质上是硬件的解释器!其架构类似于专用ASIC,但为了快速开发,你需要付出大约10倍的频率和不知道多少倍的功率效率。
因此,只要有任何任务,其中专用硬件可以大幅度优于CPU,就将FPGA 10/[?]因素除以,你可能仍然会获胜。这种任务的典型特点:
编辑:其中几个条件(尤其是固定的数据流和许多独立的任务要处理)也使得CPU可以进行位切片,这在某种程度上平衡了局面。
最大的部件有3960个乘法器!还有142,200个片,每个片可以是一个8位加法器。(每个片有4个6位LUT或者8个5位LUT,具体取决于配置)
对于纯速度: - 可并行的任务 - DSP,例如视频滤镜 - 数据移动,例如DMA