CN114090951A - 一种面向数据流处理器芯片的傅里叶变化优化方法 - Google Patents
一种面向数据流处理器芯片的傅里叶变化优化方法 Download PDFInfo
- Publication number
- CN114090951A CN114090951A CN202111420340.6A CN202111420340A CN114090951A CN 114090951 A CN114090951 A CN 114090951A CN 202111420340 A CN202111420340 A CN 202111420340A CN 114090951 A CN114090951 A CN 114090951A
- Authority
- CN
- China
- Prior art keywords
- factor
- data stream
- points
- stream processor
- processor chip
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Discrete Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种面向数据流处理器芯片的傅里叶变化优化方法,包括如下步骤:步骤S1:获取N点待变换的傅里叶变化源操作数,将N分解为符合数据流处理器芯片大小的第一因数和第二因数;步骤S2:得到傅里叶变化公式;步骤S3:将所述第一因数点的旋转因子、计算信息及控制信息送到对应的芯片阵列中;步骤S4:计算所述第二因数个第一因数点的FFT;步骤S5:计算N点的旋转因子;步骤S6:计算所述第一因数个第二因数点的FFT;步骤S7:利用DPU阵列数据传输的DMA对矩阵进行转置。本发明对于算法的优化充分,充分掩盖了FFT对于高带宽需求与实际现实不足的问题。
Description
技术领域
本发明涉及数据流处理技术领域,特别涉及一种面向数据流处理器芯片的傅里叶变化优化方法。
背景技术
数据流处理器芯片(以下简称为DPU)是一种新型可编程处理器,集三个关键要素于一身。DPU是一种SOC(System On Chip),它结合了:行业标准的、高性能及软件可编程的多核CPU,通常基于已应用广泛的Arm架构,与其的SOC组件密切配合。高性能网络接口,能以线速或网络中的可用速度解析、处理数据,并高效地将数据传输到GPU和CPU。各种灵活和可编程的加速引擎,可以卸载AI、机器学习、安全、电信和存储等应用,并提升性能。所有这些DPU功能对于实现安全的、裸性能的、原生云计算的下一代云上大规模计算至关重要。
现有技术一公开了一种基于DSP(Digital Signal Processing,即数字信号处理技术)芯片的快速傅里叶变换(fast Fourier transform,以下简称FFT)优化方案,针对DSP的FFT的性能优化主要是在小规模FFT的优化上进行,例如设置旋转因子表,倒序表等。主要是针对FFT中每一步的实现做到具体优化。但是该方案具有如下缺点:现有的DSP芯片并没有实现并行度很高的FFT解决方案,只是在低功耗情况下对小规模的FFT进行了一定量的优化,并没有实现对于大规模高并行度的解决方案。
现有技术二公开一种基于GPU(graphics processing unit,图形处理器)的FFT优化方案,对于GPU的FFT优化,nVidia基于自家的GPU芯片实现了一系列的优化并实现了基于nVidia的fftlib等一系列库的具体优化方案。但是该方案具有如下缺点:由于GPU的带宽问题及架构问题,并没有解决高并行度,充分利用芯片计算性能的问题,导致GPU的整体FFT的效率低下仅有5-8%的效率。
因此,如何将上述现有技术加以解决,即为本领域技术人员的研究方向所在。
发明内容
发明所要解决的问题
本发明的主要目的是提供一种面向数据流处理器芯片的傅里叶变化优化方法。本发明针对在DPU中的FFT具体计算进行优化,加快DPU中FFT的计算,还针对高并行度的FFT进行优化,充分利用DPU芯片的高并行度优势,来解决上述现有技术中所存在的问题。
用于解决问题的方案
为了达到上述目的,本发明提供一种面向数据流处理器芯片的傅里叶变化优化方法,包括如下步骤:
步骤S1:获取N点待变换的傅里叶变化源操作数,将N分解为符合数据流处理器芯片大小的第一因数和第二因数;
步骤S2:得到傅里叶变化公式;
步骤S3:将所述第一因数点的旋转因子、计算信息及控制信息送到对应的芯片阵列中;
步骤S4:计算所述第二因数个第一因数点的FFT;
步骤S5:计算N点的旋转因子;
步骤S6:计算所述第一因数个第二因数点的FFT;
步骤S7:利用DPU阵列数据传输的DMA对矩阵进行转置。
优选地,所述第一因数为r1,所述第二因数为r2,r1、r2均未大于0的正整数,且满足N=r1r2。
优选地,在步骤S2中,将待计算的N点按照<r1,r2>的矩阵规模映射到芯片中,将计算指令及芯片控制信息存放到芯片中。
优选地,在步骤2及步骤3,将计算指令及计算数据发送的每个PE(ProcessingElement,处理单元)中。
优选地,在步骤S4中,计算r2个r1点的FFT,得到X1(k0,n0)。
优选地,在步骤S6中,计算r1个r2点的FFT。
优选地,步骤S7:利用DPU阵列数据传输的DMA对于<r1,r2>的矩阵,转置为<r2,r1>规模的矩阵,并按行顺序读出数据即为最终结果。
优选地,在所述步骤S5中,还包括索引到各点所对应的位置和旋转因子。
优选地,在步骤S5中,获取当前运行所在维度,从而获得当前计算数据在矩阵中的位置从而计矩阵所对应的旋转因子。
发明的效果
1、在DPU上对于计算优化后的FFT计算,DPU芯片的计算效率高达70%;
2、充分利用了DPU的高并行度的优势;
3、对于算法的优化充分,充分掩盖了FFT对于高带宽需求与实际现实不足的问题。
附图说明
图1是本发明一种面向数据流处理器芯片的傅里叶变化优化方法流程图。
图2是本发明指令及数据加载流向图。
图3是本发明利用步骤S1分解长度为8192点的傅里叶变化的示意图。
图4是本发明利用步骤S1分解长度为256点的傅里叶变化的示意图。
图5是本发明长度为256点的傅里叶变化步骤6数据划分的示意图。
具体实施方式
下面将结合本发明实施例中的图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。并且,在此处需要进一步强调的是,以下的具体实施例提供的优选的技术方案,各方案(实施例)之间是可以相互配合或结合使用的。
如图1所示,为本发明一种面向数据流处理器芯片的傅里叶变化优化方法流程图,本发明的一种面向数据流处理器芯片的傅里叶变化优化方法包括如下步骤:
步骤S1:获取N点待变换的傅里叶变化源操作数。
具体为:将N分解为符合数据流处理器芯片大小的两个因数r1,r2(r1、r2是两个大于0的正整数),且满足N=r1r2。则可将N点中的任意点n(n<N)用下式表达:
式中n0、n1为两个变量。
同理频率变量k(k<N)可用下式表达:
式中k1、k2为两个变量。
步骤S2:得到傅里叶变化公式,经步骤1方法,傅里叶变化公式变化为:
其中,将待计算的N点按照<r1,r2>的矩阵规模映射到芯片中。将计算指令及芯片控制信息存放到芯片中去。
步骤S3:将r1点的旋转因子、计算信息及控制信息送到对应的芯片阵列中,如图2所示。
步骤S4:计算r2个r1点的FFT,得到X1(k0,n0)。
公式如下:(续接步骤S2)
步骤S5:计算N点的旋转因子。公式如下(续接步骤S4)
步骤S6:计算r1个r2点的FFT,计算公式如下:(续接步骤S5)
步骤S7:利用DPU阵列数据传输的DMA(Direct Memory Access,直接存储器访问)对于<r1,r2>的矩阵(见步骤1分解),转置为<r2,r1>规模的矩阵。按行顺序读出数据即为最终结果。
应用本发明的方法,数据流芯片擅长处理并行度高且高度重复的计算,利用上述步骤可以将傅里叶变化转化为高并行度高重复率的计算,充分发挥数据流芯片的优势,提升傅里叶变化的效率、性能。
以下,为本发明实现的面向数据流处理器芯片的傅里叶变化优化方法一个实施方式,具体实现:8192点快速傅里叶变化。
(1)利用步骤S1将8192点傅里叶变化分解为8192=32*256。采用r1=32点可以充分利用维度,增强并行度。则此时的数据维度划分如图3所示。
图3中看出16个PE中每个PE计算16个32点的FFT,其中PE的最大计算任务并行度为4(task=4),则循环次数为4(instance=4)。
(2)进行S2、S3步骤将计算指令及计算数据发送的每个PE中。
(3)根据(1)的划分从而完成步骤S4的计算,32点的FFT计算。
在数据流芯片中,由GTASK、GINST、GPE获取当前运行所在维度(task、instance的数值,当前PE编号0-15),例如使用GTASK、GINST、GPE获得task=1、instance=3、PE=12,则n0=12,k0=130。而后获取计算数据在矩阵中的位置从而计算获得旋转因子。
(5)利用步骤S1再次分解256点FFT为16(r1)*16(r2)点。则此时数据划分如下图4所示,每个PE计算32个16点的FFT,一共16个PE进行计算,任务并行数task=4,迭代次数instance=8。
(6)依次完成步骤S2及S3。(256点FFT的步骤S2及S3)
(7)完成256点FFT的步骤S4,计算16点的FFT。
(8)利用步骤S5计算256点的旋转因子,利用GTASK、GINST、GPE获取当前运行所在维度(所用计算方法与(4)相同),从而获得当前计算数据在矩阵中的位置从而计算<16,16>矩阵所对应的旋转因子。
(9)利用步骤S6计算256次r2=16点FFT。数据维度划分如图5所示,每个PE计算32个16点的FFT,一共16个PE进行计算,任务并行数task=4,迭代次数instance=8。与(5)不同的是此时数据划分的方式不同。
(10)利用步骤S7,对于<16,16>的矩阵进行32次转置,完成r2=256点FFT的所对应的步骤S7,从而完成完整的256点FFT计算。
(11)上述(5)(6)(7)(8)(9)(10)完成32次r2=256点FFT的计算,从而完成8192点FFT的步骤S6。
(12)对于<32,256>的矩阵进行转置,完成8192点FFT的步骤S7。
上述为8192点FFT在数据流芯片具体实现的过程。首先将8192点分解为32*256点进行计算,过程中256点同样可以分解为16*16点进行计算。合理的数据划分,可以提高傅里叶变化计算式的并行度,从而高效发挥出数据流芯片的优势,从而提升性能。
与现有技术相比,本发明的有益效果在于:
1、在DPU上对于计算优化后的FFT计算,DPU芯片的计算效率高达70%;
2、充分利用了DPU的高并行度的优势;
3、对于算法的优化充分,充分掩盖了FFT对于高带宽需求与实际现实不足的问题。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (9)
1.一种面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,包括如下步骤:
步骤S1:获取N点待变换的傅里叶变化源操作数,将N分解为符合数据流处理器芯片大小的第一因数和第二因数;
步骤S2:得到傅里叶变化公式;
步骤S3:将所述第一因数点的旋转因子、计算信息及控制信息送到对应的芯片阵列中;
步骤S4:计算所述第二因数个第一因数点的FFT;
步骤S5:计算N点的旋转因子;
步骤S6:计算所述第一因数个第二因数点的FFT;
步骤S7:利用DPU阵列数据传输的DMA对矩阵进行转置。
2.根据权利要求1所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
所述第一因数为r1,所述第二因数为r2,r1、r2均未大于0的正整数,且满足N=r1r2。
3.根据权利要求2所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
在步骤S2中,将待计算的N点按照<r1,r2>的矩阵规模映射到芯片中,将计算指令及芯片控制信息存放到芯片中。
4.根据权利要求2所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
在步骤2及步骤3,将计算指令及计算数据发送的每个PE中。
5.根据权利要求2所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
在步骤S4中,计算r2个r1点的FFT,得到X1(k0,n0)。
6.根据权利要求2所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
在步骤S6中,计算r1个r2点的FFT。
7.根据权利要求2所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
步骤S7:利用DPU阵列数据传输的DMA对于<r1,r2>的矩阵,转置为<r2,r1>规模的矩阵,并按行顺序读出数据即为最终结果。
8.根据权利要求2所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
在所述步骤S5中,还包括索引到各点所对应的位置和旋转因子。
9.根据权利要求8所述的面向数据流处理器芯片的傅里叶变化优化方法,其特征在于,
在步骤S5中,获取当前运行所在维度,从而获得当前计算数据在矩阵中的位置从而计矩阵所对应的旋转因子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111420340.6A CN114090951A (zh) | 2021-11-26 | 2021-11-26 | 一种面向数据流处理器芯片的傅里叶变化优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111420340.6A CN114090951A (zh) | 2021-11-26 | 2021-11-26 | 一种面向数据流处理器芯片的傅里叶变化优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090951A true CN114090951A (zh) | 2022-02-25 |
Family
ID=80304935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111420340.6A Pending CN114090951A (zh) | 2021-11-26 | 2021-11-26 | 一种面向数据流处理器芯片的傅里叶变化优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090951A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4156920A (en) * | 1977-06-30 | 1979-05-29 | International Business Machines Corporation | Computer system architecture for performing nested loop operations to effect a discrete Fourier transform |
US20120143936A1 (en) * | 2010-12-07 | 2012-06-07 | International Business Machines Corporation | RADIX-8 FIXED-POINT FFT LOGIC CIRCUIT CHARACTERIZED BY PRESERVATION OF SQUARE ROOT-i OPERATION |
CN103106181A (zh) * | 2013-01-29 | 2013-05-15 | 北京理工大学 | 一种大点数fft在处理器上的实现方法 |
CN103902506A (zh) * | 2014-04-16 | 2014-07-02 | 中国科学技术大学先进技术研究院 | 一种基于龙芯3b的fftw3优化方法 |
CN113378109A (zh) * | 2021-04-22 | 2021-09-10 | 浙江大学 | 一种基于存内计算的混合基快速傅里叶变换计算电路 |
-
2021
- 2021-11-26 CN CN202111420340.6A patent/CN114090951A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4156920A (en) * | 1977-06-30 | 1979-05-29 | International Business Machines Corporation | Computer system architecture for performing nested loop operations to effect a discrete Fourier transform |
US20120143936A1 (en) * | 2010-12-07 | 2012-06-07 | International Business Machines Corporation | RADIX-8 FIXED-POINT FFT LOGIC CIRCUIT CHARACTERIZED BY PRESERVATION OF SQUARE ROOT-i OPERATION |
CN103106181A (zh) * | 2013-01-29 | 2013-05-15 | 北京理工大学 | 一种大点数fft在处理器上的实现方法 |
CN103902506A (zh) * | 2014-04-16 | 2014-07-02 | 中国科学技术大学先进技术研究院 | 一种基于龙芯3b的fftw3优化方法 |
CN113378109A (zh) * | 2021-04-22 | 2021-09-10 | 浙江大学 | 一种基于存内计算的混合基快速傅里叶变换计算电路 |
Non-Patent Citations (3)
Title |
---|
A.LI等: "Accelerating Binarized Neural Networks via Bit-Tensor-Cores in Turing GPUs", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
王晓君等: "二维级联流水结构大点数FFT运算器实现研究", 《无线电工程》 * |
雷元武等: "DSP芯片中的高能效FFT加速器", 《计算机研究与发展》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017000756A1 (zh) | 基于3072点快速傅里叶变换的数据处理方法及处理器、存储介质 | |
WO2013097219A1 (zh) | 一种用于并行fft计算的数据存取方法及装置 | |
CN113628094A (zh) | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 | |
CN102902657A (zh) | 一种利用gpu加速fft的方法 | |
Zhao et al. | Combined kernel for fast GPU computation of Zernike moments | |
Durrani et al. | Accelerating fourier and number theoretic transforms using tensor cores and warp shuffles | |
CN106933777A (zh) | 基于国产申威26010处理器的基2一维fft的高性能实现方法 | |
CN102567282A (zh) | 通用dsp处理器中fft计算实现装置和方法 | |
CN109451322A (zh) | 用于图像压缩的基于cuda架构的dct算法和dwt算法的加速实现方法 | |
CN102364456A (zh) | 64点fft计算器 | |
WO2022068205A1 (zh) | 数据存储和读取方法及系统 | |
CN112383497B (zh) | 5g系统中ofdm变换方法及相关产品 | |
CN114090951A (zh) | 一种面向数据流处理器芯片的傅里叶变化优化方法 | |
JP4057729B2 (ja) | フーリエ変換方法およびプログラム記録媒体 | |
CN109271344B (zh) | 基于申威芯片架构并行文件读取的数据预处理方法 | |
WO2013097235A1 (zh) | 并行位反序装置和方法 | |
Cui-xiang et al. | Some new parallel fast Fourier transform algorithms | |
CN103902506B (zh) | 一种基于龙芯3b的fftw3优化方法 | |
CN101751356A (zh) | 用于改进直接存储器存取传送效率的方法、系统和装置 | |
CN114116208A (zh) | 一种基于gpu的短波辐射传输模式三维加速方法 | |
Lee et al. | Large‐scale 3D fast Fourier transform computation on a GPU | |
Wang et al. | A novel parallel algorithm for sparse tensor matrix chain multiplication via tcu-acceleration | |
JP2004348493A (ja) | 通信隠蔽型の並列高速フーリエ変換方法 | |
US20030120692A1 (en) | Real-time method and apparatus for performing a large size fast fourier transform | |
CN117313803B (zh) | 基于risc-v向量处理器架构的滑动窗口2d卷积计算方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220225 |
|
RJ01 | Rejection of invention patent application after publication |