4

我对学习FPGA开发非常感兴趣。我在这里找到了一堆“FPGA 入门”问题,以及互联网上的其他教程和资源。但我主要对使用 FPGA 作为加速器感兴趣,我无法弄清楚哪些设备实际上会比台式机 CPU 提供加速(比如最近的 i7)。

我目前特别感兴趣的是元胞自动机(以及其他并行环境,如神经网络和基于代理的建模)。我想尝试 3d 或更高维的元胞自动机。我的问题是 - 100 至 200 美元的低成本入门套件是否会提供一些有可能比台式机 CPU 产生显着加速的东西?还是我需要花更多的钱购买更高端的 FPGA?

4

2 回答 2

2

FPGA 可以是一个非常好的加速器,但是(这是一个很大的 BUG)它通常非常昂贵。我们这里有像 beecube、传送器或来自 Dini godzillas 的兼职保姆这样的机器,它们都非常昂贵(>10k 美元),即使使用这些机器,许多应用程序也可以通过标准 cpu 集群或 gpus 更好地加速。当考虑到总拥有成本时,FPGA 会更好一些,因为您通常拥有更好的能源效率。

但是有些应用程序可以加速。在较低的规模上,您可以/应该粗略估计它是否对您的应用程序有价值,但您需要为您的应用程序提供更具体的数字。考虑一个标准的桌面 cpu:通常它至少有 4 个内核(或双核超线程,更不用说矢量单元了),时钟频率为 3 GHz。这导致每秒 12 GCycles 的计算能力。你可以达到 250 MHz 的(便宜的)FPGA(更好的可以达到 500 MHz,但这必须是非常友好的设计和非常好的速度等级),所以你需要大约。50个并行操作,与CPU竞争(实际上它更好一点,因为cpu通常没有1个周期的操作,但它也有向量操作,所以我们是平等的)。

50 操作听起来很多,而且很难,但是是可行的(这里的神奇词是管道)。所以你应该确切地知道你将如何在硬件中实现你的设计以及你可以使用何种程度的并行性。

即使你解决了并行性问题,我们现在也遇到了真正的问题:内存。

上面提到的加速器有这么大的计算能力,它们可以并行做成千上万的事情,但这种计算能力的真正问题是:如何将数据输入/输出。而且你的小规模也有这个问题。在您的台式机中,cpu 向/从内存传输超过 20GB/s(好的 GPU 卡可以达到 100GB/s 甚至更多),而您的 100-200 美元的小型加速器最多(如果幸运的话)1-2 GB /s 每个 PCI-Exp。

如果它对您有价值,则完全取决于您的应用程序(在这里您需要的详细信息远不止:3D 元胞自动机,您必须知道邻域、所需的精度(您是双精度浮点数、单浮点数、整数还是定点...? ),以及您的用例(您是传输初始单元格值,让机器计算 2 天,然后将单元格值传回,还是在每一步之后都需要单元格值(这会在计算时对所需带宽产生巨大影响) ))。

但总的来说,在不知道更多的情况下,我会说:它的价值为 100 美元-200 美元。

但不是因为你可以更快地计算你的元胞自动机(我不相信),而是因为你会学会。您不仅将学习设计硬件和在 FPGA 上进行开发,而且我和我们的学生一起看到,他们总是会获得硬件设计知识,并且对硬件的实际外观和行为方式有更好的理解。当然,您在 FPGA 上所做的一切与 CPU 的内部没有直接关系,但许多人对硬件的总体能力有了更好的感觉,这反过来又使他们成为更有效的软件开发人员。

但我也必须承认:您将付出比 100-200 美元更高的价格:您必须花很多时间在上面。

于 2013-06-14T16:20:48.893 回答
1

免责声明:我为可重构系统开发商/制造商工作。

对您的问题“100 美元至 200 美元的低成本入门套件是否提供有可能比台式机 CPU 产生显着加速的东西”的简短回答可能不是。

更长的答案:

微处理器是一组固定的、共享的功能单元,经过调整,可以在广泛的应用中表现得相当好。操作系统和编译器在确保正确使用这些固定的、共享的功能单元方面做得很好。

基于 FPGA 的系统从专用、密集的计算效率中获得性能。您可以准确地创建执行应用程序所需的内容,不多也不少 - 您创建的任何内容都不会与任何其他用户、进程、操作系统等共享。如果您需要 80 个浮点单元,您可以创建 80 个并行运行的专用浮点单元。将其与在一些较少数量的浮点单元上调度浮点运算的微处理器进行比较。为了获得比微处理器更快的性能,您必须实例化足够多的基于 FPGA 的专用功能单元,以实现与微处理器相比的性能差异。这通常需要较大 FPGA 器件中的资源。

仅 FPGA 是不够的。如果您在 FPGA 中创建大量高效的计算引擎,您必须保持这些引擎提供数据。这需要一些高带宽连接到 FPGA 周围的大量数据存储器。您经常看到基于 I/O 的 FPGA 卡的一些潜在性能增益通常会因在 I/O 总线上来回移动数据而减少。

作为数据点,我的公司使用 Altera 的 '530 Stratix IV FPGA。我们用几个直接耦合的存储器包围它,并将这个子系统直接连接到微处理器存储器中。对于许多应用,我们比微处理器系统有几个优势,但这不是 100 到 200 美元的入门套件,而是一个成熟的集成系统。

于 2013-06-14T15:16:20.950 回答