CN108897616B - 基于并行运算的非下采样轮廓波变换优化方法 - Google Patents

基于并行运算的非下采样轮廓波变换优化方法 Download PDF

Info

Publication number
CN108897616B
CN108897616B CN201810560673.0A CN201810560673A CN108897616B CN 108897616 B CN108897616 B CN 108897616B CN 201810560673 A CN201810560673 A CN 201810560673A CN 108897616 B CN108897616 B CN 108897616B
Authority
CN
China
Prior art keywords
gpu
parallel
gpus
decomposition
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810560673.0A
Other languages
English (en)
Other versions
CN108897616A (zh
Inventor
滕奇志
张耀
王润涵
何小海
卿粼波
熊淑华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan University
Original Assignee
Sichuan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan University filed Critical Sichuan University
Priority to CN201810560673.0A priority Critical patent/CN108897616B/zh
Publication of CN108897616A publication Critical patent/CN108897616A/zh
Application granted granted Critical
Publication of CN108897616B publication Critical patent/CN108897616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种基于并行运算的非下采样轮廓波变换优化方法,包括以下步骤(1)根据GPU和CPU配置情况,计算执行NSCT算法中多尺度分解与不同级别方向分解所需要启用的GPU数目和开启的CPU线程数,以及分配给每个GPU的实际计算量;(2)对NSCT分解与重构过程进行并行性分析,发现可以将图像数据移动至GPU,计算卷积,计算结果回存等过程进行并行处理;(3)使用OpenMP和CUDA并行执行NSCT分解和重构过程。本发明方法可以通过并行执行数据移动、像素级并行计算卷积等过程,显著提高NSCT运算速度,降低运行时间,提高NSCT算法的实用性。

Description

基于并行运算的非下采样轮廓波变换优化方法
技术领域
本发明涉及一种图像的多尺度几何分析方法尤其涉及一种基于并行运算的非下采样轮廓波变换优化的方法,属于图像图像处理技术领域。
背景技术
随着数字图像处理技术,多尺度几何分析等方法的广泛研究,多种基于多尺度几何分析的变换方法相继发展起来。其中最具代表性的变换为Contourlet变换(轮廓波变换),该变换的优势是其基函数分布在多尺度、多方向上,用少量的变换系数就可以有效地捕捉图像的边缘轮廓,弥补了小波变换无法高效地表示图像边缘信息的缺陷。因此,Contourlet变换在图像去噪、图像融合、图像压缩、图像特征提取等方面都有了进一步地应用。但是由于Contourlet变换的过程中进行下采样,导致图像的连续性被破坏。在重构的过程中会出现Gibbs效应,并且Contourlet变换中的拉普拉斯金字塔滤波器分解过程中采用的下采样步骤也会导致图像低频频谱泄漏,在方向滤波器分解过程中的下采样步骤会导致方向频谱混叠,使得方向子带中夹杂其他噪声频谱。同时,下采样还会导致无法精确分析同尺度下方向子带之间的关系。因此Contourlet变换不具有平移不变性。
为此,研究学者们提出了非下采样Contourlet变换,即NSCT(The NonsubsampledContourlet Transform)。通过引入非下采样塔式滤波器组(Nonsubsampled PyramidFilter Banks,NSPFB)和非下采样方向滤波器组(Nonsubsampled Directional FilterBanks,NSDFB)替代Contourlet变换中原有的LP和DFB环节,取消对原始图像的下采样操作,在保证原Contourlet特性的前提下获得了良好的平移不变特性。因此,NSCT在图像的多尺度几何分析领域中的优异表现使其倍受研究者关注,但在实际应用中,特别是针对高分辨率图像,NSCT需要进行多次的迭代滤波及二维卷积,导致NSCT算法的时间开销过大,难以高效地使用在实际应用中。如何提高NSCT运行效率,减少运行时间,是现今急需解决的问题。
发明内容
本发明的目的在于为解决上述问题而提供一种对NSCT的实现进行并行加速,提高计算效率减少运行时间的基于并行运算的非下采样轮廓波变换优化的方法。
本发明所述基于并行运算的非下采样轮廓波变换优化的方法,包括如下步骤:
(1)将NSCT算法的matlab源码半自动翻译转换为C++代码;
(2)对步骤(1)中使用工具翻译转换得到的C++代码进行人工修正;
(3)根据GPU和CPU配置情况,计算执行NSCT算法所需要启用的GPU数目和开启的CPU线程数,以及分配给每个GPU的实际计算量;
(4)对NSCT分解与重构过程中的并行性分析;
(5)使用OpenMP和CUDA并行执行NSCT分解过程;
(6)使用OpenMP和CUDA并行执行NSCT重构过程;
(7)程序调试:按照以上(1)~(6)步编写NSCT的并行程序,对不同分辨率的图像,在不同的实验硬件环境下进行对比实验。
具体地,所述步骤(1)中,通过matlab2cpp工具,使用Armadillo库和OpenBLAS库,进行工具翻译,将matlab源码半自动转换为C++代码。
所述步骤(2)中,对半自动转换得到的C++代码进行人工修正,包括对计算精度的调整等。
所述步骤(3)中,对于多尺度分解和不同级别方向的分解所需要启用的GPU数目和开启的CPU线程数不尽相同,根据分解等级分别计算。根据GPU的计算能力不同,计算分配给每个GPU的任务量。
所述步骤(4)中,对NSCT分解与重构过程中的并行性分析包括对分解过程的并行性分析和重构过程的并行性分析。对于分解过程的分析,包括:
(i)多尺度分解:首先将图像数据移动至多个GPU时,由于数据要分别与非下采样低通塔式滤波器和非下采样带通塔式滤波器进行卷积,要移动至不同的GPU的数据序列之间没有相关性,这一过程可以使用OpenMP并行实现;
其次,图像数据与滤波器进行卷积时,由于数据要分别与低通塔式滤波器和带通塔式滤波器进行卷积,且这两个卷积互不影响,这一过程可以分别在不同的GPU中完成,可以通过OpenMP进行CPU并行控制多个GPU并行完成计算;由于在图像中不同位置上的待分解数据与滤波器卷积后得到的结果是不同的,即图像中不同的像素点在做卷积过程中没有直接关联,这一过程可以使用CUDA并行实现,对每一个像素点的卷积过程都在GPU中开启一个线程,进行并行计算。
最后,将计算结果回存时,由于不同的GPU得到的计算结果互不影响,将计算结果返回至CPU这一过程可以使用OpenMP并行实现。
(ii)多方向分解:首先将图像数据移动至多个GPU时,由于数据要分别与非下采样方向滤波器组进行卷积,要移动至不同的GPU的数据序列之间没有相关性,这一过程可以使用OpenMP并行实现;
其次,图像数据与滤波器进行卷积时,由于数据要分别与非下采样方向滤波器组进行卷积,且与不同的方向滤波器进行的卷积互不影响,这一过程可以分别在不同的GPU中完成,可以通过OpenMP进行CPU并行控制多个GPU并行完成计算;由于在图像中不同位置上的待分解数据与滤波器卷积后得到的结果是不同的,即图像中不同的像素点在做卷积过程中没有直接关联,这一过程可以使用CUDA并行实现,对每一个像素点的卷积过程都在GPU中开启一个线程,进行并行计算;
最后,将计算结果回存时,由于不同的GPU得到的计算结果互不影响,将计算结果返回至CPU这一过程可以使用OpenMP并行实现。
对于重构过程的并行性分析,由于重构过程和分解过程是相互逆过程,对于并行性的分析是相同的。
所述步骤(5)中,使用OpenMP和CUDA并行执行NSCT分解过程包括:
(i)使用OpenMP并行:多尺度分解时和1级或2级多方向分解时,使用#pragma ompparallel sections编译制导指令将分解时所发生的数据移动至显存、计算结果回存的过程分别分配到CPU并行区域的两组线程上;3级及以上多方向分解时,使用#pragma ompparallel for schedule(static,1)编译制导指令,使用静态调度的线程调度算法,将for循环的循环次数,即所开启的GPU数量(所开启的GPU数量不大于CPU的核数),平均分配到不同的CPU核上同时执行;
(ii)使用CUDA并行:按照图像的像素行数与当前GPU的maxThreadsPerBlock(每线程块最大线程数)参数大小关系,决定是否将图像横向分块,将每个的图块或者原始图像的每一列都传入至GPU的一个线程块中,并且这一列中的每个像素点都传入该线程块中的不同线程中进行卷积计算,对于不同的图块依次串行进行上述的并行卷积计算。
所述步骤(6)中,使用OpenMP和CUDA并行执行NSCT重构过程时,由于重构过程和分解过程是相互逆过程,重构并行过程原理与分解过程相同。
所述步骤(7)中,对6张不同分辨率的图像,在不同的实验硬件环境下进行对比实验,分别比较传统NSCT算法和并行加速NSCT算法所需要的时间,针对不同的图像分辨率和使用的GPU的数量,并行加速最高可以提速6000%~31700%,效率得到明显提高。
与现有技术相比,本发明的有益效果是:
1.本发明提出的基于CUDA与OpenMP的多核并行加速NSCT算法,基于GPU的硬件特点,将NSCT算法中耗时较大的卷积运算在GPU中完成,每一个像素的卷积过程为一个并行函数,在不同的线程中并行执行,从而实现了像素级的并行计算,在保证正确结果的前提下,充分发挥CUDA的并行计算优势,明显降低NSCT算法的执行时间,提高运算效率;
2.本发明提出的基于CUDA与OpenMP的多核并行加速NSCT算法,采用OpenMP多线程技术,分配相应线程数给多核CPU,将图像数据移动、计算结果回存等过程实现并行,进一步提高NSCT算法的执行效率,降低执行时间。
总之,本发明的方法在当今硬件环境下有很好的实现优势,应用更容易推广,显著提升NSCT算法的运算速度。
实验结果也证明本发明方法的并行效果明显。
附图说明
图1-1为传统NSCT算法实现原理示意图。
图1-2 1-3分别为传统NSCT分解过程中的3级多尺度分解和2级多方向分解示意图。
图2为本实施例基于OpenMP与CUDA多核并行加速NSCT算法的实现原理示意图。
图3为本实施例并行执行J级多方向分解时的实现原理示意图。
图4为本实施例计算开启GPU数量的实现原理示意图。
图5为本实施例计算多GPU任务分配的实现原理示意图。
图6为本实施例基于OpenMP并行执行的实现原理示意图。
图7为本实施例基于CUDA并行卷积运算的实现原理示意图。
图8为本实施例执行图像分块的实现原理示意图。
图9为本发明具体实施例对比实验用图,分别为FIB-SEM纳米材料图,花朵图,风景壁纸,油画,铸体薄片局部图,铸体薄片拼接图。
具体实施方式
下面结合具体实施例和附图对本发明进一步说明:
如图2与图3所示本发明的一种基于CUDA与OpenMP多核并行加速NSCT方法,其具体实施步骤是:
(1)将NSCT算法的matlab源码通过matlab2cpp工具,使用Armadillo库和OpenBLAS库,工具翻译转换为C++代码;
(2)对步骤(1)中使用工具翻译转换得到的C++代码进行人工修正,包括计算精度的修正等;
(3)根据GPU和CPU配置情况,计算执行NSCT算法中多尺度分解与不同级别方向分解所需要启用的GPU数目,以及分配给每个GPU的实际计算量;
如图4和图5所示,所述步骤(3)中包括以下步骤:
(i)根据已有的GPU计算能力大小,对其进行排序;
(ii)若执行多尺度分解,则选取计算能力最强的两个GPU分别计算与低通塔式滤波器H0(z)和带通塔式滤波器H1(z)的卷积,并且开启两个CPU线程分别参与这两个卷积过程;
(iii)若执行1级和2级方向分解,选取计算能力最强的两个GPU分别计算与第1级的方向滤波器组的U0(z)U1(z)的卷积,并且开启两个CPU线程分别参与这两个卷积过程;执行2级方向分级时,在1级方向分解之后得到y0和y1,选取计算能力最强的两个GPU分别计算y0和y1与第2级的方向滤波器组的U0(zQ)和U1(zQ)的卷积,其中Q是进行上采样的Quincunx矩阵:
Figure BDA0001683220550000041
(iv)若执行3级及更高级方向分解,把和双通道的两个滤波器进行卷积作为一个任务,J级方向分解就要执行2J-1个任务,包括:
如图4所示首先确定启用GPU数量:如步骤(i)所述,得到按照计算能力排序的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。
其次,如图5所示确定分配给已开启的GPU任务数:如确定启用GPU数量时所述,得到按照计算能力排序的已开启GPU队列,首先将此队列末尾的GPU的计算能力设为1,按比例设置各个GPU的计算能力数值,若出现小数的数值则进行上取整。此时的GPU队列中各个GPU计算能力数值为整数,且最末的GPU计算能力为1。将任务数按照队列中各个GPU计算能力比例分配给各个GPU,若出现小数则下取整,若出现分配的任务总数小于实际任务数,则0号GPU任务数加1,直至分配的任务总数等于实际任务总数;若出现出现分配的任务总数大于实际任务数,则从末至前依次将GPU的任务数减至1,直至分配的任务总数等于实际任务总数。
(4)NSCT分解与重构过程中的并行性分析,如图6所示:
对于分析分解过程:
(i)多尺度分解:
首先,将图像数据移动至多个GPU时:由于数据要分别与非下采样低通塔式滤波器H0(z)和非下采样带通塔式滤波器H1(z)进行卷积,要移动至不同的GPU的数据序列之间没有相关性,这一过程可以使用OpenMP并行实现,即开启两个CPU线程进行此过程,若CPU核数大于1则有2个核分别开启一个线程进行此过程;
其次,图像数据与滤波器进行卷积:由于数据要分别与低通塔式滤波器H0(z)和带通塔式滤波器H1(z)进行卷积,由式(1)和式(2)可知这两个卷积过程互不影响,这一过程可以分别在不同的GPU中完成,可以通过OpenMP进行CPU并行控制多个GPU完成计算;由于在图像中不同位置上的待分解数据与滤波器卷积后得到的结果是不同的,即图像中不同的像素点在做卷积过程中没有直接关联,这一过程可以使用CUDA并行实现,对每一个像素点的卷积过程都在GPU中开启一个线程,进行并行计算。
Figure BDA0001683220550000051
Figure BDA0001683220550000052
最后,将计算结果回存:由于不同的GPU得到的计算结果互不影响,将计算结果返回至CPU这一过程可以使用OpenMP并行实现,即开启两个CPU线程进行此过程,若CPU核数大于1则有2个核分别开启一个线程进行此过程;
(ii)多方向分解:
首先,将图像数据移动至多个GPU:由于数据要分别与非下采样方向滤波器组进行卷积,要移动至不同的GPU的数据序列之间没有相关性,这一过程可以使用OpenMP并行实现;
其次,图像数据与滤波器进行卷积:由于数据要分别与非下采样方向滤波器组U0(z)U1(z)进行卷积,同样由式(3)和式(4)可知,与不同的方向滤波器进行的卷积互不影响,这一过程可以分别在不同的GPU中完成,可以通过OpenMP进行CPU并行控制多个GPU完成计算;由于在图像中不同位置上的待分解数据与滤波器卷积后得到的结果是不同的,即图像中不同的像素点在做卷积过程中没有直接关联,这一过程可以使用CUDA并行实现,对每一个像素点的卷积过程都在GPU中开启一个线程,进行并行计算;
Figure BDA0001683220550000053
Figure BDA0001683220550000061
最后,将计算结果回存:由于不同的GPU得到的计算结果互不影响,将计算结果返回至CPU这一过程可以使用OpenMP并行实现;
对于分析重构过程:
由于重构过程和分解过程是相互逆过程,对于并行度的分析是相同的;
(5)使用OpenMP和CUDA并行:
(i)使用OpenMP并行:如图6所示,多尺度分解时和1级或2级多方向分解时,使用#pragma omp parallel sections编译制导指令将分解时所发生的数据移动至显存、计算结果回存的过程分别分配到CPU并行区域的两组线程上;
3级及以上多方向分解时,使用#pragma omp parallel for schedule(static,1)编译制导指令,使用静态调度的线程调度算法,将for循环的循环次数,即所开启的GPU数量(所开启的GPU数量不大于CPU的核数),平均分配到不同的CPU核上同时执行。
为说明原理,图3以J级多方向分解,CPU核心数为p,所开启GPU数量为n,由步骤(3.4.1)可知n≤p,k号GPU所分配的任务数为mk,那么CPU开启线程数则为n,分别由一个CPU核心开启一个线程参与对应GPU的卷积计算,而对于k号GPU,其串行执行mk个任务。
(ii)使用CUDA并行:如图7所示,只要在执行NSCT算法时发生卷积计算,那么就可以使用CUDA进行像素级并行此过程。具体步骤如下:
首先,如图8所示,按照图像的像素行数与当前GPU的maxThreadsPerBlock(每线程块最大线程数)参数大小关系,决定是否将图像横向分块。
其次,将每个的图块或者原始图像的每一列都传入至GPU的一个线程块中,并且这一列中的每个像素点都传入该线程块中的不同线程中进行卷积计算,对于不同的图块依次串行进行上述的并行卷积计算。
(6)使用OpenMP和CUDA并行执行NSCT重构过程:由于重构过程和分解过程是相互逆过程,重构并行过程原理与分解过程相同。
(7)本实施例实验情况如下:
对比实验中NSCT分解结构均设定为[3,3]。即第1级尺度分解与第2级尺度分解后,都按照3级多方向分解。
对比实验用图有多组分别如下:
如图9所示,为本发明具体实施例中实验用图。
(a)图为FIB-SEM纳米材料,分辨率为512*512
(b)图为花朵图,分辨率为800*800
(c)图为风景壁纸,分辨率为2560*1440
(d)图为油画,分辨率为2000*2000
(e)图为铸体薄片局部图,分辨率为5184*3456
(f)图为铸体薄片拼接图,分辨率为12260*7270
如表1所示,实验硬件环境有多组。
对比实验结果如表2所示,可以看出,并行效果十分明显。对比实验环境b下并行加速NSCT运行时间与传统串行NSCT运行时间,加速比大约为2。这是因为由于环境b下没有GPU,因而只能通过OpenMP进行CPU并行,即在多尺度分解时分为2个CPU线程进行并行处理,得到加速比约为2也体现了这一并行效果。对于实验环境b、c、d,随着图像数据的增大,并随着启用GPU数量的增多,并行加速效果越来越明显,加速比最高可达31700%,这是由于启用cpu线程数、cuda核心数、图像数据大小增加,进而并行度进一步增加所得到。
Figure BDA0001683220550000071
表1实验硬件环境
Figure BDA0001683220550000081
表2对比实验结果
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (3)

1.基于并行运算的非下采样轮廓波变换优化方法,其特征在于:包括以下步骤:
(1)将NSCT算法的matlab源码通过matlab2cpp工具,使用Armadillo库和OpenBLAS库,工具翻译转换为C++代码;
(2)对步骤(1)中使用工具翻译转换得到的C++代码进行人工修正,包括计算精度的修正;
(3)将已有的GPU按照计算能力大小排序,选取计算能力最强的两个GPU,用来执行在多尺度分解步骤中,同低通塔式滤波器H0(z)和带通塔式滤波器H1(z)的卷积,同时也用来执行在第1、2级方向分解步骤中,同方向滤波器组的U0(z)和U1(z)的卷积;在执行第3级及更高级方向分解时,比较计算能力最强的GPU的计算能力值与其他GPU计算能力和总任务数减1的乘积结果,并与CPU核数比较,确定开启的GPU,并按照已开启的GPU计算能力比例,确定分配给各GPU的任务数;
(4)使用OpenMP和CUDA并行执行NSCT分解过程:将图像数据移动至多个GPU,该步骤使用OpenMP并行实现;对于多尺度分解步骤,图像数据要分别与低通塔式滤波器和带通塔式滤波器进行卷积,使用OpenMP进行CPU并行控制多个GPU并行完成与对应滤波器的卷积运算;对于多方向分解步骤,图像数据要分别与非下采样方向滤波器组进行卷积,使用OpenMP进行CPU并行控制多个GPU并行完成与对应滤波器的卷积运算;对于图像数据与滤波器进行卷积运算时,使用CUDA并行执行卷积运算;对于计算结果回存时,通过OpenMP并行处理将不同GPU的计算结果返回至CPU;
(5)使用OpenMP和CUDA并行执行NSCT重构过程:由于重构过程和分解过程是相互逆过程,并行执行过程同步骤(5)。
2.根据权利要求1所述的基于并行运算的非下采样轮廓波变换优化方法,其特征在于:
所述步骤(3)中:
若执行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)~(5)中:
使用OpenMP并行时,将分解时所发生的数据移动至显存、计算结果回存的过程分别分配到CPU并行区域的多组线程上;
使用CUDA并行时,若图像的像素行数大于GPU的每线程块最大线程数maxThreadsPerBlock,则将图像横向分块,使每个图块的像素行数不超过maxThreadsPerBlock;串行遍历所有图块,对于每个图块都按照以下方式进行卷积计算:将每个的图块或者原始图像的每一列都传入至GPU的一个线程块中,并且这一列中的每个像素点都传入该线程块中的不同线程中进行卷积计算。
CN201810560673.0A 2018-06-04 2018-06-04 基于并行运算的非下采样轮廓波变换优化方法 Active CN108897616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810560673.0A CN108897616B (zh) 2018-06-04 2018-06-04 基于并行运算的非下采样轮廓波变换优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810560673.0A CN108897616B (zh) 2018-06-04 2018-06-04 基于并行运算的非下采样轮廓波变换优化方法

