[发明专利]基于国产申威26010处理器的基2一维FFT的高性能实现方法有效
申请号: | 201710150446.6 | 申请日: | 2017-03-14 |
公开(公告)号: | CN106933777B | 公开(公告)日: | 2019-03-19 |
发明(设计)人: | 张佳佳;杨超;尹万旺;赵玉文;魏迪;刘芳芳;袁欣辉 | 申请(专利权)人: | 中国科学院软件研究所;无锡江南计算技术研究所 |
主分类号: | G06F17/14 | 分类号: | G06F17/14 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 国产 26010 处理器 fft 性能 实现 方法 | ||
1.一种基于国产申威26010处理器的基2一维FFT的高性能实现方法,其特征在于:所述方法基于国产申威26010处理器的一个核组,所述核组由一个主核与64个从核组成,所述方法以接口层、主核层、从核层和核心层的四层结构框架进行FFT处理;接口层和主核层为主核上操作且操作输入输出数据存储于主核内存,从核层和核心层为从核上操作,且操作输入输出数据存储于从核局存LDM,即Local Direct Memory;具体实现如下:
(1)接口层建立输入数据的描述符;所述描述符设置FFT计算的基本信息,所述基本信息包括FFT计算中输入序列的数据维度、数据规模、数据精度以及变换类型;所述数据维度为一维,所述数据规模为2的幂,所述数据精度包括64位双精度数据与32位单精度数据,所述变换类型为复数到复数的变换,即输入输出数据皆为复数;;
(2)基于步骤(1)所述描述符信息,当输入数据规模N小于等于256时,主核层直接对输入序列进行FFT计算;当输入数据规模N大于等于512时,主核层设计基于两层分解的算法结构对输入序列进行分解,分解结果为多个小因子序列,小因子数据规模小于等于32,则输入序列的FFT计算转化为多个小因子序列的FFT计算,小因子序列的FFT计算在从核上执行;此外,不计输入数据规模N的大小,主核层负责FFT计算过程中所必需的旋转因子序列ωN的计算,ωN为不同n,l数值下旋转因子的统一表达方式,主核层直接计算数据为旋转因子n表示输入序列中数据的下标,l表示输出序列中数据的下标,下标即为序列中某一数据于序列中的位置序号;存放于临时数组中,作用于核心层小因子序列的FFT计算;
(3)主核上操作完毕之后,从核层发起DMA,即直接内存访问Direct Memory Access,读取主核内存数据至从核LDM中,然后从核对LDM数据进行小因子序列的FFT计算,最后DMA将从核LDM内的FFT计算结果写入主核内存;
(4)根据步骤(3)所述的从核对LDM数据进行小因子序列的FFT计算,此计算操作由核心层完成,核心层基于256位SIMD进行向量化运算的小因子优化函数进行小因子序列的FFT计算;SIMD为单指令流多数据流,256位SIMD表示一条指令同时处理256位数据,即FFT计算粒度为256位向量数据;此外,各从核分别进行小因子序列的FFT计算,计算结果存储于各自的LDM中。
2.权利要求1所述的基于国产申威26010处理器的基2一维FFT的高性能实现方法,其特征在于:所述步骤(2)中当输入数据规模N大于等于512时,主核层设计基于两层分解的算法结构对输入序列进行分解,该基于两层分解的算法基于迭代的Stockham计算框架,将输入序列分解为一系列的小因子序列,分解规则为库利-图基即Cooley-Turkey算法;Stockham计算框架首先基于N=N1*...*Ni*...*Nm的分解模式使用迭代的方法进行分解,其中i=1,2,...,m,之后对数据Ni的处理分为两种情况:
(11)当数据规模Ni为小因子数据规模时,则不再进行分解,即只进行一层分解;
(12)当数据规模Ni大于小因子数据规模时,则递归地基于Ni=f1*...*fk*...的分解模式进行二层分解,其中k=1,2,...,且分解时确保fk为小因子数据规模,则输入序列被分解为多个小因子序列。
3.根据权利要求1所述的基于国产申威26010处理器的基2一维FFT的高性能实现方法,其特征在于:步骤(3)所述的从核层发起DMA,读取主核内存数据至从核LDM中的具体情况如下:
(21)从核层发起DMA读取主核内存数据时,数据传输的起始地址满足128字节对齐且传输量至少为256字节的倍数;
(22)从核层读取数据至从核LDM时,依据主核输入数据规模,当输入数据规模N大于等于512且小于等于2048时,8个从核LDM均匀分担DMA读取的主核内存数据;当输入数据规模N大于等于4096时,64个从核LDM均匀分担DMA读取的主核内存数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所;无锡江南计算技术研究所,未经中国科学院软件研究所;无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710150446.6/1.html,转载请声明来源钻瓜专利网。