Releases: xddcore/OpenNNA
Test_Dataset
PE_Network_Sim_VisualStudio
使用VisualStudio进行PE的算法验证,C语言仿真代码用visual studio可直接运行。
文件说明:
1.PE_Network_Sim_VisualStudio: 内含Network的算法验证。对应论文里面的Network,将整个网络的每个层(卷积,池化等)作为一个整体放入FPGA中,然后实现对输入矩阵(程序中有一个数组装着输入矩阵)进行数字识别操作。程序最后输出的是置信度的值。权重存储在BlockRAM中。(在c语言里面的语法特性就是将权重存储在数组中)
整个网络仅有一个AXI总线,一边负责输入,一边负责输出。
文件中放置数字8,运行结果:
//number:8
//result on pc:
//-1.147566
//-5.518320
//-2.492355
//-0.294776
//-3.960088
//-1.238211
//-1.051028
//-5.012868
//3.471442
//-1.777201
//result on fpga:
//-1.054688
//-5.644531
//-2.390625
//-0.214844
//此处省略
2.PE_ConvPooletc_Sim_VisualStudio:内含Conv,pool等算子的算法验证。对应论文里面将所有每类神经网络层 封装成单独的process element,然后每个process element分别通过AXI总线与ARM核连接。
OpenNNA_HLS_Network_230713
Network HLS工程Bug现已修复:
Bug原因:项目开发过程中换了电脑,错误的迁移了旧的HLS的代码和由新HLS代码生成的IP Core。最终,没有把最新的HLS工程代码迁移。
(技术层面的Bug原因是: 每次计算中,需要清空计算中间量。清空了上一次计算结果,避免影响本次计算。)
本Releases已包含IP Core:
(见OpenNNA_HLS_Network230713.zip/OpenNNA_HLS_Network/output_ipcore/20230712)。
如果需要自己导出IP Core,请clone最新源码进行打包。
PS:打包IP Core时如遇ERROR: [IMPL 213-28] Failed to generate IP,则尝试将Windows系统时间更改为2021年,即可解决问题。
最新的cpp仿真代码可见:https://github.com/xddcore/OpenNNA/tree/main/hls/network/sim
cpp仿真代码中放置数字8,运行结果:
//number:8
//result on pc:
//-1.147566
//-5.518320
//-2.492355
//-0.294776
//-3.960088
//-1.238211
//-1.051028
//-5.012868
//3.471442
//-1.777201
//result on fpga:
//-1.054688
//-5.644531
//-2.390625
//-0.214844
//此处省略
Network IP Core(已验证)
由于Release中的工程出现IP Core Bug(见https://github.com/xddcore/OpenNNA/issues/1)。
在此提供验证后的Network IP Core,使用如下IP Core替换原有工程中的IP Core即可。
更多示例工程参考: https://github.com/xddcore/NutShellTeam/releases/tag/ALIENTEK-NAVIGATOR-7020
OpenNNA_Vivado_Network
使用Vivado 2019.1构建的工程。可以进行local和tcp/ip测试。
- 确保开发板链接上路由器,并获取到IP地址(DHCP/静态IP)。
- 在电脑上运行/sdk/tcpip目录下的python程序(注意将python程序中的IP地址更改为开发板实际的IP)。
- 即可完成通信。