Hetcompute image processing example (2)

本文介绍了使用HetCompute SDK实现GPU、CPU、DSP协同工作的并行编程案例,通过实例展示了如何利用并行模式提高照片去噪任务的处理效率。

一、Hetcompute 并行编程综述
HetCompute并行模式提供了可以进行数据交互的数据存储区,通过原子操作可以实现对数据的访问。HetCompute提供的API可以创建任务函数和申请空间,并可以在任务函数实现过程中访问内存数据。

二、实现过程
1)实例简介:
在本次实例中,主要实现了GPU、CPU、DSP基于Heterogeneous Compute SDK 协同工作,对照片去噪,并返回所需时间。
2)部分函数介绍:
在这里插入图片描述上图中使用函数申请了三个内存空间,并同时创建四个任务,ct1、ct2为CPU任务,dt、gt为DSP和GPU的任务,并通过函数确定它们的执行顺序,最后通过SDK实现去噪任务中CPU、GPU、DSP之间数据的传递。
CPU主要负责了原始图片的加载,去噪后图片的输出工作。
DSP主要实现了图片权重的初始化,然后传值给GPU。
GPU主要负责了去噪算法模块。GPU的启动执行在创建任务传参中已经进行了实现,因此在调用GPU处理算法计算部分时,只需要调用创建的任务即可。
通过wait_for()函数,实现所有任务顺序完成。
此处通过Heterogeneous Compute SDK提供的函数创建了三个缓冲区用作任务调度中的数据处理,将一个图片去噪任务实现了简化。每个处理器只需要处理一部分的数据,完成后数据传给下一位,充分的调用到了每一个硬件,真正意义上实现了并行处理。
在这里插入图片描述 上图中时GPU算法处理部分的去噪算法实现过程,调用GPU对CPU加载的图片数据进和DSP初始化的图片权重数据进行去噪处理,并返回去噪后的数据,放在上面提到的缓冲区中,供CPU进行调用。最终实现图片去噪这一流程。
在这里插入图片描述 上图为DSP初始化图片权重。DSP的启动加载在mian()函数中已经实现,通过调用对应dsp处理函数,加载.so文件启动DSP处理任务,dsp运算速度最慢,因此此处只是让它对部分数据进行初始化。最终的去噪算法的实现在速度最快的GPU中实现。
在这里插入图片描述
通过上图定义的路径,可以把处理好的图片拿到PC端。此任务通过CPU进行了实现。
三、实验结果分析
在这里插入图片描述 通过上图可以看出,在通过Heterogeneous Compute SDK提供的方法,我们可以很轻易地实现GPU、CPU、DSP协同工作,大大提高了任务的处理效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值