Publications (2)

Publication Number Publication Date
CN108897616A CN108897616A (zh) 2018-11-27
CN108897616B true CN108897616B (zh) 2021-08-24

Family

ID=64344014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810560673.0A Active CN108897616B (zh) 2018-06-04 2018-06-04 基于并行运算的非下采样轮廓波变换优化方法

Country Status (1)

Country Link
CN (1) CN108897616B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740629B (zh) * 2018-12-05 2022-03-15 电子科技大学 一种基于fpga的非下采样轮廓波分解变换***及其实现方法
CN110363699B (zh) * 2019-06-24 2022-11-04 广东工业大学 一种基于OpenMP和CUDA的图像特征提取并行算法
CN112099850A (zh) * 2020-09-10 2020-12-18 济南浪潮高新科技投资发展有限公司 一种多核Hourglass网络加速方法
CN112463336A (zh) * 2020-12-07 2021-03-09 深圳集智数字科技有限公司 一种对象分配方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222019A (zh) * 2011-05-19 2011-10-19 西南交通大学 基于OpenMP的小波和小波包多核并行计算方法
WO2014152800A1 (en) * 2013-03-14 2014-09-25 Massively Parallel Technologies, Inc. Project planning and debugging from functional decomposition
CN105718425A (zh) * 2016-01-15 2016-06-29 武汉大学 一种非线性数据全局互相关性的并行定量计算方法
CN106204669A (zh) * 2016-07-05 2016-12-07 电子科技大学 一种基于gpu平台的并行图像压缩感知方法
CN106874113A (zh) * 2017-01-19 2017-06-20 国电南瑞科技股份有限公司 一种cpu+多gpu异构模式静态安全分析计算方法
CN106991665A (zh) * 2017-03-24 2017-07-28 中国人民解放军国防科学技术大学 基于cuda图像融合并行计算的方法
KR20170133892A (ko) * 2016-05-27 2017-12-06 고려대학교 세종산학협력단 다중 cpu 및 gpu를 이용한 암호화 알고리즘의 병렬처리 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222019A (zh) * 2011-05-19 2011-10-19 西南交通大学 基于OpenMP的小波和小波包多核并行计算方法
WO2014152800A1 (en) * 2013-03-14 2014-09-25 Massively Parallel Technologies, Inc. Project planning and debugging from functional decomposition
CN105718425A (zh) * 2016-01-15 2016-06-29 武汉大学 一种非线性数据全局互相关性的并行定量计算方法
KR20170133892A (ko) * 2016-05-27 2017-12-06 고려대학교 세종산학협력단 다중 cpu 및 gpu를 이용한 암호화 알고리즘의 병렬처리 방법
CN106204669A (zh) * 2016-07-05 2016-12-07 电子科技大学 一种基于gpu平台的并行图像压缩感知方法
CN106874113A (zh) * 2017-01-19 2017-06-20 国电南瑞科技股份有限公司 一种cpu+多gpu异构模式静态安全分析计算方法
CN106991665A (zh) * 2017-03-24 2017-07-28 中国人民解放军国防科学技术大学 基于cuda图像融合并行计算的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator Model on a POWER8+GPU Platform;Akihiro Hayashi 等;《2016 Third Workshop on Accelerator Programming Using Directives (WACCPD)》;IEEE;20161114;第1-11页 *
FIB-SEM图像多策略层间配准与插值算法;张耀 等;《计算机应用与软件》;20180512;第35卷(第5期);第229-235页 *
基于非下采样Contourlet变换的自适应图像融合算法;郭雷 等;《西北工业大学学报》;20090526;第255-259页 *

