发明名称 一种大点数FFT在处理器上的实现方法
摘要 本发明公开了一种大点数FFT在处理器上的实现方法,能够解决传统FFT算法在处理器上实现大点数快FFT时没有充分考虑Cache丢失对执行效率影响的问题,改进了传统Winograd算法处理速度有限的问题。该方法包括:将一维序列存储为二维矩阵;处理器先列FFT:每次从二维矩阵中读取i列数据,读取的i列数据分<img file="DDA00002790658900011.GIF" wi="39" he="86" />次处理,则处理器共读取并处理<img file="DDA00002790658900012.GIF" wi="54" he="86" />次;其中,在保证列长度<img file="DDA00002790658900013.GIF" wi="309" he="87" />的基础上,使行长度M小于或等于处理器所用Cache的容量;处理器再进行行FFT,一次一行,且采用新的旋转因子,并将结果按照列方向输出。
申请公布号 CN103106181B 申请公布日期 2016.03.02
申请号 CN201310034812.3 申请日期 2013.01.29
申请人 北京理工大学 发明人 高立宁;刘峰;马潇;刘腾飞
分类号 G06F17/14(2006.01)I 主分类号 G06F17/14(2006.01)I
代理机构 北京理工大学专利中心 11120 代理人 杨志兵;高燕燕
主权项 一种大点数FFT在处理器上的实现方法,其特征在于,包括:步骤一、设FFT变换前的序列为x(n),将待处理的一维序列x(n)分L段存储为L×M的二维矩阵,n=0,1,…,N‑1,L为列的长度,M为行的长度,N为序列中元素总数;设定后续步骤二中每次读取i列数据,i为正整数,则在保证<img file="FDA0000840399080000011.GIF" wi="324" he="109" />的基础上,使行长度M小于或等于CacheLength;CacheLength为处理器所用Cache的容量;步骤二、处理器进行列FFT;处理器每次从L×M二维矩阵中读取i列数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取数据并进行列FFT,并将结果原位存回L×M二维矩阵;假设根据处理器数据宽度的限制,处理器每次处理数据量为w列,则i的取值为w的整数倍;读取的i列数据分<img file="FDA0000840399080000012.GIF" wi="54" he="109" />次处理;处理器共读取<img file="FDA0000840399080000013.GIF" wi="64" he="107" />次数据并进行列FFT,从而实现M次L点的列FFT;步骤三、处理器进行行FFT;处理器每次从步骤二处理后的L×M二维矩阵中读取一行数据,通过Cache的缓存放入内存的指定空间,然后从指定空间读取缓存数据并进行行FFT,并将结果按照列方向输出;处理器共读取L次数据并进行行FFT,从而实现L次M点的行FFT;本步骤的行FFT运算时第b级蝶形运算所用的旋转因子W(b,u)由下式确定:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>W</mi><mrow><mo>(</mo><mi>b</mi><mo>,</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>W</mi><mrow><mi>p</mi><mrow><mo>(</mo><mi>b</mi><mo>)</mo></mrow></mrow><msub><mi>k</mi><mn>0</mn></msub></msubsup><mo>&CenterDot;</mo><msubsup><mi>W</mi><mrow><mi>Q</mi><mrow><mo>(</mo><mi>b</mi><mo>)</mo></mrow></mrow><mi>u</mi></msubsup></mrow>]]></math><img file="FDA0000840399080000014.GIF" wi="439" he="85" /></maths>其中,W<sub>P(b)</sub>=e<sup>‑j2π/P(b)</sup>,W<sub>Q(b)</sub>=e<sup>‑j2π/Q(b)</sup>,P(b)=N/2<sup>c‑b</sup>,Q(b)=M/2<sup>c‑b</sup>;b表示FFT算法中蝶形运算的当前级数;c表示FFT算法中所包含蝶形运算的总级数,c=log<sub>2</sub>(M);u表示b级蝶形运算输出序列的序号,取值范围是u=0,1,...,Q(b)‑1;k<sub>0</sub>为当前进行FFT变换的行数据的行序号;所述处理器为TS201处理器。
地址 100081 北京市海淀区中关村南大街5号