CN103106181A - 一种大点数fft在处理器上的实现方法 - Google Patents

一种大点数fft在处理器上的实现方法 Download PDF

Info

Publication number
CN103106181A
CN103106181A CN2013100348123A CN201310034812A CN103106181A CN 103106181 A CN103106181 A CN 103106181A CN 2013100348123 A CN2013100348123 A CN 2013100348123A CN 201310034812 A CN201310034812 A CN 201310034812A CN 103106181 A CN103106181 A CN 103106181A
Authority
CN
China
Prior art keywords
fft
processor
data
cache
row
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.)
Granted
Application number
CN2013100348123A
Other languages
English (en)
Other versions
CN103106181B (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201310034812.3A priority Critical patent/CN103106181B/zh
Publication of CN103106181A publication Critical patent/CN103106181A/zh
Application granted granted Critical
Publication of CN103106181B publication Critical patent/CN103106181B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种大点数FFT在处理器上的实现方法,能够解决传统FFT算法在处理器上实现大点数快FFT时没有充分考虑Cache丢失对执行效率影响的问题,改进了传统Winograd算法处理速度有限的问题。该方法包括:将一维序列存储为二维矩阵;处理器先列FFT:每次从二维矩阵中读取i列数据,读取的i列数据分
Figure DDA00002790658900011
次处理,则处理器共读取并处理次;其中,在保证列长度的基础上,使行长度M小于或等于处理器所用Cache的容量;处理器再进行行FFT,一次一行,且采用新的旋转因子,并将结果按照列方向输出。

Description

一种大点数FFT在处理器上的实现方法
技术领域
本发明涉及一种改进型快速傅立叶变换(FFT)算法在处理器上实现大点数FFT的方法,属于信号处理领域。
背景技术
快速傅里叶变换(FFT)广泛应用于雷达、通信和图像处理等科学技术领域,这使得FFT的工程实现具有十分重要的意义。特别是,在雷达系统中高分辨大测绘带宽的合成孔径雷达的飞速发展,对信号处理系统大数据的高速实时处理提出了更高的要求,这就需要信号处理中大点数FFT的快速实现。在实际应用中,一般采用专用数字信号处理器(DSP)来实现。
TS201是美国模拟器件公司的一款高性能、高并行的静态超标量处理器。在TS201处理器中,其内部嵌入了24Mbit的嵌入式DRMA,整个DRAM划分为6个存储块,每个存储块都通过交叉连接器分别连接4套128位宽的内部总线,因此处理器能够在同一个时钟内实现对4个存储块的访问。这些交叉连接器包含预取数缓冲、读缓冲、回存缓冲和高速缓冲,其连接图1所示。TS201通过地址总线和数据总线对DRAM进行读写数据操作时,首先会将数据缓存到缓冲区(Cache)内,内核在读取数据时会先直接从Cache中读取数据,如果不能在Cache中命中数据,再从DRAM中读取数据。因此,通过Cache的预缓存作用可以提高内核对DRAM的读写效率。但是Cache的大小有限,当进行大点数FFT处理时,Cache不能容纳整个序列的数据,那么一部分在Cache中另一部分在DRAM中,将会带来读取速度较慢,以及访问错误等问题。
现有多种FFT算法在TS201上实现,例如Winograd算法。现将该算法介绍如下:设FFT变换前的序列为x(n),FFT变换后的序列为X(k):
X ( k ) = Σ n = 0 N - 1 x ( n ) W N nk , k,n=0,1,...,N-1  (1)
其中,Wn为铰链因子,Wn=e-j2π/n
Figure BDA00002790658700012
N为序列中元素总数,FFT变换前后序列元素数目不变。
传统的Winograd算法实现FFT的思想是将大点数的FFT尽量拆分成小点数来计算,将一维序列x(n)和X(k)分别在时域和频域映射成二维矩阵形式。以时域x(n)为例,将其拆分为L×M的二维矩阵,L为行数,M为列数,那么FFT变换后频域X(k)表示为M×L的二维矩阵。
设n1和n0分别为时域二维矩阵的行、列序号,k0和k1分别为频域二维矩阵的行、列序号,则有如下关系:
n = Mn 1 + n 0 ; k = Lk 1 + k 0 n 0 = 0,1 , . . . , M - 1 ; n 1 = 0,1 , . . . , L - 1 k 0 = 0,1 , . . . , L - 1 ; k 1 = 0,1 . . . , M - 1 - - - ( 2 )
将(2)式代入公式(1)中得:
X ( k ) = X ( k 1 , k 0 ) = Σ n 0 = 0 M - 1 Σ n 1 = 0 L - 1 x ( Mn 1 + n 0 ) W N ( Mn 1 + n 0 ) ( Lk 1 + k 0 )
= Σ n 0 = 0 M - 1 ( { Σ n 1 = 0 L - 1 x ( n 1 , n 0 ) W L n 1 k 0 } W N n 0 k 0 ) W M n 0 k 1 - - - ( 3 )
其中,
Figure BDA00002790658700024
与式(1)的形式类似,相当于对一点数据进行FFT,设 X s ( n 0 ) = Σ n 1 = 0 L - 1 x ( n 1 , n 0 ) W L n 1 k 0 , Σ n 0 = 0 M - 1 ( X s ( n 0 ) · W N n 0 k 0 ) W M n 0 k 1 也与式(1)的形式类似,相当于对Xs(n0)乘以铰链因子
Figure BDA00002790658700027
后再进行一次FFT。
可见,由公式(3)可以得到Winograd算法实现FFT的步骤:
1)将一维序列x(n)拆分成L×M的二维矩阵序列,并转置为M×L;
2)对二维矩阵,按照行方向计算L点FFT,共处理M条线;
3)对步骤2)的变换结果乘以铰链因子
Figure BDA00002790658700028
4)对步骤3)的处理结果进行转置,变换为L×M的矩阵;
5)对步骤4)的变换结果,按照行方向计算M点FFT,共处理L条线;
6)将处理结果进行转置,得到计算结果。
该Winograd算法的问题是,需要单独执行一个乘以铰链因子的步骤,并进行3次显性转置,从而引入了额外运算,因此会降低处理速度。
发明内容
有鉴于此,本发明提供了一种大点数FFT在处理器上的实现方法,能够解决传统FFT算法在处理器上实现大点数快FFT时没有充分考虑Cache丢失对执行效率影响的问题,并且通过优化矩阵行列读取方法,并进行蝶形运算重构,改进了传统Winograd算法处理速度有限的问题。
该大点数FFT在处理器上的实现方法包括如下步骤:
步骤一、将待处理的一维序列x(n)分L段存储为L×M的二维矩阵,L为列的长度,M为行的长度;设定后续步骤二中每次读取i列数据,i为正整数,则在保证
Figure BDA00002790658700031
的基础上,使行长度M小于或等于CacheLength;CacheLength为处理器所用Cache的容量;
步骤二、处理器进行列FFT;
处理器每次从L×M二维矩阵中读取i列数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取数据并进行列FFT,并将结果原位存回L×M二维矩阵;假设根据处理器数据宽度的限制,处理器每次处理数据量为w列,则i的取值为w的整数倍;读取的i列数据分
Figure BDA00002790658700032
次处理;处理器共读取次数据并进行列FFT,从而实现M次L点的列FFT;
步骤三、处理器进行行FFT;
处理器每次从步骤二处理后的L×M二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取缓存数据并进行行FFT,并将结果按照列方向输出;处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT;
本步骤的行FFT运算时第b级蝶形运算所用的旋转因子W(b,u)由下式确定:
W ( b , u ) = W P ( b ) k 0 · W Q ( b ) u
其中,Wn=e-j2π/n,P(b)=N/2c-b,Q(b)=M/2c-b
b表示FFT算法中蝶形运算的当前级数;
c表示FFT算法中所包含蝶形运算的总级数,c=log2(M);
u表示b级蝶形运算输出序列的序号,取值范围是u=0,1,...,Q(b)-1;
k0为当前进行FFT变换的行数据的行序号,即FFT变换后得到的频域二维矩阵的列序号。
有益效果:
本发明提供了一种应改进型Winograd算法处理器上实现大点数FFT的方法,与现有的FFT实现方法相比,具有以下优点:通过优化矩阵行列读写效率,来避免数据读写时Cache的频繁丢失对FFT执行效率的影响,同时采用改进型Winograd算法进行蝶形运算重构将乘铰链因子隐藏在蝶形运算中,减少了数据相乘带来的时间开销,因此,本发明方法可以显著提高了FFT的运行效率。
附图说明
图1为TS201处理器内部框图。
图2为矩阵列方向访问时的示意图。
图3为矩阵行方向访问时的示意图。
图4为本发明流程图。
图5为本发明方法与现有几种算法实现不同浮点数FFT时,执行时间的曲线对比图。
具体实施方式
本发明通过以下两个方面对现有技术进行改进:
(一)相对于传统Winograd算法中引入单独一个乘以铰链因子的步骤的问题,本发明采取重构蝶形运算将铰链因子
Figure BDA00002790658700042
运算隐藏在第二次FFT处理中。
(二)相对于传统Winograd算法有三次显性转置的问题,本发明改变对二维矩阵的读取顺序来实现转置,但考虑到按列读取时,行切换会带来额外时间开销,则本发明通过优化矩阵行列读写效率来避免,且行列读写时尽量充分利用Cache,从而提高Cache命中率,以提高FFT执行效率。
下面结合附图对上述两个改进点进行详细说明,并且采用TS201处理器为例。在实际中,本发明不限于采用哪种处理器。
(一)将铰链因子
Figure BDA00002790658700043
运算隐藏在第二次FFT处理中的方案设计。
由于FFT算法中包括多级蝶形运算,每次蝶形运算都需要乘以旋转因子,因此,可以通过重构FFT算法中的蝶形运算将第(3)步和第(5)步进行合并,只是蝶形运算所乘的旋转因子不同。新旋转因子的推导过程如下:
设:
X s ( n 0 ) = Σ n 1 = 0 L - 1 x ( n 1 , n 0 ) W L n 1 k 0 - - - ( 4 )
将式(4)代入公式(3)有:
X ( k 1 , k 0 ) = Σ n 0 = 0 M - 1 ( X s ( n 0 ) W N n 0 k 0 W M n 0 k 1 ) - - - ( 5 )
对公式(5)的变换序列按照奇偶分解,可表示为:
X ( k 1 , k 0 ) = Σ h = 0 M / 2 - 1 X S ( 2 h ) W N 2 hk 0 W M 2 hk 1
+ Σ h = 0 M / 2 - 1 X S ( 2 h + 1 ) W N ( 2 h + 1 ) k 0 W M ( 2 h + 1 ) k 1 - - - ( 6 )
= H ( k 1 ) + H ′ ( k 1 ) W N k 0 W M k 1
其中:
H ( k 1 ) = Σ h = 0 M / 2 - 1 X S ( 2 h ) W N 2 hk 0 W M / 2 hk 1 H ′ ( k 1 ) = Σ h = 0 M / 2 - 1 X S ( 2 h + 1 ) W N 2 hk 0 W M / 2 hk 1 - - - ( 7 )
由以上推导可以看出:
当k1=0,1...M/2-1时:
X ( k 1 , k 0 ) = H ( k 1 ) + H ′ ( k 1 ) W N k 0 W M k 1 - - - ( 8 )
当k1=M2+0,...,M/2+u,…M-1时:
X ( M 2 + u , k 0 ) = H ( u ) - H ′ ( u ) W N k 0 W M u - - - ( 9 )
其中,u=0,1,2...M/2-1。
通过公式(7)可以求出序列H(k1)和H'(k1)在区间(0~M/2-1)内的各个值,进而利用公式(8)和(9)得到所有的X(k1,k0)。对于序列H(k1)和H'(k1)的计算可根据前面推导过程继续分解,直到分解为两个数据参与运算为止,该推导过程与基二FFT变换相同。
由公式(8)和(9)可以看出,第b级旋转因子为
Figure BDA00002790658700053
此时,u的取值为u=0,1,2...M/2-1;
继续推导,由公式(7)可知,令k1=u,代入可知
H ( μ ) = Σ h = 0 M / 2 - 1 X S ( h ) W N / 2 hk 0 W M / 2 hk 1
将变换序列按照奇偶分解
H ( μ ) = Σ l = 0 M / 4 - 1 X S ( 2 l ) W N / 2 2 lk 0 W M / 2 2 lk 1
+ Σ l = 0 M / 4 - 1 X S ( 2 l + 1 ) W N / 2 ( 2 l + 1 ) k 0 W M / 2 ( 2 l + 1 ) k 1
= H ( η ) + H ′ ( η ) W N / 2 k 0 W M / 2 k 1
其中:
H ( η ) = Σ l = 0 M / 4 - 1 X S ( 2 l ) W N / 2 2 lk 0 W M / 2 2 hk 1 H ′ ( η ) = Σ l = 0 M / 4 - 1 X S ( 2 l + 1 ) W N / 2 2 lk 0 W M / 2 2 lk 1
由此可以看出,第(b-1)级旋转因子为
Figure BDA00002790658700059
此时u的取值为(0~M/4-1);
以此类推,直到两个数据参与蝶形运算,设第b级蝶形计算所乘的旋转因子,那么该旋转因子可表示为:
W ( b , u ) = W P ( b ) k 0 W Q ( b ) u - - - ( 10 )
其中,u=0,1,...,Q(b)-1,Q(b)=M/2c-b,P(b)=N/2c-b,c=log2(M)。
W(b,u)表示第b级蝶形计算所乘的旋转因子;
b表示蝶形运算的级数;
c表示FFT算法中所包含蝶形运算的总级数;
u表示b级蝶形运算时输出序列的序号;第b级蝶形运算时u会取遍u=0,1,...,Q(b)-1。
k0为当前进行行FFT变换的行数据的行序号,即FFT变换后得到的频域二维矩阵的列序号。
可见,通过重构第二次FFT中蝶形运算所乘的旋转因子W(b,u),从而将铰链因子
Figure BDA00002790658700061
隐藏在新的蝶形运算中,从而解决了引入额外运算的问题。
(二)解决三次显性转置的方案设计。
为了解决显性转置对处理效率的影响,可以采用变换行列号方式实现对二维矩阵的访问。具体来说,第一步,将一维序列x(n)拆分为L×M的二维矩阵,在不进行转置的情况下,处理器按列从L×M二维矩阵中读取列数据,通过Cache的缓存放入内存的指定空间,再指定空间读取列数据并进行列FFT,并将结果原位存回L×M二维矩阵。第二步,处理器按照行方向进行L个M点的行FFT,行FFT运算中各级蝶形运算所用的旋转因子由公式(10)确定,Cache的使用方法与第一步相同。
从以上处理可以看出,并没有进行显性转置操作。但是其带来的问题是,读取一列数据时,需要每读一个数据均进行行切换,而行切换需要切换时间。读取一行数据时,行数据不能太长,如果超出Cache的容量,则会出现因无法从Cache命中数据带来的各种问题。基于此,对二维矩阵的访问优化为如下方案:
对于列处理:
为了尽量少的行切换,可以在第一步中一次读取几列数据,读取列数的多少以及每列含数据量大小均需要根据Cache的容纳量计算,以实现对Cache的充分利用。为了实现高效并行处理和减少Cache丢失,必须满足两个条件:
(1)一次读取i列数据,如图2所示。考虑到处理器数据宽度的限制,每次可以处理w列数据,则读取的数据列数i需要是w的整数倍,本实施例中,设w=4,则i为4的整数倍。处理器一次的处理量w和该处理器总线带宽有关系,根据处理器每次可以读取数据的长度来决定w的值。
(2)总和考虑i和列长度L,使得i×L小于CacheLength,但尽可能贴近CacheLength,那么CacheLength为Cache的容量。这样,可以保证每打开一个页面(page)尽可能多读数据到缓存,以减少开/关页面引起的时延。
图2右图示出了从二维矩阵中读取i列数据的示意图,图2左图示出了i列数据在Cache中的分布。
对于行处理:
在第二步中每次读取一行进行FFT时,为了充分利用Cache,且行方向的点数在划分时也需要考虑Cache的容纳量。只有当读一行的数据尽可能填充Cache空间才能充分利用Cache的优势,协助数据访问。图3右图示出了从二维矩阵中读取一行数据的示意图,图3左图示出了该行数据在Cache中的分布。
可见,由于经过拆分后列方向数据访问跳变步长较小,处理数据缓存在Cache中,因此通过行列号变换方式访问矩阵,仅在每列处理的第一级和最后一级存在Cache丢失,后续处理中因数据位于缓存中而不会有额外开销。同时采取变换行列号的方法属于原位操作,可省去额外的转置空间,故采用该方法访问二维矩阵,要优于直接使用三次显性转置。然而,直接通过行列号进行访问矩阵数据时仍会因行列拆分不同引起Cache频繁丢失,这时就需要限制行列的拆分规则来发挥行列读取对Cache的利用率。
根据以上分析,本发明改进型FFT算法在TS201上实现的具体流程包括以下步骤,参见图4:
步骤一、将待处理的一维序列x(n)拆分为L段,存储L×M的二维矩阵,L为列的长度,M为行的长度;设定后续步骤中每次读取i列数据,i为正整数,且i为w的倍数,w为处理器每次处理数据的列数值;在保证
Figure BDA00002790658700071
的基础上,使行长度M小于或等于TS201Cache大小,以M=CacheLength为最佳。
步骤二、处理器按照列方向进行列FFT处理。
在处理过程中,处理器每次从L×M二维矩阵中读取i列的数据,通过Cache的缓存放入内存的指定空间,该指定空间是为计算中间量分配的存储空间;然后,处理器从指定空间读取数据并进行列FFT,并将结果原位存回L×M二维矩阵。由于(i×L)小于CacheLength,因此i×L点的数据均存储在Cache中,处理器每次从指定空间读取所需数据时,都能从Cache中命中。
由于处理器数据总线宽度有限,因此处理器在每次处理i列数据时,分多次处理,假设每次处理4列,则需处理
Figure BDA00002790658700072
次。处理器共读取
Figure BDA00002790658700073
次数据并进行FFT,从而实现M次L点的列FFT;
步骤三、对步骤二的结果,处理器按照行方向进行行FFT处理。
在处理过程中,处理器每次从L×M二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间;然后处理器从指定空间读取缓存数据并进行行FFT,并将结果按照列方向顺序输出到内存中用于存储FFT变换结果的位置。处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT。同理,由于M小于或等于CacheLength,因此M点数据均存储在Cache中,处理器每次从指定空间读取所需数据时,都能从Cache中命中。
并且,本步骤的行FFT所用的旋转因子由公式(10)决定。
至此,本流程结束。
对不同浮点数FFT利用现有方法和本实施例中的方法得到的执行时间对比曲线,如图5所示;相比于传统的Winograd算法的执行效率提高了至少30%,比SingLeton算法的执行效率也提高了近15%。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种大点数FFT在处理器上的实现方法,其特征在于,包括:
步骤一、将待处理的一维序列x(n)分L段存储为L×M的二维矩阵,L为列的长度,M为行的长度;设定后续步骤二中每次读取i列数据,i为正整数,则在保证
Figure FDA00002790658600011
的基础上,使行长度M小于或等于CacheLength;CacheLength为处理器所用Cache的容量;
步骤二、处理器进行列FFT;
处理器每次从L×M二维矩阵中读取i列数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取数据并进行列FFT,并将结果原位存回L×M二维矩阵;假设根据处理器数据宽度的限制,处理器每次处理数据量为w列,则i的取值为w的整数倍;读取的i列数据分次处理;处理器共读取
Figure FDA00002790658600013
次数据并进行列FFT,从而实现M次L点的列FFT;
步骤三、处理器进行行FFT;
处理器每次从步骤二处理后的L×M二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取缓存数据并进行行FFT,并将结果按照列方向输出;处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT;
本步骤的行FFT运算时第b级蝶形运算所用的旋转因子W(b,u)由下式确定:
W ( b , u ) = W P ( b ) k 0 · W Q ( b ) u
其中,Wn=e-j2π/n,P(b)=N/2c-b,Q(b)=M/2c-b
b表示FFT算法中蝶形运算的当前级数;
c表示FFT算法中所包含蝶形运算的总级数,c=log2(M);
u表示b级蝶形运算输出序列的序号,取值范围是u=0,1,...,Q(b)-1;
k0为当前进行FFT变换的行数据的行序号。
CN201310034812.3A 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法 Expired - Fee Related CN103106181B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310034812.3A CN103106181B (zh) 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310034812.3A CN103106181B (zh) 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法