Also Published As

Publication number Publication date
CN108897616A (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN108897616B (zh) 基于并行运算的非下采样轮廓波变换优化方法
CN107341127B (zh) 基于OpenCL标准的卷积神经网络加速方法
Strigl et al. Performance and scalability of GPU-based convolutional neural networks
Du et al. Anchor-based plain net for mobile image super-resolution
Van den Braak et al. Fast hough transform on GPUs: Exploration of algorithm trade-offs
TWI690896B (zh) 影像處理器、由其執行之方法、及非暫態機器可讀儲存媒體
CN110135569B (zh) 一种异构平台神经元定位三级流水并行方法、***及介质
Green Efficient scalable median filtering using histogram-based operations
CN105550974A (zh) 基于gpu的图像特征提取算法的加速方法
AU2018258094A1 (en) Octree-based convolutional neural network
EP3678037A1 (en) Neural network generator
US20140225902A1 (en) Image pyramid processor and method of multi-resolution image processing
CN103942788B (zh) 高光谱遥感图像特征提取方法及装置
Chang et al. SDCNN: An efficient sparse deconvolutional neural network accelerator on FPGA
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
CN107730464B (zh) 基于块匹配的图像降噪并行算法
CN104899840B (zh) 一种基于cuda的引导滤波加速优化方法
Liu et al. Parallel program design for JPEG compression encoding
CN110245706B (zh) 一种针对嵌入式应用的轻量化目标检测方法
Agarwal et al. Acceleration of bilateral filtering algorithm for manycore and multicore architectures
CN104408691A (zh) 一种基于gpu并行选择式掩模平滑方法
CN106780360A (zh) 基于OpenCL标准的快速全变分图像去噪方法
Ibrahim et al. Gaussian Blur through Parallel Computing.
Chen et al. Efficient Algorithms for the Summed Area Tables Primitive on GPUs
CN114117896B (zh) 面向超长simd管线的二值规约优化实现方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant