多维快速傅里叶变换数据处理方法、装置及电子设备

专利查询21天前  17


本技术涉及计算机领域,具体而言,涉及一种多维快速傅里叶变换数据处理方法、装置及电子设备。


背景技术:

1、目前相关技术中在通过图形处理器对多维快速傅里叶变换序列进行计算时,通常借助两种主流的编程模型实现,分别是专门针对nvida图形处理器的cuda和兼容其他厂商图形处理器的opencl。基于opencl的开源clfft库考虑到通用性对多维快速傅里叶变换序列设置了固定的分解计算策略,导致计算效率较低,耗时过长。

2、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本技术实施例提供了一种多维快速傅里叶变换数据处理方法、装置及电子设备,以至少解决由于相关技术中在对多维快速傅里叶变换数据进行处理时采用固定的分解策略导致的计算效率低且耗时过长的技术问题。

2、根据本技术实施例的一个方面,提供了一种多维快速傅里叶变换数据处理方法,包括:依据待处理序列在各个维度上的第一序列长度和预设批处理大小,确定待处理序列在各个维度上对应的转置参数和批处理大小;依据各个维度对应的第一序列长度以及待处理序列在各个维度的分量,确定待处理序列在各个维度的分量对应的至少一个子序列,其中,转置参数用于确定是否对子序列执行转置操作;依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子,并对多个分解因子执行离散傅里叶变换计算,其中,子序列等于多个分解因子相乘。

3、可选地,依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子包括:在存储形式为子序列在图形处理器内存中连续存储的情况下,将子序列分解为多个分解因子;在存储形式为子序列在图形处理器内存中非连续存储的情况下,依据子序列的第二序列长度将子序列分解为多个分解因子。

4、可选地,在存储形式为子序列在图形处理器内存中非连续存储的情况下,依据子序列的第二序列长度将子序列分解为多个分解因子包括:在子序列的第二序列长度小于第一预设长度阈值的情况下,将子序列分解为多个分解因子;在子序列的第二序列长度不小于预设长度阈值的情况下,对子序列进行转置处理,使得子序列的存储形式被转置为连续存储后,将转置处理后的子序列分解为多个分解因子。

5、可选地,依据各个维度对应的第一序列长度以及待处理序列在各个维度的分量,确定待处理序列在各个维度的分量对应的至少一个子序列包括:从多个预设取值范围中确定第一序列长度所在的目标取值范围,其中,预设取值范围包括第一预设取值范围,第二预设取值范围,第三预设取值范围、第四预设取值范围和第五预设取值范围,第二预设取值范围的最小值等于第一预设取值范围的最大值,第三预设取值范围的最小值等于第二预设取值范围的最大值,第四预设取值范围的最小值等于第三预设取值范围的最大值,第五预设取值范围的最小值等于第四预设取值范围的最大值;依据目标取值范围确定待处理序列在各个维度上的分量对应的至少一个子序列。

6、可选地,依据目标取值范围确定待处理序列在各个维度上的分量对应的至少一个子序列包括:在目标取值范围为第一预设取值范围的情况下,确定待处理序列在各个维度上的分量为该分量对应的子序列;在目标取值范围为第二预设取值范围、第三预设取值范围或者第四预设取值范围的情况下,将待处理序列在各个维度上的分量分解为第一子序列和第二子序列,并确定第一子序列和第二子序列为与待处理序列在各个维度上的分量对应的子序列,其中,待处理序列在各个维度上的分量等于对应的第一子序列和第二子序列相乘;在目标取值范围为第五预设取值范围的情况下,将待处理序列在各个维度上的分量分解为第三子序列,第四子序列和第五子序列,其中,待处理序列在各个维度上的分量等于对应的第三子序列,第四子序列和第五子序列相乘。

7、可选地,依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子,并对多个分解因子执行离散傅里叶变换计算包括:在目标取值范围为第四预设取值范围,并且转置参数的值等于预设参数值的情况下,对第一子序列和第二子序列组成的第一多维数组进行转置处理后,依据第一子序列的第二序列长度和第一子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;将第一多维数组中的第一子序列替换为第一子序列对应的离散傅里叶变换计算结果后,再次对所说第一多维数组进行转置处理,依据第二子序列的第二序列长度和第二子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;将第一多维数组中的第二子序列替换为第二子序列对饮的离散傅里叶变换计算结果,并再次对第一多维数组进行转置处理,得到待处理序列对应的计算结果。

