gpt4 book ai didi

fpga - 想要开始使用 FPGA——加快速度?

转载 作者:行者123 更新时间:2023-12-01 02:25:15 26 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




8年前关闭。




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

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

最佳答案

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

但是有些应用程序可以加速。在较低的规模上,您可以/应该粗略估计它是否对您的应用程序有值(value),但您需要为您的应用程序提供更具体的数字。考虑一个标准的桌面 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。

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

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

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

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

关于fpga - 想要开始使用 FPGA——加快速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17016830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com