Publications (2)

Publication Number Publication Date
CN103106181A true CN103106181A (zh) 2013-05-15
CN103106181B CN103106181B (zh) 2016-03-02

Family

ID=48314048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310034812.3A Expired - Fee Related CN103106181B (zh) 2013-01-29 2013-01-29 一种大点数fft在处理器上的实现方法

Country Status (1)

Country Link
CN (1) CN103106181B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615582A (zh) * 2015-02-06 2015-05-13 中国人民解放军国防科学技术大学 面向gpdsp的大点数一维fft向量化计算的方法
CN106649199A (zh) * 2016-12-23 2017-05-10 东华大学 一种基于smp的足球机器人超大点数fft算法
CN108229654A (zh) * 2016-12-14 2018-06-29 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
CN114090951A (zh) * 2021-11-26 2022-02-25 北京睿芯众核科技有限公司 一种面向数据流处理器芯片的傅里叶变化优化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013811A (ja) * 2002-06-11 2004-01-15 Sharp Corp 高速フーリエ変換のための回転因子表およびそれを用いた高速フーリエ変換装置
CN101504637A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种点数可变实时fft处理芯片
CN101930425A (zh) * 2009-06-24 2010-12-29 华为技术有限公司 信号处理方法、数据处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013811A (ja) * 2002-06-11 2004-01-15 Sharp Corp 高速フーリエ変換のための回転因子表およびそれを用いた高速フーリエ変換装置
CN101504637A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种点数可变实时fft处理芯片
CN101930425A (zh) * 2009-06-24 2010-12-29 华为技术有限公司 信号处理方法、数据处理方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BORIS LERNER: "Parallel Implementation of Fixed-Point FFTs on TigerSHARC Processors", 《ANALOG DEVICES,ENGINEER-TO-ENGINEER NOTE》, 3 February 2005 (2005-02-03) *
BORIS LERNER: "Writing Efficient Floating-Point FFTs for ADSP-TS201 TigerSHARC", 《ANALOG DEVICES(ENGINEER-TO-ENGINEER NOTE)》, 4 March 2004 (2004-03-04) *
李欣 等: "定点FFT在TS201上的高效实现", 《北京理工大学学报》, 15 January 2010 (2010-01-15) *
王晓君 等: "二维级联流水结构大点数FFT运算器实现研究", 《信号与信息处理》, vol. 40, no. 11, 5 November 2010 (2010-11-05) *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615582A (zh) * 2015-02-06 2015-05-13 中国人民解放军国防科学技术大学 面向gpdsp的大点数一维fft向量化计算的方法
CN104615582B (zh) * 2015-02-06 2018-02-02 中国人民解放军国防科学技术大学 面向gpdsp的大点数一维fft向量化计算的方法
CN108229654A (zh) * 2016-12-14 2018-06-29 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
CN108229654B (zh) * 2016-12-14 2020-08-14 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
CN106649199A (zh) * 2016-12-23 2017-05-10 东华大学 一种基于smp的足球机器人超大点数fft算法
CN114090951A (zh) * 2021-11-26 2022-02-25 北京睿芯众核科技有限公司 一种面向数据流处理器芯片的傅里叶变化优化方法

