WalkerLau / Accelerating-CNN-with-FPGA

This project accelerates CNN computation with the help of FPGA, for more than 50x speed-up compared with CPU.
Other
725 stars 185 forks source link

请问怎样仅采用CPU来做对比? #1

Closed DANI1027 closed 4 years ago

DANI1027 commented 5 years ago

您好,跑了一下您提供的代码,成功了,是采用CPU+FPGA加速系统来处理算法的。那怎样仅采用CPU来做对比呢?不把那2个函数标记成硬件函数,直接编译么?

还有就是我这个上板测试抽取第1张图得到的时钟数和您提供的截图里的时钟数不一样,请问是为什么呢?用时钟数来评判哪个更快是否准确呢(因为主频不一样)?求解答,谢谢~~

这是我抽取第1张图的时钟数: param loop --- begin param loop --- done Subnet load --- done ---as index :3 Subnet load --- done ---as index :10 matrix_procuct clock = 12537 matrix_procuct clock = 3915 matrix_procuct clock = 6205 matrix_procuct clock = 3826 matrix_procuct clock = 4635 matrix_procuct clock = 4068 matrix_procuct clock = 3597 Similarity of this pic is: 0.999999 Finish extracting image ---------------------------------------------------------------- ---------------------1

WalkerLau commented 5 years ago

你好! 是的,取消标记两个硬件函数并编译即可获得仅用CPU运行的版本。 可能因为不同设备的硬件存在细微差别,导致结果会有些许变动。不过根据你反馈的数据来看,这个差异是极小且可以忽略的。 我当时设置的时钟数只是为了方便比较在同一设备上运行的不同开发版本的性能差异,不同设备间的性能还应参考主频等前提。

DANI1027 commented 5 years ago

谢谢解答!我的开发板型号也是zcu102,我前两天试过了对比实验,就是不标记硬件函数直接运行,可是得到的数据跟您提供的实在差太多了(时钟周期数是您提供的数据的10倍左右),请问仅用对比实验的话,还需要更改其他的吗?

这是我抽取第1张图的时钟数(未标记硬件函数): Subnet load --- done ---as index :3 Subnet load --- done ---as index :10 matrix_procuct clock = 1545459 matrix_procuct clock = 2457049 matrix_procuct clock = 6663415 matrix_procuct clock = 3007071 matrix_procuct clock = 4502881 matrix_procuct clock = 3377449 matrix_procuct clock = 2253794 Similarity of this pic is: 0.999999 Finish extracting image -------------------------------------------------------------------------------------1

WalkerLau commented 5 years ago

我明白你的意思了,不过我也不能确定为什么会出现在CPU only的情况下,时钟数比我所得结果大的情况。 我的结果就是untoggle这两个硬件函数所测得的。 推测的原因可能有:

  1. 检查是否可以更新实验板的硬件驱动
  2. 确定是否运行的是本repo下的seetaface代码,因为即使在CPU only的情况下,原seetaface代码在运行时比本repo的要慢。
DANI1027 commented 5 years ago

再次感谢解答! 我做对比实验的时候,前面的步骤没有变,用的就是同一个代码,然后没有标记硬件函数。 我还尝试了另一个做法,就是注释掉了所有优化指令(prama相关的代码),也没有标记硬件函数,得到的结果跟以上实验的结果是一样的。 如果注释了优化指令,再标记成硬件函数编译,会编译失败。

那我自己再找找原因吧~总之感谢~

zcb1995 commented 5 years ago

您好,请问您关于做这方面有关的毕业文章可以看一下嘛,952155290@qq.com,这是我邮箱,不胜感激!

WalkerLau commented 5 years ago

您好,请问您关于做这方面有关的毕业文章可以看一下嘛,952155290@qq.com,这是我邮箱,不胜感激!

不好意思,这个不可以给你哦

xiansenzhao commented 4 years ago

前辈啊,你的代码在ZYNQ可以跑吗?

WalkerLau commented 4 years ago

这个没有试过,要支持SDSOC,而且资源要足够,我这个消耗了ZCU102大概50%的资源你可以对比一下

