基于ARM + DSP的异构平台优化加速算法

发布日期:2023年5月22日
基于ARM + DSP的异构平台优化加速算法 基于ARM + DSP的异构平台优化加速算法

本内容试读结束

下载后可阅读完整内容,立即下载

OpenCL编程模型应用于ARM + DSP异构多核平台存在核心利用率低、开发效率低等问题。本文基于AM5728异构开发平台,对OpenCL异构编程模型进行研究,提出了异构多核计算动态优化加速算法。分析了动态优化加速算法中的最优分配比例算法和数据划分原则,动态算法会根据运行情况动态调整相应参数。完成了测试系统的设计,对异构计算加速算法的相关参数进行测量,展示了Sobel算法、奇异值分解算法(SVD)分别采用计算加速驱动的结果和OpenCL异构编程模型的结果,分析两种不同方式下算法完成时间情况。测试结果表明优化加速算法使得Sobel算法执行时间降低至原执行时间的72.2%,SVD算法执行时间降低至原执行时间的80.2%。

随着对生物医学信号处理需求的提升,在相当多的应用场景,如远程医疗、实时监护等方面,算法的实时性要求较高。此时,在硬件平台受限情况下,部分算法的实时性已经不能满足应用场景的需求。

算法实时性不足的问题主要由硬件平台的计算能力欠缺导致,因此计算能力限制了医疗电子设备的进一步发展。多核技术的发展引起了许多研究学者和企业的关注[1],将多个架构功能不同的核心集成在一个处理器上的方法被广泛应用于各种嵌入式设备使用场景,用于解决计算量和实时性问题[2] [3]。

ARM + FPGA 异构多核平台被广泛的运用于图像加速,如Xilinx 公司的ZYNQ 系列开发平台,利用FPGA 出色的并行处理能力与ARM 处理器相结合,对图像算法加速有着显著的效果[4]。在人工智能领域采用CPU + GPU 的异构多核架构,其中使用较多的为NVIDIA 公司的GPU,这种架构的异构多核平台利用GPU 强大的并行计算能力,常用来解决计算量较大的问题[5]。在应用程序编写方面,商业公司都有应用于本公司产品的异构并行编程模型,AMD 公司的Rrook + 编程模型、NVIDIA 公司的CUDA 编程模型等[6]。

OpenCL 是适用于多个平台的具有较强兼容性的并行编程模型被广泛使用[7]。

通过改进任务调度算法可以提升核心利用率, 相关静态启发式表调度算法对任务排序和任务调度进行改进, 有效的解决了传统调度算法在异构多核平台上的问题[8] [9]。在应用领域,基于ARM 和DSP 的双核嵌入式视频监控系统,提高了设备的计算响应速度和传输稳定性[10];有学者设计了一款基于ARM + DSP 的腹腔镜语音自动定位系统, ARM 负责系统控制和界面操作,DSP 负责模型的训练和语音识别,进一步提高了系统的准确率和实时性[11]。

针对ARM + DSP 核心的程序编写,OpenCL 异构编程模型被广泛使用,但采用该模型不能充分利用异构多核平台的全部性能[12]。OpenCL 异构编程模型在编写并行程序时需进行复杂的代码编写,需在主机上实现上下文的创建、设备创建等操作;并且在从机执行计算时,易出现主机循环等待从机计算结果的情况,产生了资源的浪费,降低了核心利用率。

2. OpenCL 异构编程模型简介 2.1. OpenCL 平台模型 开放语言OpenCL 拥有很强的跨平台性,广泛支持多种架构的处理器,如CPU、GPU、FPGA、DSP



相关标签