Also Published As

Publication number Publication date
CN103106181B (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
CN110765709B (zh) 一种基于fpga的基2-2快速傅里叶变换硬件设计方法
CN102208005A (zh) 一种2-d卷积器
CN103106181A (zh) 一种大点数fft在处理器上的实现方法
CN101847986A (zh) 一种实现fft/ifft变换的电路及方法
Umuroglu et al. An energy efficient column-major backend for FPGA SpMV accelerators
CN102419741A (zh) 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法
Yu et al. FPGA architecture for 2D Discrete Fourier Transform based on 2D decomposition for large-sized data
US20140089369A1 (en) Multi-granularity parallel fft computation device
WO2017106603A1 (en) System and methods for computing 2-d convolutions and cross-correlations
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN101794355B (zh) 电大物体电磁辐射和散射的计算机核外并行计算方法
Joshi FFT architectures: a review
Chen et al. Energy optimizations for FPGA-based 2-D FFT architecture
CN102970545A (zh) 一种基于二维离散小波变换算法的静态图像压缩方法
US9268744B2 (en) Parallel bit reversal devices and methods
Chen et al. The parallel algorithm implementation of matrix multiplication based on ESCA
Zou et al. High performance sparse matrix-vector multiplication on FPGA
CN112052941B (zh) 一种应用于cnn网络卷积层的高效存算系统及其运算方法
Takala et al. Scalable FFT processors and pipelined butterfly units
CN101764778B (zh) 一种基带处理器和基带处理方法
EP4168943A1 (en) System and method for accelerating training of deep learning networks
KR100444729B1 (ko) 레딕스-8 단일 경로 지연 전달 구조의 고속 퓨리에 변환장치 및 그 방법
Bakos et al. Exploiting matrix symmetry to improve FPGA-accelerated conjugate gradient
US20120102083A1 (en) Fourier transform processor
CN104102594A (zh) 实现图像数据缓存读写控制的系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160302

Termination date: 20170129