HipaccVX:OpenVX 与基于 DSL 的代码生成的结合
计算机视觉与模式识别
2020-08-31 v1 分布式、并行与集群计算
编程语言
摘要
为异构平台编写经优化以达高性能的程序是困难的,因为这要求代码在底层以特定架构优化进行调优,而这些优化大多基于根本不同的编程范式与语言。OpenVX 承诺以基于图执行模型的免版税行业标准解决计算机视觉应用的这一问题。然而,OpenVX 的算法空间受限于一小部分视觉函数。这阻碍了加速标准未包含的计算。在本文中,我们分析 OpenVX 视觉函数以找出一组正交的计算抽象。基于这些抽象,我们将已有的领域特定语言(DSL)后端耦合到 OpenVX 环境,并为程序员提供用于定义用户自定义节点的语言构造。以此方式,我们实现了使用标准计算机视觉函数的 OpenVX 图实现无法检测的优化。这些优化在我们的基准测试中将 Nvidia GTX GPU 的吞吐率翻倍,并将 Xilinx Zynq FPGA 的资源占用减少 50%。最后,我们展示所提出的称为 HipaccVX 的编译器框架能够取得优于最先进方法 Nvidia VisionWorks 和 Halide-HLS 的结果。
引用
@article{arxiv.2008.11476,
title = {HipaccVX: Wedding of OpenVX and DSL-based Code Generation},
author = {M. Akif Özkan and Burak Ok and Bo Qiao and Jürgen Teich and Frank Hannig},
journal= {arXiv preprint arXiv:2008.11476},
year = {2020}
}