8、可选地,依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子,并对多个分解因子执行离散傅里叶变换计算包括:在目标取值范围为第四预设取值范围,并且转置参数的值不等于预设参数值的情况下,对第一子序列,第二子序列和转置参数组成的第二多维数组进行转置处理后,依据第一子序列的第二序列长度和第一子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;将第二多维数组中的第一子序列替换为第一子序列对应的离散傅里叶变换计算结果后,再次对所说第二多维数组进行转置处理,并在转置处理后依据第二子序列的第二序列长度和第二子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;将第二多维数组中的第二子序列替换为第二子序列对饮的离散傅里叶变换计算结果,并再次对第二多维数组进行转置处理,得到待处理序列对应的计算结果。

9、可选地,依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子,并对多个分解因子执行离散傅里叶变换计算包括:在目标取值范围为第五预设取值范围,并且转置参数的值等于预设参数值的情况下,依据第三子序列的第二序列长度和第三子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;依据第四子序列的第二序列长度和第四子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;对由第三子序列对应的离散傅里叶变换计算结果,第四子序列对应的离散傅里叶变换计算结果和第五子序列组成的第三多维数组进行转置处理,并在转置处理后依据第五子序列的第二序列长度和第五子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;将第三多维数组中的第五子序列替换为第五子序列对饮的离散傅里叶变换计算结果,并再次对第三多维数组进行转置处理,得到待处理序列对应的计算结果。

10、可选地,依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子,并对多个分解因子执行离散傅里叶变换计算包括:在目标取值范围为第五预设取值范围,并且转置参数的值不等于预设参数值的情况下,依据第三子序列的第二序列长度和第三子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;依据第四子序列的第二序列长度和第四子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;对由第三子序列对应的离散傅里叶变换计算结果,第四子序列对应的离散傅里叶变换计算结果,第五子序列和转置参数组成的第四多维数组进行转置处理,并在转置处理后依据第五子序列的第二序列长度和第五子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子并执行离散傅里叶变换计算;将第四多维数组中的第五子序列替换为第五子序列对饮的离散傅里叶变换计算结果,并再次对第四多维数组进行转置处理,得到待处理序列对应的计算结果。

11、可选地,依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子包括:在目标取值范围为第一预设取值范围,转置参数的值不等于预设参数值,并且第一序列长度大于第二预设长度阈值的情况下,对子序列转置,并在转置后,依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子;在目标取值范围为第三预设取值范围,并且转置参数的值等于预设参数值的情况下,对至少一个子序列组成的第一多维数组进行转置,并在转置后分别将各个子序列分解为多个分解因子;在目标取值范围为第三预设取值范围,并且转置参数的值不等于预设参数值的情况下,对至少一个子序列和至少一个子序列对应的转置参数组成的第二多维数组进行转置,并在转置后分别将各个子序列分解为多个分解因子。

12、可选地,对多个分解因子执行离散傅里叶变换计算包括:确定各个子序列对应的图形处理器中的线程块,并通过线程块对对应的子序列的每个分解因子执行离散傅里叶变换计算。

13、根据本技术实施例的另一方面,还提供了一种多维快速傅里叶变换数据处理装置,包括:处理模块,用于依据待处理序列在各个维度上的第一序列长度和预设批处理大小,确定待处理序列在各个维度上对应的转置参数和批处理大小;分解模块,用于依据各个维度对应的第一序列长度以及待处理序列在各个维度的分量,确定待处理序列在各个维度的分量对应的至少一个子序列,其中,转置参数用于确定是否对子序列执行转置操作;计算模块,用于依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子,并对多个分解因子执行离散傅里叶变换计算,其中,子序列等于多个分解因子相乘。

14、根据本技术实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质中存储有程序,其中,在程序运行时控制非易失性存储介质所在设备执行多维快速傅里叶变换数据处理方法。

15、根据本技术实施例的另一方面,还提供了一种电子设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行多维快速傅里叶变换数据处理方法。

16、根据本技术实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现多维快速傅里叶变换数据处理方法。

