【直播回顾】第六届集创赛海云捷迅杯赛题答疑,你想了解的都在这里~

日期:2022-03-18

第六届集创赛自2022年1月启动以来,海云捷迅杯正火热报名中!

PC端报名地址:https://www.saikr.com/vse/univ/ciciec/6

3月16日,第六届集创赛海云捷迅杯赛题答疑宣讲会在线上举行。本届集创赛的海云捷迅杯赛题,将FPGA与AI应用双剑合璧, Intel FPGA C5Soc,SSD模型框架,CNN加速,百度paddle-paddle框架等众多关键技术与平台融于一体,为参赛团队带来FPGA设计与应用赛道赛题——基于FPGA CNN加速器的SSD_MobileNetV1模型目标检测实现。

特别感谢南开大学在加速器和框架优化中做出的贡献。

在海云捷迅杯赛题宣讲会落下帷幕之际,小编也收到了许多诸多粉丝发来的询问:

  • 小编小编,错过直播宣讲还能观看视频吗?
  • 想再看看海云捷迅杯赛题的视频详解,有没有回放视频?
  • 直播回放视频,求放出~

作为一枚善解人意的小编,小编整理了大家的提问及专家答疑,

有需要的同学们可以继续往下看哦~

Q1 VOC数据集是用2007还是2012的呢?

两个一起使用,因为2012数据集太小了。另外如果是使用PaddleDetection中相关脚本的话,脚本自己就会把两个数据集都下下来使用。

Q2 比赛需要用到HLS吗?

看自己是否需要自行重新开发加速器,如果参赛团队自行开发加速器的话可以使用hls或者verilog等所有FPGA开发语言和手段,只是工作量会比较大。

Q3 交叉编译环境通过SSH远程连接,为什么还要用到虚拟机呢?

使用SSH远程连接的是赛事平台AIEP上的开发板,开发板上的ARM性能拿来编译可执行文件还可以,做其他的(比如PaddleLite)就不合适了。我们提供虚拟机的目的是节约大家去准备开发环境的时间,PaddleLite和加速器驱动这一块是需要开发环境的。

Q4 代码必须要用paddle来写吗?可不可以用pytorch或tensorflow写完转一下模型?

可以,模型训练不限框架。得到的模型可以通过Paddle的模型转化工具转成Paddle的模型。

Q5 请问可以用PaddleX进行模型的训练吗?还是必须要用PaddleDetection?

同上

Q6 可以用ai studio进行训练之类的操作吗?

同上

Q7 PaddleDetection提供的训练过程基本是通过脚本,采用这样的流程算不算训练?

同上,训练用什么方法不进行限制。

Q8 有Ubuntu可以不使用虚拟机吗?

可以,不过需要参赛团队自己去配置相关的环境。

Q9 可以对mobilenet中的层做改动吗?

可以,模型优化不做限制,只要满足赛题的精度要求。

Q10 我对于模型算法进行优化可以吗,对骨干网络进行优化可以吗?

同上

Q11 结构化剪枝是自己来进行吗?

是的,这是一个很重要的赛点,做得好的话很拉分的。

Q12 请问cnn_ctl到process控制通路中的信号代表什么含义?

这个问题,我们随后会将这部分内容添加到文档中进行公布。

Q13 请问虚拟机里面有Paddlelite的demo吗?

报名结束后,AIEP中会提供一个可执行的demo程序。但是如果直接使用这个demo程序(包括驱动),那么PaddleLite这一块是不计入成绩的。demo只是一个展示。

目前没有提供PaddleLite修改过后的完整源码的计划,不过我们会在报名结束后提供一个基础的可用版本源码给大家做参考。

Q14 提供的加速器包含BN吗?

包括了,不过是融合在我们的加速器处理流程中的,无法单独使用。

Q15 请问ssd全精度模型.nb文件怎么打开查看?下载了mathematica软件打开后是空的。

打开查看的含义是指运行起来的话,要等到报名结束后,在提供的远程开发平台上使用提供的demo才能将模型跑起来。因为这个全精度模型是经过opt转换的,如果手里有其他arm开发板,可以尝试部署arm版本的Paddle Lite,在arm版本上使用这个全精度模型,应该也能跑出结果。

如果是要模型结构可视化的话,可以用netron.app打开。

Q16 Paddle Lite版本必须是2.9吗,别的版本可以吗?

Paddle Lite必须用2.9版本的,主要有以下两点原因:①新版本可能做了额外的优化;②其他版本可能会产生新的问题,企业不方便进行技术支持。因为Paddle Lite最终是跑在开发板上的,所以要求大家统一使用2.9版本,这样也比较公平。

Q17 请问设计指标帧率不低于2帧,这个推理时间是从什么时候开始的?

推理时间是去掉了框架预处理和后处理之后的时间,框架会进行统计。同时我们的AIEP中自己也会进行统计。

Q18 有提供测精度的代码吗?

没有。

在训练过程中,自行将mAP进行记录,并写入提交的报告中。

在推理过程中,我们主要考察推理精度。Paddle Lite在推理执行的过程中会把推理精度打印出来。

报名结束后,在远程开发平台上也会提供一个demo,可以把模型放上去执行,看识别结果和打印出来推理精度。

综上,首先在模型训练的过程中,通过mAP控制一下,因为模型优化等原因,低于65%的话基本推理精度就没有了;第二,在实际推理过程中看精度是否满足准确识别。

Q19 加速器的code会提供吗?我们可以参考修改。

加速器的code不会提供。比赛提供的加速器是用HLS写的,但不会提供HLS源码,提供的是HLS生成的RTL代码,大家可以去仿真一下。

Q20 从哪可以学习到比赛相关的内容,因为现在是小白,很多都不清楚。

第一步:先去百度飞桨官网,上面有大量的知识库,而且是成体系化的。按照他们知识库上的步骤一步一步地做一遍,从调用脚本、训练模型、下载数据集,然后用PaddleDetection的框架去训练、推理,得出正确的结果。

第二步:利用百度飞桨官网的相关文档研究用PaddleDetection做8bit量化的训练,得到模型再用PaddleDetection推理,得出正确的结果。

第三步:根据海云捷迅提供的文档,如数据重排,做数据重排需要修改一些相关的代码,包括Paddle Lite还有加速器驱动这一块,修改之后,量化的模型在加速器上能得出正确的结果。

第四步:更深一层次的优化。

趁报名还没结束,各团队可以先准备第一步,然后再去想后面的事情。

Q21 零基础备赛,只学过一点Verilog和数电,有什么建议的学习路线吗?

建议同上。

Q22 请问模型最后是检测什么东西呢?

最终会统一提供比赛用的识别图片,识别的东西(label)是和数据集吻合的,不会超出数据集,可以去看一下VOC数据集。

Q23 FPGA硬件上需要实现什么呢,我们团队在讨论分工,所以想请问一下老师这次实现的细节,除了模型剪枝量化这块可以优化,另外可以优化的工作是什么呢?

FPGA硬件上,这次比赛原则上不需要大家做任何事情;不排除个别团队想自己去做加速器,这个也是不限制的,但这样做工作量会比较大。

Q24 不明白FPGA硬件侧还需要用Verilog实现些什么?

同上。

Q25 请问既然加速器的RTL代码是HLS生成的,那如果想修改加速器那只能修改RTL代码吗?还是基本上不需要修改加速器呢?

同上。

Q26 可不可以具体讲一下流程?比如哪个工具做什么,产生什么输出文件等。提供的资料感觉不太清晰。

这个问题涉及的点比较详细,按道理是不会提供这样一个说明的。因为paddle框架的使用、paddle框架的熟悉程度、怎样去优化本身就是赛题考核点,因此不会做过多说明。后续针对大家提出的比较集中的问题,可以集中进行解答,包括框架相关的问题也可以,但不会专门做框架的详细解释。

哪个工具做什么,产生是什么,输出什么按照Paddle知识库里面的文档走一遍,就清楚了。不要只看我们提供的资料。

Q27 BN是怎么fuse的?我们量化的时候也需要fuse吗?

BN层是和Paddledetection的量化层融合到一起的,在paddlelite转化为静态图后,会看到有一个量化层, 里面是缩放参数,这个缩放参数包含了BN层。

Q28 飞桨中同时也提供一些模型库,包括预训练模型,量化模型,这些是可以使用的吗,还是得根据其步骤流程自己操作?

这些模型都可以用;但是如果需要用海云捷迅提供的加速器,需要将模型相关层量化为自定义8bit。但是如果直接使用现成的模型就基本失去了这次比赛的意义,成绩也不会好。

Q29 Quartus用18.0有影响吗?

没有影响,可以使用。

Q30 非加速器的步骤最后运行在开发板arm还是自己的电脑上?

加速器最后执行是在arm上执行,同时调用FPGA进行卷积操作。自己的电脑只是做训练、开发、调试、远程调试等工作。

Q31 加速器本身有说明文档吗,加速器的一些基本参数会提供吗,比如算力?

基于这个问题,我们会为加速器会提供一个接口说明文档,其他的好像对比赛没有帮助,就不提供了。

Q32 Linux驱动数据重排能再解释一下吗?有点不太了解。

这个问题我们后续把文档再细化一下吧。这个本身也是一个赛点,我们最初的想法是让大家去把整个框架搭建起来之后,经过ARM端的调试就能解决数据重排的问题。比如构造数据进行调试,看是否得到正确结果。

Q33 训练模型大概需要多大的GPU显存呢,6GB显卡跑官方的demo一直报显存溢出。

1.修改woker_num数量,尽量改小一点 最好是2,如果实在不行,就改成1。

2.或者将batch_size改小一点。

这个大家多尝试一下。

Q34 cycloneV FPGA 可以胜任这个任务吗?

可以的,赛题解析的PPT里面最后全精度模型(1s)和量化模型(240ms)的展示就是在C5上做的,而且还能做到更快。

Q35 数据重排是在硬件上实现吗?

数据重排是ARM端PaddleLite和FPGA端为了性能优化共同完成的。由于本次比赛FPGA端不需要大家去修改(自行设计加速器除外),所以就需要ARM端去适应FPGA端的数据重排要求。

Q36 请问DE-10-Stand的开发板能否适配于官方的C5工程文件?

理论上是可以的,但是需要做简单的移植,毕竟黄金工程不完全一样。

Q37 想问一下opt转出的protobuf格式的model、params和export工具转出来的__model__、__params__有什么区别?

opt是PaddleLite框架编译出来的模型转换工具,专门为PaddleLite框架转换模型。

 

相信通过这次的答疑解析宣讲会,同学们可以对海云捷迅杯赛题有更加充分地了解,从而能够更好地去准备与发挥。这里也预祝大家在比赛中取得优异的成绩!加油加油!

直播回放视频请关注“海云捷迅”微信公众号,查看。

最新信息