本说明书涉及计算机应用,具体地说,涉及计算机应用下的算法优化技术,更具体地说,涉及一种数据处理方法、装置、计算设备及存储介质。
背景技术:
1、傅里叶变换(fourier transform)是一种数学变换,用于将一个函数从时间(或空间)域转换到频率域。它将一个连续或离散的信号分解为一组正弦和余弦函数(也称为频谱分量),以描述信号在不同频率上的振幅和相位信息。
2、傅里叶变换可以用于许多领域,包括信号处理、图像处理、音频处理、通信系统等。它在时域和频域之间建立了一个重要的桥梁,允许我们对数据的频率内容进行分析和处理。因此,对于数据进行傅里叶变换对于多个领域都具有重要意义。
3、目前,针对傅里叶变换算法形成了一些高性能的傅里叶变换库,这些傅里叶变换库中提供了一系列优化的算法和函数,用于进行快速的傅里叶变换计算。例如,fftw(fastest fourier transformin the west,西方快速傅里叶变换)库是一种开源的高性能傅里叶变换库,fftw库通过使用优化的算法和技术,针对不同的硬件平台和应用场景,可快速和准确的进行傅里叶变换计算。但目前基于fftw库等傅里叶变换库执行傅里叶变换算法时,在一些场景下存在执行效率较低的问题。
技术实现思路
1、本说明书实施例提供了一种数据处理方法、装置、计算设备及存储介质,以实现提高傅里叶变换的执行效率的目的。
2、为实现上述技术目的,本说明书实施例提供了如下技术方案:
3、第一方面,本说明书的一个实施方式提供了一种数据处理方法,包括:
4、响应于携带有待处理数据的处理指令,确定目标变换空间;所述待处理数据包括多个目标数据,所述目标变换空间与所述待处理数据的数据长度对应;
5、利用预设初始化策略,在所述目标变换空间中确定与所述目标变换空间对应的傅里叶变换算法;
6、利用与所述目标变换空间对应的傅里叶变换算法,对多个所述目标数据执行傅里叶变换,以获得多个输出数据。
7、可选地,所述利用预设初始化策略,在所述目标变换空间中确定与所述目标变换空间对应的傅里叶变换策略包括:
8、利用所述预设初始化策略,在所述目标变换空间中进行算法筛选,将筛选获得的目标傅里叶变换算法作为与所述目标变换空间对应的傅里叶变换算法;
9、所述目标傅里叶变换算法为经过算法筛选后,性能最优或效率最优的傅里叶变换算法。
10、可选地,所述目标变换空间包括第一变换空间和第二变换空间;
11、所述利用与所述目标变换空间对应的傅里叶变换算法,对多个所述目标数据执行傅里叶变换,以获得多个输出数据包括:
12、将多个所述目标数据映射至所述第一变换空间;
13、利用与所述目标变换空间对应的傅里叶变换算法,对映射至所述第一变换空间中的多个所述目标数据执行傅里叶变换,以获得多个已变换数据;
14、将多个所述已变换数据存储至所述第二变换空间,以获得多个所述输出数据。
15、可选地,所述处理指令还携带有变换方向和比例因子;
16、所述利用与所述目标变换空间对应的傅里叶变换算法,对映射至所述第一变换空间中的多个所述目标数据执行傅里叶变换,以获得多个已变换数据包括:
17、利用与所述目标变换空间对应的傅里叶变换算法,对映射至所述第一变换空间中的多个所述目标数据执行傅里叶变换,以获得多个初始变换数据;
18、将多个所述初始变换数据存储至所述第二变换空间;
19、在所述变换方向为逆变换,且所述比例因子不为1时,根据所述比例因子对多个所述初始变换数据进行缩放,以得到多个所述已变换数据;
20、在所述变换方向不为逆变换,或所述比例因子为1时,将多个所述初始变换数据作为多个所述已变换数据。
21、可选地,所述根据所述比例因子对多个所述初始变换数据进行缩放,以得到多个所述已变换数据包括:
22、将所述第二变换空间中的多个初始变换数据加载到第一向量寄存器中;
23、将加载到所述第一向量寄存器中的多个初始变换数据与第二向量寄存器中存储的比例因子相乘,以获得多个所述已变换数据;
24、将多个所述已变换数据存储至所述第二变换空间中。
25、可选地,所述将多个所述目标数据映射至所述第一变换空间包括:
26、基于单指令流多数据流simd指令,将多个所述目标数据映射至所述第一变换空间。
27、可选地,所述预设初始化策略包括西方快速傅里叶变换fftw库中的预估初始化方式fftw_estimate、测量初始化方式fftw_measure、慢速初始化方式fftw_patient和全面初始化方式fftw_exhaustive中的至少一种。
28、可选地,所述确定目标变换空间包括:
29、使用fftw库中的内存分配函数,确定所述目标变换空间,以使所述目标变换空间的空间地址对齐。
30、第二方面,本说明书的一个实施方式还提供了一种数据处理装置,包括:
31、空间确定模块,用于响应于携带有待处理数据的处理指令,确定目标变换空间;所述待处理数据包括多个目标数据,所述目标变换空间与所述待处理数据的数据长度对应;
32、算法优化模块,用于利用预设初始化策略,在所述目标变换空间中确定与所述目标变换空间对应的傅里叶变换算法;
33、算法执行模块,用于利用与所述目标变换空间对应的傅里叶变换算法,对多个所述目标数据执行傅里叶变换,以获得多个输出数据。
34、可选地,所述算法优化模块利用预设初始化策略,在所述目标变换空间中确定与所述目标变换空间对应的傅里叶变换策略具体用于:
35、利用所述预设初始化策略,在所述目标变换空间中进行算法筛选,将筛选获得的目标傅里叶变换算法作为与所述目标变换空间对应的傅里叶变换算法;
36、所述目标傅里叶变换算法为经过算法筛选后,性能最优和/或效率最优的傅里叶变换算法。
37、可选地,所述目标变换空间包括第一变换空间和第二变换空间;
38、所述算法执行模块利用与所述目标变换空间对应的傅里叶变换算法,对多个所述目标数据执行傅里叶变换,以获得多个输出数据具体用于:
39、将多个所述目标数据映射至所述第一变换空间;
40、利用与所述目标变换空间对应的傅里叶变换算法,对映射至所述第一变换空间中的多个所述目标数据执行傅里叶变换,以获得多个已变换数据;
41、将多个所述已变换数据存储至所述第二变换空间,以获得多个所述输出数据。
42、可选地,所述处理指令还携带有变换方向和比例因子;
43、所述算法执行模块利用与所述目标变换空间对应的傅里叶变换算法,对映射至所述第一变换空间中的多个所述目标数据执行傅里叶变换,以获得多个已变换数据具体用于:
44、利用与所述目标变换空间对应的傅里叶变换算法,对映射至所述第一变换空间中的多个所述目标数据执行傅里叶变换,以获得多个初始变换数据;
45、将多个所述初始变换数据存储至所述第二变换空间;
46、在所述变换方向为逆变换,且所述比例因子不为1时,根据所述比例因子对多个所述初始变换数据进行缩放,以得到多个所述已变换数据;
47、在所述变换方向不为逆变换,或所述比例因子为1时,将多个所述初始变换数据作为多个所述已变换数据。
48、可选地,所述算法执行模块根据所述比例因子对多个所述初始变换数据进行缩放,以得到多个所述已变换数据具体用于:
49、将所述第二变换空间中的多个初始变换数据加载到第一向量寄存器中;
50、将加载到所述第一向量寄存器中的多个初始变换数据与第二向量寄存器中存储的比例因子相乘,以获得多个所述已变换数据;
51、将多个所述已变换数据存储至所述第二变换空间中。
52、可选地,所述将多个所述目标数据映射至所述第一变换空间包括:
53、基于单指令流多数据流simd指令,将多个所述目标数据映射至所述第一变换空间。
54、可选地,所述预设初始化策略包括西方快速傅里叶变换fftw库中的预估初始化方式、测量初始化方式、慢速初始化方式和全面初始化方式中的至少一种。
55、可选地,所述空间确定模块确定目标变换空间具体用于:
56、使用fftw库中的内存分配函数,确定所述目标变换空间,以使所述目标变换空间的空间地址对齐。
57、第三方面,本说明书的一个实施方式还提供了一种计算设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据处理方法。
58、第四方面,本说明书的一个实施方式还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法。
59、第五方面,本说明书实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的数据处理方法的步骤。
60、从上述技术方案可以看出,本说明书实施例提供的数据处理方法在对包含多个目标数据的待处理数据进行傅里叶变换时,首先确定与待处理数据的数据长度对应的目标变换空间,然后利用预设初始化策略,在目标变换空间中确定与其对应的傅里叶变换算法,最后利用策略可复用性这一特点,在目标变换空间中,利用与所述目标变换空间对应的傅里叶变换算法,对多个所述目标数据执行傅里叶变换,以获得多个输出数据;如此,实现了利用一次预设初始化策略确定与目标变换空间对应的傅里叶变换算法后,即可利用该目标变换空间对多个目标数据执行傅里叶变换的目的,在保障了傅里叶变换性能的基础上,大大缩减了基于预设初始化策略确定傅里叶变换算法的次数,提升了傅里叶变换的执行效率。