本篇博客介绍 VVAS 框架所支持调用的 H/W(HLS) 内核。 H/W 内核指的是使用 HLS 工具生成的在 FPGA 部分执行的硬件功能模块。
HLS kernel 创建:
我们以 smartcam 的预处理作为例子,相关的代码可以在参考链接中找到。xf_pp_pipeline 的作用是将输入图像的格式从 NV12 转换为 BGR,再进行减均值和归一化操作。xf_pp_pipeline 的实现基于 HLS vision library。Vitis 视觉库是为在 Vitis 开发环境中工作而设计的,它为在 FPGA 设备上加速的计算机视觉功能提供了一个软件接口。Vitis 视觉库的功能大多与 OpenCV 的功能相似。更多的详细说明可以在参考链接中找到。
xf_pp_pipeline_accel.cpp 作为硬件的一部分,需要将它和 platform 结合在一起。v++ 将 HLS kernel 打包为 xo 文件用于后续的硬件集成。
kv260_ispMipiRx_vcu_DP 是 smartcam 应用使用的 platform,xf_pp_pipeline.cpp 打包成 xo 对象后,通过v++ 链接为完整的硬件工程并生成 xclbin 文件。完整的硬件框图如下图所示,红框部分为对应的 HLS kernel。
Kernel 调用:
使用 VVAS 框架为 xf_pp_pipeline.cpp 编写自定义驱动是要实现四个函数,分别是:
xlnx_kernel_start
xlnx_kernel_done
xlnx_kernel_init
xlnx_kernel_deinit
xlnx_kernel_init() 函数读取 json 文件中的 mean_r、mean_g、mean_b、scale_r、scale_g、scale_b。
xlnx_kernel_start() 函数为 HLS kernel 配置参数。
xlnx_kernel_deinit() 函数用来释放不需要的句柄。
xlnx_kernel_done() 函数进行超时检测。
通过这四个函数就完成了 VVAS 自定义插件的设计。在 smartcam 应用运行时,通过命令行 gst-launch-1.0 -v filesrc XXXXXX ! queue ! vvas_xmultisrc kconfig="/opt/xilinx/kv260-smartcam/share/vvas/facedetect/preprocess.json" ! XXXXXX 完成插件的调用。
其中 preprocess.json 的内容为:
本文简要介绍了 VVAS 调用 HLS 生成的硬件加速器的主要流程,更多的细节可以参考 VVAS 手册。
审核编辑:汤梓红
-
FPGA
+关注
关注
1631文章
21806浏览量
606681 -
amd
+关注
关注
25文章
5505浏览量
134751 -
内核
+关注
关注
3文章
1384浏览量
40458 -
硬件加速器
+关注
关注
0文章
42浏览量
12852 -
Vitis
+关注
关注
0文章
147浏览量
7529
原文标题:开发者分享|使用 VVAS 调用硬件加速器
文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
无法导入硬件加速器
利用硬件加速器提高处理器的性能
Veloce仿真环境下的SoC端到端硬件加速器功能验证
![Veloce仿真环境下的SoC端到端<b class='flag-5'>硬件加速器</b>功能验证](https://file.elecfans.com/web1/M00/4E/50/o4YBAFq7MfWAOfQJAAARX94yQtw250.jpg)
基于Xilinx FPGA的Memcached硬件加速器的介绍
OpenHarmony 分论坛-华秋电子新硬件加速器
![OpenHarmony 分论坛-华秋电子新<b class='flag-5'>硬件加速器</b>](https://file.elecfans.com/web2/M00/19/42/pYYBAGFzzaOAI0rrAAgtXOp3h0c122.png)
评论