- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,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/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我相信在大学时我用从 C 派生的语言为 FPGA 编写了一个程序。我了解 VHDL 和 verilog 等语言。但是,我不明白的是程序员在使用哪个方面有多少选择?它依赖于FPGA吗?我将使用 Xili
在设计 FPGA 系统时,我如何粗略估计给定任务所需的逻辑 block 数量? 有人对我对这些常见设备的期望有一个粗略的数量级吗? 串口 使用 CRC32 的数据包解帧器 8 微核 我看过 www.o
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是编程和 FPGA 的新手。我喜欢在我的 Windows 10 PC 上运行一个程序,并喜欢将输入发送到 FPGA,当处理完成后,我喜欢接收输出到同一个程序。是否可能以及如何实现。我需要一些指导才能
我有一个基本问题。我为一些媒体应用程序制作了一些 FPGA 图像和 现在我想在性能和面积方面将我的结果与相同算法的 ASIC 实现的结果进行比较。我听说这样的比较没有意义,因为它有点比较苹果和橘子。但
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我正在用一个小算法修改固件文件 (.jic) JTAG 间接配置文件,但更改文件内的数据使其无法使用,因为文件中某处有一个校验和必须更新。 我需要找到 .jic 文件中的校验和在哪里,并破译使用的算法
我想通过 Xilinx FPGA 的 MGT channel 发送信号(不管是什么类型的信号,只是随机二进制)。这是用于测试 PCB 上的 MGT 走线。我可以实现这一目标的最简单方法是什么?对于常规
我正在使用 Xilinx ISE 14.7 合成器。我能够使用 .coe 文件初始化我的 BRAM 并访问它。我也可以使用 data2mem 工具用新的 .mem 文件更新它并更新我的位文件。这里我已
我在使用 Lattice ICE5LP4K 的内部振荡器时遇到问题。根据 iCE40 振荡器使用指南附录,verilog 中的代码应如下所示: SB_HFOSC OSCInst0 (
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 12 个月
我正在尝试在 FPGA 和 x86_64 Linux 机器之间进行 DMA 传输。 在 PC 端,我正在做这个初始化: //driver probe ... pci_set_master(dev);
Xilinx FPGA 中的“切片寄存器”和“切片 LUT”有什么区别? 为什么在 Vertix 5 中切片寄存器的数量等于切片 LUT 的数量,但在 Vertix 6 和 Vertix 7 中切片寄
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
这是平行线: http://anycpu.org/forum/viewtopic.php?f=13&t=66 它有 64 个内核、1GB RAM、运行 Linux、以太网——每个人都在为它大喊大叫..
我正在设计一个基于 xilinx fpga 上的 microblaze 微处理器的微 Controller 。大部分硬件设置已完成。此时我正在更新的是要在 microblaze 上运行的 c 代码。在
在进行时钟域转换(速率匹配)时,我们通常将数据翻倍以避免亚稳态。双翻牌只会降低亚稳的概率。三重翻牌将进一步减少它。 如何计算亚稳定性和使用的时钟域触发器数量之间的概率/关系? 最佳答案 亚稳定性查询的
我知道在使用这些输入之前需要将所有输入同步到 FPGA 以避免亚稳态。我还意识到需要在单个 FPGA 中同步跨时钟域的信号。这个问题与跨越时钟域无关。 我的问题是定期注册 是否是个好主意?全部 的输入
我是一名优秀的程序员,十分优秀!