17、在本技术实施例中,采用依据待处理序列在各个维度上的第一序列长度和预设批处理大小,确定待处理序列在各个维度上对应的转置参数和批处理大小;依据各个维度对应的第一序列长度以及待处理序列在各个维度的分量,确定待处理序列在各个维度的分量对应的至少一个子序列,其中,转置参数用于确定是否对子序列执行转置操作;依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子,并对多个分解因子执行离散傅里叶变换计算,其中,子序列等于多个分解因子相乘的方式,通过根据待处理序列在各个维度上的分量的长度和存储形式对待处理序列进行多次分解并根据待处理序列在各个维度上的长度确定是否需要对待处理序列进行转置操作,达到了针对不同的待处理序列执行不同的分解策略的目的,从而实现了提高各类图形处理器处理多维快速傅里叶变换数据的方法的技术效果,进而解决了由于相关技术中在对多维快速傅里叶变换数据进行处理时采用固定的分解策略导致的计算效率低且耗时过长的技术问题。


技术特征:

1.一种多维快速傅里叶变换数据处理方法,其特征在于,包括:

2.根据权利要求1所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述子序列的第二序列长度和所述子序列在图形处理器内存中的存储形式将所述子序列分解为多个分解因子包括:

3.根据权利要求2所述的多维快速傅里叶变换数据处理方法,其特征在于,在所述存储形式为所述子序列在所述图形处理器内存中非连续存储的情况下,依据所述子序列的第二序列长度将所述子序列分解为多个所述分解因子包括:

4.根据权利要求1所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述各个维度对应的第一序列长度以及所述待处理序列在各个维度的分量,确定所述待处理序列在各个维度的分量对应的至少一个子序列包括:

5.根据权利要求4所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述目标取值范围确定所述待处理序列在各个维度上的分量对应的至少一个子序列包括:

6.根据权利要求5所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述子序列的第二序列长度和所述子序列在图形处理器内存中的存储形式将所述子序列分解为多个分解因子,并对所述多个分解因子执行离散傅里叶变换计算包括:

7.根据权利要求5所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述子序列的第二序列长度和所述子序列在图形处理器内存中的存储形式将所述子序列分解为多个分解因子,并对所述多个分解因子执行离散傅里叶变换计算包括:

8.根据权利要求5所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述子序列的第二序列长度和所述子序列在图形处理器内存中的存储形式将所述子序列分解为多个分解因子,并对所述多个分解因子执行离散傅里叶变换计算包括:

9.根据权利要求5所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述子序列的第二序列长度和所述子序列在图形处理器内存中的存储形式将所述子序列分解为多个分解因子,并对所述多个分解因子执行离散傅里叶变换计算包括:

10.根据权利要求4所述的多维快速傅里叶变换数据处理方法,其特征在于,依据所述子序列的第二序列长度和所述子序列在图形处理器内存中的存储形式将所述子序列分解为多个分解因子包括:

11.根据权利要求1所述的多维快速傅里叶变换数据处理方法,其特征在于,对所述多个分解因子执行离散傅里叶变换计算包括:

12.一种多维快速傅里叶变换数据处理装置,其特征在于,包括:

13.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至11中任意一项所述的多维快速傅里叶变换数据处理方法。

14.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至11中任意一项所述的多维快速傅里叶变换数据处理方法。

15.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至11中任意一项所述的多维快速傅里叶变换数据处理方法。


技术总结
本申请公开了一种多维快速傅里叶变换数据处理方法、装置及电子设备。其中,该方法包括:依据待处理序列在各个维度上的第一序列长度和预设批处理大小,确定待处理序列在各个维度上对应的转置参数和批处理大小;依据各个维度对应的第一序列长度以及待处理序列在各个维度的分量,确定待处理序列在各个维度的分量对应的至少一个子序列,其中,转置参数用于确定是否对子序列执行转置操作;依据子序列的第二序列长度和子序列在图形处理器内存中的存储形式将子序列分解为多个分解因子。本申请解决了由于相关技术中在对多维快速傅里叶变换数据进行处理时采用固定的分解策略导致的计算效率低且耗时过长的技术问题。

技术研发人员:李敏,何源宏,朱文臣,李冬升,杨超
受保护的技术使用者:北京大学
技术研发日:
技术公布日:2024/12/5

最新回复(0)