---原始邮件--- 发件人: "xiansenzhao"<notifications@github.com> 发送时间: 2020年6月16日(周二) 下午3:53 收件人: "WalkerLau/Accelerating-CNN-with-FPGA"<Accelerating-CNN-with-FPGA@noreply.github.com>; 抄送: "Comment"<comment@noreply.github.com>;"WalkerLau"<walker.lau@qq.com>; 主题: Re: [WalkerLau/Accelerating-CNN-with-FPGA] 请问怎样仅采用CPU来做对比? (#1)

前辈啊,你的代码在ZYNQ可以跑吗?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

RosabanksiaeAit commented 4 years ago

您好,跑了一下您提供的代码,成功了,是采用CPU+FPGA加速系统来处理算法的。那怎样仅采用CPU来做对比呢?不把那2个函数标记成硬件函数,直接编译么?

还有就是我这个上板测试抽取第1张图得到的时钟数和您提供的截图里的时钟数不一样,请问是为什么呢?用时钟数来评判哪个更快是否准确呢(因为主频不一样)?求解答,谢谢~~

这是我抽取第1张图的时钟数: param loop --- begin param loop --- done Subnet load --- done ---as index :3 Subnet load --- done ---as index :10 matrix_procuct clock = 12537 matrix_procuct clock = 3915 matrix_procuct clock = 6205 matrix_procuct clock = 3826 matrix_procuct clock = 4635 matrix_procuct clock = 4068 matrix_procuct clock = 3597 Similarity of this pic is: 0.999999 Finish extracting image ---------------------------------------------------------------- ---------------------1

您好,请问您下板的时候是进入了SD卡目录然后执行elf文件吗?

WalkerLau commented 4 years ago

您好,跑了一下您提供的代码,成功了,是采用CPU+FPGA加速系统来处理算法的。那怎样仅采用CPU来做对比呢?不把那2个函数标记成硬件函数,直接编译么? 还有就是我这个上板测试抽取第1张图得到的时钟数和您提供的截图里的时钟数不一样,请问是为什么呢?用时钟数来评判哪个更快是否准确呢(因为主频不一样)?求解答,谢谢~~ 这是我抽取第1张图的时钟数: param loop --- begin param loop --- done Subnet load --- done ---as index :3 Subnet load --- done ---as index :10 matrix_procuct clock = 12537 matrix_procuct clock = 3915 matrix_procuct clock = 6205 matrix_procuct clock = 3826 matrix_procuct clock = 4635 matrix_procuct clock = 4068 matrix_procuct clock = 3597 Similarity of this pic is: 0.999999 Finish extracting image ---------------------------------------------------------------- ---------------------1

您好,请问您下板的时候是进入了SD卡目录然后执行elf文件吗?

是的,在路径 /media/card 中

RosabanksiaeAit commented 4 years ago

谢谢!

------------------ 原始邮件 ------------------ 发件人: "WalkerLau/Accelerating-CNN-with-FPGA" <notifications@github.com>; 发送时间: 2020年7月31日(星期五) 晚上6:01 收件人: "WalkerLau/Accelerating-CNN-with-FPGA"<Accelerating-CNN-with-FPGA@noreply.github.com>; 抄送: " "<1370392334@qq.com>;"Comment"<comment@noreply.github.com>; 主题: Re: [WalkerLau/Accelerating-CNN-with-FPGA] 请问怎样仅采用CPU来做对比? (#1)

您好,跑了一下您提供的代码,成功了,是采用CPU+FPGA加速系统来处理算法的。那怎样仅采用CPU来做对比呢?不把那2个函数标记成硬件函数,直接编译么? 还有就是我这个上板测试抽取第1张图得到的时钟数和您提供的截图里的时钟数不一样,请问是为什么呢?用时钟数来评判哪个更快是否准确呢(因为主频不一样)?求解答,谢谢~~ 这是我抽取第1张图的时钟数: param loop --- begin param loop --- done Subnet load --- done ---as index :3 Subnet load --- done ---as index :10 matrix_procuct clock = 12537 matrix_procuct clock = 3915 matrix_procuct clock = 6205 matrix_procuct clock = 3826 matrix_procuct clock = 4635 matrix_procuct clock = 4068 matrix_procuct clock = 3597 Similarity of this pic is: 0.999999 Finish extracting image ---------------------------------------------------------------- ---------------------1

您好,请问您下板的时候是进入了SD卡目录然后执行elf文件吗?

是的,在路径 /media/card 中

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

RosabanksiaeAit commented 4 years ago

请问您记得您板子上的switch是怎么设置的吗?

------------------ 原始邮件 ------------------ 发件人: "WalkerLau/Accelerating-CNN-with-FPGA" <notifications@github.com>; 发送时间: 2020年7月31日(星期五) 晚上6:01 收件人: "WalkerLau/Accelerating-CNN-with-FPGA"<Accelerating-CNN-with-FPGA@noreply.github.com>; 抄送: " "<1370392334@qq.com>;"Comment"<comment@noreply.github.com>; 主题: Re: [WalkerLau/Accelerating-CNN-with-FPGA] 请问怎样仅采用CPU来做对比? (#1)

您好,跑了一下您提供的代码,成功了,是采用CPU+FPGA加速系统来处理算法的。那怎样仅采用CPU来做对比呢?不把那2个函数标记成硬件函数,直接编译么? 还有就是我这个上板测试抽取第1张图得到的时钟数和您提供的截图里的时钟数不一样,请问是为什么呢?用时钟数来评判哪个更快是否准确呢(因为主频不一样)?求解答,谢谢~~ 这是我抽取第1张图的时钟数: param loop --- begin param loop --- done Subnet load --- done ---as index :3 Subnet load --- done ---as index :10 matrix_procuct clock = 12537 matrix_procuct clock = 3915 matrix_procuct clock = 6205 matrix_procuct clock = 3826 matrix_procuct clock = 4635 matrix_procuct clock = 4068 matrix_procuct clock = 3597 Similarity of this pic is: 0.999999 Finish extracting image ---------------------------------------------------------------- ---------------------1

您好,请问您下板的时候是进入了SD卡目录然后执行elf文件吗?

是的,在路径 /media/card 中

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.