我对学习FPGA开发非常感兴趣。我在这里找到了一堆“FPGA入门”的问题,还有互联网上的其他教程和资源。但我主要感兴趣的是使用FPGA作为加速器,我不知道哪些设备可以提供比台式机CPU更快的速度(比如最近的i7)。
目前我特别感兴趣的是细胞自动机(以及其他并行环境,如神经网络和基于代理的建模)。我想用3d或更高维度的元胞自动机来做实验。我的问题是-低成本的100-200美元的初学者工具包是否会提供一些有潜力的东西,使其在桌面CPU上有显着的速度?或者我需要花更多的钱去买一个更高端的型号的FPGA?
发布于 2013-06-15 00:20:49
FPGA可以是一个非常好的加速器,但是(这是一个很大的错误)它通常非常昂贵。我们这里的机器,如BE厄瓜多尔,运输或从Dini godzillas兼职保姆,他们都非常昂贵(>10K美元),即使与这些机器,许多应用程序可以更好地加速与标准的cpu集群或cpu。当考虑到总拥有成本时,FPGA会更好一些,因为通常会有更好的能源效率。
但是有些应用程序是可以加速的。在较低的规模上,你可以/应该粗略地估计一下你的应用程序是否值得,但你需要为你的应用程序提供更具体的数字。考虑一个标准的deskop cpu:通常它至少有4个核心(或双核,超线程,更不用说向量单元了),时钟频率是3 GHz。这导致了每秒12 GCycles的计算能力。(便宜的) MHz你可以达到250 MHz (更好的可以达到500FPGA,但那必须是非常友好的设计和非常好的速度等级),所以你需要大约。50个并行操作,与CPU竞争(实际上它更好一些,因为cpu通常没有1个周期的操作,但它也有向量操作,所以我们是平等的)。
50操作听起来很多,也很难,但却是可行的(这里的魔术单词是管道)。因此,你应该确切地知道你将如何在硬件中实现你的设计,以及你可以使用的并行程度。
即使你解决了并行性问题,我们现在也要面对真正的问题:内存。
上面提到的加速器有如此多的计算能力,它们可以并行地做成千上万的事情,但这种计算能力的真正问题是:如何将数据传入/传出它们。在你的小范围内,你也有这个问题。在您的桌面PC的cpu传输超过20 GB/秒的内存(良好的GPU卡使100 GB/秒以上),而您的小型加速器为100-200美元最多有1-2 GB/秒(如果你幸运的话)每个PCI-Exp。
如果它对你有价值,完全取决于你的应用程序(这里你需要更多的细节,而不是: 3D细胞自动机),你必须知道邻域,所需的精度(你是双精度,单浮点,整数还是固定点...?),以及你的用例(你是传输初始单元格值,让机器计算2天,然后传输回单元格值,还是在每一步之后需要单元格值(这在计算时需要的带宽有很大的不同))。
但总体而言,在不了解更多的情况下,我会说:它的价值为100-200美元。
但不是因为你可以更快地计算你的元胞自动机(我不相信),而是因为你会更快。你不仅会学习硬件设计和FPGA的开发,而且我看到我们这里的学生,他们总是通过硬件设计知识对硬件的实际外观和行为有更好的理解。当然,你在FPGA上所做的一切都与cpu的内部没有直接关系,但许多人对硬件的总体能力有了更好的感受,这反过来又使他们成为更有效率的软件开发人员。
但我也必须承认:你将付出比100-200美元更高的代价:你必须在上面花费大量的时间。
发布于 2013-06-14 23:16:21
免责声明:我为一家可重构系统开发人员/制造商工作。
一个简短的回答你的问题,“低成本的100-200美元的初学者工具包提供的东西,有可能产生显着的速度超过桌面CPU”可能不是。
一个更长的答案:
微处理器是一组固定的、共享的功能单元,经过调整后可以在广泛的应用程序中很好地运行。操作系统和编译器在确保这些固定的、共享的功能单元得到适当利用方面做得很好。
基于FPGA的系统从专用的、密集的、计算效率中获得其性能。您创建的正是执行应用程序所需的内容,不多也不少-而且您创建的任何内容都不会与任何其他用户、进程、操作系统等共享。如果您需要80个浮点单元,您可以创建80个并行运行的专用浮点单元。与微处理器相比,微处理器在一些较小数量的浮点单元上调度浮点操作。要获得比微处理器更快的性能,您必须实例化足够的基于FPGA的专用功能单元,以使性能与微处理器相比有所不同。这通常需要较大的FPGA设备中的资源。
仅有一个FPGA是不够的。如果你在FPGA中创建了大量高效的计算引擎,你必须为这些引擎提供数据。这需要一定数量的高带宽连接到FPGA周围的大量数据存储器。对于基于I/O的FPGA卡,您经常看到的是,通过在I/O总线上来回移动数据,通常会降低一些潜在的性能增益。
作为数据点,我的公司使用Altera的530Stratix IV FPGA。我们用几个直接耦合的存储器围绕它,并将这个子系统直接连接到微处理器存储器。对于许多应用程序,我们比微处理器系统有几个优势,但这不是一个100-200美元的初学者工具包,这是一个成熟的集成系统。
https://stackoverflow.com/questions/17016830
复制相似问题