首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FPGA上的并行处理。如何开始呢?

问FPGA上的并行处理。如何开始呢?
EN

Stack Overflow用户
提问于 2011-10-22 07:56:44
回答 2查看 7.9K关注 0票数 3

我有一个计算密集型任务,我使用CUDA来实现它,现在我想用FPGA(如果可能的话)让它更快。

我想要实现的系统是一系列的计算,每个计算在并行意义上都类似于矩阵乘法。它之间也有一些不平行的部分。它可以处理大量的数据。

虽然我希望它尽快,但我有足够的时间来学习和探索FPGA。

在这里,我在询问我如何开始我的道路的建议?选择哪种FPGA以及在哪里了解它。有任何网站或在线课程或书籍吗?不管怎样,我已经决定这样做了,但是你的想法在FPGA上是否会更快也是有帮助的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-24 17:51:22

FPGA通过使用GPU获得的最大优势来自:

  • 使用针对您的应用程序优化的非标准字宽。这允许更密集的逻辑,从而允许更多的并行处理块
  • 使用您对所需的外部随机存取的知识来在硬件中更有效地调度它们,而不是通用内存控制器。

缺点是将数据传入和传出FPGA。在开始之前先画一个数据传输图。即使FPGA提供了无限的加速,如果有大量的数据需要来回混洗,您可能仍然会发现这并不值得!

很可能你会想要一块基于PCI express的主板。在你开始使用FPGA之前,这是一个全新的学习曲线--但如果你准备好了,这将是一项非常有趣的任务!

在选择FPGA方面,尝试使用来自不同供应商的软件工具-在学习阶段,这比芯片本身更重要。你不会(在这个早期学习阶段)在任何不同的芯片中发现一个令人惊叹的特性。还要考虑具有所需接口的主板的可用性,以及您可能需要进行高速接口的任何IP核心(例如PCIe)

票数 2
EN

Stack Overflow用户

发布于 2011-10-22 09:05:28

在使用FPGA的大多数并行问题上,您可以获得显著的加速比。

但是,除了在FPGA上实现计算之外,还需要做大量的工作来从CPU/主存中来回获取数据。这将需要在FPGA逻辑中实现(例如) PCI Express端点(用于最大速度的总线主控)和软件侧的自定义驱动程序。大多数操作系统都需要在内核模式下开发这些驱动程序。

而且,您也不能只使用最直接的方法进行FPGA编程。为了最大限度地提高吞吐量,您需要考虑流水线和时钟同步。

换句话说,即使对于拥有多年FPGA经验的工程师来说,这也是一项艰巨的任务。我强烈建议你找个人一起做这件事。根据你的项目的专有程度,你可能会发现有经验的学者愿意与你合作,只要你向他们提供所有材料和出版权。

如果你决定单干,你需要一些硬件。许多不同的公司提供了连接成加速器的FPGA,例如http://www.nallatech.com/pci-express-cards.html。

根据您选择的是Xilinx还是Altera FPGA,您会找到相当多的示例代码和使PCI express正常工作的教程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7856487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档