弱弱的问一下,用FPGA能否搭建一个并行的BP神经网络?

[复制链接]
3289|14
 楼主| acone 发表于 2013-5-28 10:33 | 显示全部楼层 |阅读模式
由几十个神经元互联而成,总共大概需要几十个加法器、几百个乘法器和几十个sigmoid传递函数(f(x)=1/(1+exp(-x))),都是浮点数。
如果不能的话,那么一个FPGA芯片能搭建几个神经元?一个神经元由一个乘法器、一个加法器和一个sigmoid传递函数组成。
用这个方法做出来的神经网络能比PC机速度高出几个数量级?
lwq030736 发表于 2013-5-28 12:13 | 显示全部楼层
看你对速度有什么要求吧,速度没要求的话肯定可以
GoldSunMonkey 发表于 2013-5-28 23:12 | 显示全部楼层
用XILINX的HLS试一下吧
GoldSunMonkey 发表于 2013-5-28 23:12 | 显示全部楼层
lwq030736 发表于 2013-5-28 12:13
看你对速度有什么要求吧,速度没要求的话肯定可以

那肯定
 楼主| acone 发表于 2013-5-29 02:45 | 显示全部楼层
深夜回复:我的要求是速度尽可能的快,最好能几十个神经元并行运行,实在不行搭建一个神经元也可以,总比软件实现快得多吧?
lwq030736 发表于 2013-5-29 08:30 | 显示全部楼层
全部都要求一定要用浮点数吗?32位的定点数精度是否能达到要求?
 楼主| acone 发表于 2013-5-29 08:36 | 显示全部楼层
回楼上:不一定要浮点数,32位的定点数精度应该能达到要求。
lwq030736 发表于 2013-5-29 08:52 | 显示全部楼层
定点数的乘法器和加法跑到100M没问题,传递函数可能你需要转换一下,这么直接的算的话速度肯定很慢的
可以参考下快速傅立叶变换的算法对该函数进行变换,当然我没做过快速傅立叶变换,只是提一个想法,不一定正确
GoldSunMonkey 发表于 2013-5-29 23:48 | 显示全部楼层
acone 发表于 2013-5-29 08:36
回楼上:不一定要浮点数,32位的定点数精度应该能达到要求。

用HLS来完成吧
GoldSunMonkey 发表于 2013-5-29 23:48 | 显示全部楼层
lwq030736 发表于 2013-5-29 08:52
定点数的乘法器和加法跑到100M没问题,传递函数可能你需要转换一下,这么直接的算的话速度肯定很慢的
可以 ...

我觉得并行的路数也很关键啊
GoldSunMonkey 发表于 2013-5-29 23:49 | 显示全部楼层
acone 发表于 2013-5-29 08:36
回楼上:不一定要浮点数,32位的定点数精度应该能达到要求。

想法用C实现吧
ChaiTF 发表于 2013-5-30 20:49 | 显示全部楼层
GoldSunMonkey 发表于 2013-5-29 23:49
想法用C实现吧

这个怎么玩呢?
 楼主| acone 发表于 2013-6-4 09:11 | 显示全部楼层
回金阳猴版主:C语言的我已经在PC机上实现,但是这种串行的运算方式速度太慢,达不到我的要求。最好能把速度提高100倍以上。
lwq030736 发表于 2013-6-4 14:02 | 显示全部楼层
我觉得你可以先在matlab 上用DSP builder 先实现,并仿真,然后评估下资源和速度是否能达到你的要求
lwq030736 发表于 2013-7-5 16:29 | 显示全部楼层
能给一个神经元的完整公式我吗?
神经元的互联方式也给出最好,是各自独立运行还是串并互联运行?
我编译下看看最快能跑到什么速度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

45

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部