预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN108897616A(43)申请公布日2018.11.27(21)申请号201810560673.0(22)申请日2018.06.04(71)申请人四川大学地址610065四川省成都市武侯区一环路南一段24号(72)发明人滕奇志张耀王润涵何小海卿粼波熊淑华(51)Int.Cl.G06F9/50(2006.01)G06F8/40(2018.01)权利要求书2页说明书8页附图9页(54)发明名称基于并行运算的非下采样轮廓波变换优化方法(57)摘要本发明公开了一种基于并行运算的非下采样轮廓波变换优化方法,包括以下步骤(1)根据GPU和CPU配置情况,计算执行NSCT算法中多尺度分解与不同级别方向分解所需要启用的GPU数目和开启的CPU线程数,以及分配给每个GPU的实际计算量;(2)对NSCT分解与重构过程进行并行性分析,发现可以将图像数据移动至GPU,计算卷积,计算结果回存等过程进行并行处理;(3)使用OpenMP和CUDA并行执行NSCT分解和重构过程。本发明方法可以通过并行执行数据移动、像素级并行计算卷积等过程,显著提高NSCT运算速度,降低运行时间,提高NSCT算法的实用性。CN108897616ACN108897616A权利要求书1/2页1.基于并行运算的非下采样轮廓波变换优化方法,其特征在于:包括以下步骤:(1)将NSCT算法的matlab源码通过matlab2cpp工具,使用Armadillo库和OpenBLAS库,工具翻译转换为C++代码;(2)对步骤(1)中使用工具翻译转换得到的C++代码进行人工修正,包括计算精度的修正等;(3)根据GPU和CPU配置情况,计算执行NSCT算法中多尺度分解与不同级别方向分解所需要启用的GPU数目和开启的CPU线程数,以及分配给每个GPU的实际计算量;(4)对NSCT分解与重构过程进行并行性分析;(5)使用OpenMP和CUDA并行执行NSCT分解过程;(6)使用OpenMP和CUDA并行执行NSCT重构过程。2.根据权利要求1所述的基于并行运算的非下采样轮廓波变换优化方法,其特征在于:所述步骤(3)中:(i)根据已有的GPU计算能力大小,对其进行排序;(ii)若执行多尺度分解,则选取计算能力最强的两个GPU分别计算与低通塔式滤波器H0(z)和带通塔式滤波器H1(z)的卷积;(iii)若执行1级和2级方向分解,选取计算能力最强的两个GPU分别计算与第1级的方向滤波器组的U0(z)和U1(z)的卷积;(iv)若执行3级及更高级方向分解:首先确定启用GPU数量:按照计算能力排序的GPU队列;假设启用GPU数量为1,只开启计算能力最强的GPU,即队列中0号GPU,依次用1号,2号,3号……GPU的计算能力与总任务数减1得到的定值进行乘积,结果和0号GPU计算能力值比较;若小于0号GPU计算能力值,则不开启该GPU;若大于0号GPU计算能力值,则开启该GPU;接着将已开启的GPU数量与CPU核数比较,如果已开启GPU数量大于CPU核数,则只开启同CPU核数相等数量的GPU;分配给已开启GPU任务数:将已开启的GPU的队列末尾的GPU的计算能力设为1,按比例设置各个GPU的计算能力数值,若出现小数的数值则进行上取整;此时的GPU队列中各个GPU计算能力数值为整数,且最末的GPU计算能力为1;将任务数按照队列中各个GPU计算能力比例分配给各个GPU,若出现小数则下取整,若出现分配的任务总数小于实际任务数,则0号GPU任务数加1,直至分配的任务总数等于实际任务总数;若出现出现分配的任务总数大于实际任务数,则从末至前依次将GPU的任务数减至1,直至分配的任务总数等于实际任务总数。3.根据权利要求1所述的基于并行运算的非下采样轮廓波变换优化方法,其特征在于:所述步骤(4)中:并行性分析中,包括分解过程和重构过程的分析;(i)分析分解过程:首先将图像数据移动至多个GPU:要移动至不同的GPU的数据序列之间没有相关性,这一过程可以使用OpenMP并行实现;其次,图像数据与滤波器进行卷积时,对于多尺度分解,图像数据要分别与低通塔式滤波器和带通塔式滤波器进行卷积;对于多方向分解,图像数据要分别与非下采样方向滤波器组进行卷积,与不同的滤波器进行卷积时互不影响,这一过程可以通过OpenMP进行CPU并行控制多个GPU并行完成计算;图像中不同的像素点在做卷积过程中没有直接关联,这一过程可以使用CUDA并行实现;最后,将计算2CN108897616A权利要求书2/2页结果回存时,将不同GPU的计算结果返回至CPU这一过程可以使用OpenMP并行实现;(ii)分析重构过程:由于重构过程和分解过程是相互逆过程,对于并行度的分析是相同的。4.根据权