System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机领域,具体而言,涉及一种一维快速傅里叶变换数据处理方法、装置及电子设备。
技术介绍
1、目前相关技术中在通过图形处理器对一维fft进行计算时,主要采用stockham算法,stockham fft算法改进了cooley-tukey算法中访存局部性差的缺点,将算法中的位元翻转操作拆分成若干次局部转置操作。然而现有的图形处理器fft优化库存在一些明显限制,cufft仅适用于cuda兼容的硬件,限制了其在其他架构的图形处理器上的应用和优化。clfft虽然支持更加广泛的硬件平台,但主要针对amd图形处理器进行优化。因此相关技术中的一维fft的处理方法适用性均较窄,不能在任意架构的图形处理器中实现对一维fft的高效计算。
2、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本申请实施例提供了一种一维快速傅里叶变换数据处理方法、装置及电子设备,以至少解决相关技术中的一维快速傅里叶变换计算方法均对图形处理器的结构有要求导致的泛用性较低的技术问题。
2、根据本申请实施例的一个方面,提供了一种一维快速傅里叶变换数据处理方法,包括:对待处理序列进行分解,得到多个子序列,其中,多个子序列的子序列数量和子序列的子序列维度为待处理序列的分解因子,待处理序列为一维快速傅里叶变换计算序列,并且多个子序列中的任意两个子序列的维度相同,多个子序列的计算顺序为任意计算顺序;依据待处理序列的序列长度和分解因子确定与待处理序列对应的计算图,其中,计算图用于指示图形处
3、可选地,对待处理序列进行分解,得到多个子序列前,方法还包括:确定待处理序列的序列规模;依据序列规模,为待处理序列在图形平台处理器中分配内存,并将待处理序列发送至图形处理器平台;在插入转置算子并且转置算子的输入和输出不共享内存的情况喜爱,在图形处理器平台中分配内存作为转置算子的输入和输出的中间缓冲内存;依据图形处理器的上下文信息初始化执行环境。
4、可选地,对待处理序列进行分解,得到多个子序列包括:在待处理序列为单基底序列的情况下,依据预设分解方案对待处理序列进行分解,得到多个子序列;在待处理序列为多基底序列的情况下,确定待处理序列的序列长度的平方根,并依据平方根和混合基底长度列表对待处理序列进行分解,得到多个子序列。
5、可选地,依据平方根和混合基底长度列表对待处理序列进行分解包括:依据平方根确定起始数,并确定起始数在混合基底长度列表中的位置;在混合基底长度列表中,从起始数所在的位置开始,按照从后向前的顺序遍历混合基底长度列表,从而确定待处理序列的分解因子,其中,分解因子整除待处理序列长度;依据分解因子对待处理序列进行分解。
6、可选地,依据待处理序列的序列长度和分解因子确定与待处理序列对应的计算图包括:依据序列长度和分解因子确定计算图规模;依据计算图规模确定与待处理序列对应的计算图。
7、可选地,计算图规模包括小规模,中等规模和大规模,目标内核的内核类型包括计算内核和转置内核;依据计算图规模确定与待处理序列对应的计算图包括:在计算图规模为小规模的情况下,确定计算图对应一个计算内核;在计算图规模为中等规模的情况下,确定计算图对应两个计算内核;在计算图规模为大规模的情况下,依据序列长度和分解因子已确定计算内核的数量,并依据分解因子中的子序列维度确定是否需要插入转置内核。
8、可选地,依据计算图,多个子序列和图形处理器平台的硬件参数在图形处理器平台中确定目标内核的配置信息包括:依据计算图确定用于对待处理序列进行求解的全部初始目标内核;在初始目标内核为初始计算内核的情况下,依据多个子序列和硬件参数确定目标内核的计算内核配置信息,其中,计算内核配置信息包括目标内核中的各个线程块需要处理的子序列的数量,线程块中的各个线程负责计算的元素数量,目标内核对应的分解因子序列;在初始目标内核为初始转置内核的情况下,依据多个子序列和硬件参数确定目标内核的转置内核配置信息,其中,转置内核配置信息包括目标内核中的各个线程块中的每条线程负责处理的元素数目,以及转置子块的大小。
9、可选地,依据多个子序列和硬件参数确定目标内核的计算内核配置信息包括:依据分解因子序列将子序列分解为多个目标分解因子相乘;依据多个目标分解因子确定每条线程负责计算的元素数量;依据元素数量和子序列长度确定子序列对应的线程数量,其中,线程数量与元素数量中的最大值的乘积不超过预设局部内存的大小,预设局部内存为预设的线程块可占用的最大内存;依据硬件参数确定各个线程块对应的最大线程数量,并依据最大线程数量和线程数量的比值确定各个线程块需要处理的子序列数量。
10、可选地,执行目标内核函数来对多个子序列进行求解包括:确定每个线程块处理的子序列数量为目标数量,子序列的长度为目标长度;在目标内核中的线程块的输入输出的内存为全局内存,并且全局内存沿指定维度连续的情况下,按照在目标长度的维度上连续分配的方式分配各个线程处理的元素,以及在全局内存没有沿指定维度连续的情况下,按照在目标数量的维度上连续分配的方式分配各个线程处理的元素;在目标内核中的线程块的输入输出的内存为局部内存的情况下,在局部内存沿目标数量的维度连续分配的情况下,按照在目标数量的维度上连续分配的方式分配各个线程处理的元素,以及在局部内存沿目标长度的维度连续分配的情况下,按照在目标长度的维度上连续分配的方式分配各个线程处理的元素。
11、可选地,执行目标内核函数来对多个子序列进行求解包括:在目标内核为转置内核的情况下,确定目标内核中各个线程块的线程大小为第一数量乘第二数量;在目标内核对应的目标内核函数为单基底转置算子的情况下,目标内核中的线程块中的线程数量为第一数量和第二数量的最小公倍数;在目标内核对应的目标内核函数为混合基底转置算子的情况下,目标内核中的线程块中的执行线程数量被第一数量和第二数量整除。
12、根据本申请实施例的另一方面,还提供了一种一维快速傅里叶变换数据处理装置,包括:分解模块,用于对待处理序列进行分解,得到多个子序列,其中,多个子序列的子序列数量和子序列的子序列维度为待处理序列的分解因子,待处理序列为一维快速傅里叶变换计算序列,并且多个子序列中的任意两个子序列的维度相同,多个子序列的计算顺序为任意计算顺序;处理模块,用于依据待处理序列的序列长度和分解因子确定与待处理序列对应的计算图,其中,计算图用于指示图形处理器平台中用于对待处理序列进行求解的目标内核的数量,目标内核的执行顺序和内核类型;配置模块,用于依据计算图,多个子序列和图形处理器平台的硬件参数在图形处理器平台中确定目标内核的配置信息;执行模块,用于依据配置信息在图形处理本文档来自技高网...
【技术保护点】
1.一种一维快速傅里叶变换数据处理方法,其特征在于,包括:
2.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,对待处理序列进行分解,得到多个子序列前,所述方法还包括:
3.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,对待处理序列进行分解,得到多个子序列包括:
4.根据权利要求3所述的一维快速傅里叶变换数据处理方法,其特征在于,依据所述平方根和混合基底长度列表对所述待处理序列进行分解包括:
5.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,依据所述待处理序列的序列长度和所述分解因子确定与所述待处理序列对应的计算图包括:
6.根据权利要求5所述的一维快速傅里叶变换数据处理方法,其特征在于,所述计算图规模包括小规模,中等规模和大规模,所述目标内核的内核类型包括计算内核和转置内核;依据所述计算图规模确定与所述待处理序列对应的计算图包括:
7.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,依据所述计算图,所述多个子序列和所述图形处理器平台的硬件参
8.根据权利要求7所述的一维快速傅里叶变换数据处理方法,其特征在于,依据所述多个子序列和所述硬件参数确定所述目标内核的计算内核配置信息包括:
9.根据权利要求7所述的一维快速傅里叶变换数据处理方法,其特征在于,执行所述目标内核函数来对所述多个子序列进行求解包括:
10.根据权利要求7所述的一维快速傅里叶变换数据处理方法,其特征在于,执行所述目标内核函数来对所述多个子序列进行求解包括:
11.一种一维快速傅里叶变换数据处理装置,其特征在于,包括:
12.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至10中任意一项所述的一维快速傅里叶变换数据处理方法。
13.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至10中任意一项所述的一维快速傅里叶变换数据处理方法。
14.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至10中任意一项所述的一维快速傅里叶变换数据处理方法。
...【技术特征摘要】
1.一种一维快速傅里叶变换数据处理方法,其特征在于,包括:
2.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,对待处理序列进行分解,得到多个子序列前,所述方法还包括:
3.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,对待处理序列进行分解,得到多个子序列包括:
4.根据权利要求3所述的一维快速傅里叶变换数据处理方法,其特征在于,依据所述平方根和混合基底长度列表对所述待处理序列进行分解包括:
5.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,依据所述待处理序列的序列长度和所述分解因子确定与所述待处理序列对应的计算图包括:
6.根据权利要求5所述的一维快速傅里叶变换数据处理方法,其特征在于,所述计算图规模包括小规模,中等规模和大规模,所述目标内核的内核类型包括计算内核和转置内核;依据所述计算图规模确定与所述待处理序列对应的计算图包括:
7.根据权利要求1所述的一维快速傅里叶变换数据处理方法,其特征在于,依据所述计算图,所述多个子序列和所述图形处理器平台的硬件参数在所述图形处理器平台中确定所述目标内核的配置信息包括:
...
【专利技术属性】
技术研发人员:李敏,朱文臣,李冬升,何源宏,杨超,
申请(专利权)人:北京大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。