首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FPGA中的神经网络仿真器?

问FPGA中的神经网络仿真器?
EN

Stack Overflow用户
提问于 2010-02-03 16:01:56
回答 8查看 26.2K关注 0票数 27

为了学习FPGA编程,我计划在FPGA中编写一个简单的神经网络(因为它是大规模并行的;这是少数几个FPGA实现可能比CPU实现更快的事情之一)。

虽然我熟悉C编程(10+年)。我对FPGA开发的东西不是很确定。你能提供我应该做什么/学习什么/购买什么的指导性列表吗?

谢谢!

EN

回答 8

Stack Overflow用户

发布于 2015-08-28 19:18:06

Necroposting,但对于像我这样遇到这个问题的其他人来说,有一个an in-depth, though old, treatment of implementing neural networks using FPGAs

自从我发布这篇文章已经三年了,但它仍然在被浏览,所以我想我应该再添加两篇我最近发现的去年的论文。

第一个是关于FPGA Acceleration of Convolutional Neural Networks的。Nallatech完成了这项工作。它比学术论文更具市场营销性,但仍然是一本有趣的读物,对于对实验感兴趣的人来说,这可能是一个起点。我和Nallatech没有任何联系。

第二篇论文来自英国伯明翰大学,由浩玉峰撰写。它介绍了A General Neural Network Hardware Architecture on FPGA。

票数 19
EN

Stack Overflow用户

发布于 2012-10-05 21:30:50

在FPGA上构建“文字”神经网络的大多数尝试很快就达到了路由限制,在P&R提取完成之前,您可能会得到数百个单元,这比您的问题值得等待的时间更长。对NN和FPGA的大部分研究都采用了这种方法,集中在最小的“节点”实现上,并表明扩展现在是微不足道的。

让一个合理大小的神经网络真正工作的方法是使用FPGA来构建一个专用的神经网络数字处理机。在内存芯片中获取初始节点值,为下一个时间戳结果提供第二个内存芯片,并在第三个区域中存储连接权重。通过使用保持内存总线饱和的技术来抽取节点值和连接数据(通过CAS行对节点加载进行排序,使用管道进行预读)。当您将权重与以前的值配对,通过DSP MAC单元运行它们以评估新的节点权重,然后在评估所有连接后向外推送到结果内存区域时,将需要对以前的数据集进行大量的遍历。完成整个timestep后,反转流的方向,以便下一个timestep写回到原始存储区域。

票数 16
EN

Stack Overflow用户

发布于 2010-02-12 09:49:07

我想指出在FPGA中实现神经网络的一个潜在问题。FPGA的路由资源有限。与逻辑资源(flops、查找表、存储器)不同,路由资源很难量化。也许一个简单的神经网络可以工作,但具有网格互连的“大规模并行”网络可能不行。

我建议从OpenCores.org的一个简单核心开始,只是为了熟悉FPGA流程,然后继续构建神经网络的原型。免费下载包含ISIM模拟器的Xilinx WebPack是一个好的开始。以后你可以买一个便宜的dev。使用小型FPGA (例如Xilinx Spartan 3)的电路板来运行您的设计。

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

https://stackoverflow.com/questions/2190470

复制
相关文章

相似问题

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