PYNQ实现opencv加速----文档学习及总结

文章目录

    • HLS学习
        • ug902-vivado-high-level-synthesis
        • ug871-vivado-high-level-synthesis-tutorial
    • opencv HLS
      • reVISION,xfopencv, PYNQ - Computer Vision
      • HLS工具实现opencv加速
        • ug902-vivado-high-level-synthesis
        • xapp1167
        • ug1233
    • PYNQ
        • Python productivity for Zynq
        • PYNQ-HelloWorld

从只知道有这么个东西从来没接触过,到自己慢慢摸索PYNQ,深感文档的重要性,大多数总结性文章都是对文档的总结,这里总结以下相关文档。

HLS学习

最开始是想将自己的opencv算法进行硬件加速,之前流片时用verilig写过一个连通域算法,从逻辑,存储,接口等各个方面进行权衡。实在折磨,所以想用HLS实现。那么首先得了解一下HLS的流程。这里主要读两份文档就够了。

ug902-vivado-high-level-synthesis

这份660页的文档(v2014.3)主要从基本概念,C语言库,可综合编程风格等介绍HLS,这个文档对HLS最基本的东西介绍比较深,不过前期不需要细读,大概了解下有什么内容,需要的时候查看一即可。

ug871-vivado-high-level-synthesis-tutorial

必读! 一看tutorial,就知道,是一个非常详细的指导,是一个step by step的介绍,即使啥都不懂,照做就是了!主要是从最简单的设计流程,到接口介绍,C仿真,数据类型精度,设计一个完整的IP等把涉及到的相关问题都给出了一个介绍。这个强烈建议跟着教程走一遍,有些步骤不懂不要紧,后面会慢慢理解的。
这里我读了v2017.4和v2019.2两个版本,发现在2019.2版本中,第九章Zynq SoC设计,软件开发改为使用Vitis这个Xilinx的同一软件开发平台。而不是再用Vivado,同时从vivado2019.02这个版本开始,vivado不再支持SDK开发,推荐开发者使用Vitis.

opencv HLS

既然要进行opencv加速,就需要对opencv进行综合,这一部分资料相当多,很容易把人搞晕,会遇到Vivado HLS Video Library,xfopencv,PYNQ - Computer Vision,reVISIOND这些个名词。以及xapp1167,ug902,ug1233以及xfopecv2018.03库(GitHub)中的HLS_UseModel_Usage_Doc文档(xfopencv2018.03之后文件夹中就没这个文档了)。这里做一下区分。

reVISION,xfopencv, PYNQ - Computer Vision

这三个概念介绍可以看该文档 reVISION,xfopencv, PYNQ - Computer Vision
而前期想体验一下啊opencv函数利用PYNQ加速,可以直接下载PYNQ - Computer Vision包(GitHub)里面有详细例程,只需要挨个步骤点击运行按钮即可。其对比了软件实现(PS端)和硬件实现(PL)端的性能。

HLS工具实现opencv加速

而如果从学习的角度,还是建议先不管以上三个东西,而是利用HLS生成opencv IP,然后PS端调用的思路。那么主要集中在ug902和xapp1167即可。

ug902-vivado-high-level-synthesis

读完HLS教程后。按照该教程的方法对opencv函数进行加速,然而,我们不能直接对桌面端使用的opencv库直接综合,因为很多函数是不可综合。ug902是一个可综合的函数库,其中包括Vivado HLS Video Library,该库与opencv库有很大的对应关系。

xapp1167

必读! 这是一个专门介绍如何用HLS加速opencv的教程,结合ug902基本完成对Vivado HLS Video Library库中的综合是没有问题的。

ug1233

上面两个文档没问题了,就可以看看这个文档主要是讲xfopencv库的使用,包括使用SDx工具和HLS工具两种方式。

PYNQ

Python productivity for Zynq

官方文档,通读一遍!!!结合网上的一些例程。基本上流程就搞清楚了。

https://github.com/Xilinx/PYNQ

PYNQ-HelloWorld

这是一个pynq实现图片尺寸变换加速的例程,对pynq加速框架有个很好的介绍。与 PYNQ - Computer Vision 可以互相参考。
https://github.com/Xilinx/PYNQ-HelloWorld

你可能感兴趣的:(reVISION,嵌入式,Zynq,MPSoC)