[发明专利]一种用于FPGA的并行Jacobi计算加速实现方法有效
申请号: | 201910285351.4 | 申请日: | 2019-04-10 |
公开(公告)号: | CN110110285B | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 史治国;何倩雯;刘颖;吴均峰;陈积明 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 林超 |
地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 fpga 并行 jacobi 计算 加速 实现 方法 | ||
1.一种用于FPGA的并行Jacobi计算加速实现方法,其特征在于:包括以下方面:
1)处理单元初始化
n×n维矩阵的数据输入到FPGA中利用并行Jacobi计算进行旋转变换处理,并行Jacobi计算中采用CORDIC算法进行平面旋转,平面旋转中建立二维xy坐标系;
FPGA内分设有多个处理单元,多个处理单元阵列排布,每个处理单元与自身相邻的处理单元通过数据接口连接,进行数据交互和元素交换,将执行并行Jacobi计算的n×n维矩阵中各元素按以下公式分配到处理单元Pij中:
其中,Pij表示第i行第j列的处理单元,a2i,2j表示n×n维矩阵中第2i行第2j列的元素,n表示矩阵的维度;
并且,下标i=j的处理单元Pij为对角处理单元,否则为非对角处理单元;处理单元Pij中下标满足2i=2j和2i-1=2j-1的元素为对角元素,否则为非对角元素;
2)对角处理单元计算旋转角度2θ对应的符号集并输出给非对角处理单元,
用以下公式迭代求出CORDIC算法旋转角度2θ对应符号集{d2θ,k},k=1,2,...,N,迭代总次数与CORDIC算法的迭代总次数相同:
θ0=2θ,tan(fk-1)=2-(k-1),k=1,2,...,N
其中,k表示迭代次数的序数,N表示迭代总次数,N取为FPGA所采用的数据位数;αk表示第k次迭代的第一符号参数,βk表示第k次迭代的第二符号参数,θ0表示旋转角度初始值,θk表示经k次迭代后的剩余旋转角度,fk-1表示第k-1次迭代的角度参数,d2θ,k表示第k次迭代下旋转角度2θ对应的符号;
最后,对角处理单元将自身计算获得的旋转角度2θ对应符号集{d2θ,k}输出到与自身处于同一行和同一列的非对角处理单元;
3)对角处理单元元素更新
由步骤2)中每次迭代求得的d2θ,k作为CORDIC算法中第k次迭代的旋转符号,对第一待旋转坐标(2apq,app-aqq)执行CORDIC算法以旋转角度2θ进行平面旋转;
步骤2)所有迭代完成后,将最终的平面旋转结果乘以第一补偿因子,得到旋转后的y坐标,即y1=2apqsin2θ+(app-aqq)cos2θ,第一补偿因子用以下公式求出:
其中,C1表示第一补偿因子;
然后对对角处理单元中的对角线元素用以下公式更新,并将非对角线元素置0:
其中,a'pp、a'qq表示对角处理单元中更新后的两个对角线元素,y1表示第一待旋转坐标旋转后的y轴坐标;
4)非对角处理单元元素更新
4.1)非对角处理单元Pij接收来自两个对角处理单元Pii、Pjj输出的符号集,表示为和分别表示第k次迭代下旋转角度2θi和旋转角度2θj对应的符号,用以下公式分别计算两个符号和从而获得了两个符号集和
其中,和分别表示旋转角度θi+θj和旋转角度θi-θj对应的符号;2θi和2θj分别表示两个对角处理单元Pii、Pjj的非对角元素对应的旋转角度的二倍角;
4.2)用以下公式计算由两个符号集和的前个符号所有可能构成的符号组合对应的第二、第三补偿因子的取值,一个符号组合是由个符号构成,以各个不同符号组合对应的第二、第三补偿因子取值建立查找表数据,以前符号中各符号绝对值为查找地址,用块随机存储器生成查找表,查找表的地址位数取数据的深度
其中,C2表示为第二补偿因子,C3表示为第三补偿因子;
4.3)对于非对角处理单元,将非对角处理单元包含的四个元素表示为由求得的作为CORDIC算法中第k次迭代的旋转符号,对第二待旋转坐标执行CORDIC算法以旋转角度θi-θj进行平面旋转,将平面旋转结果乘以第二补偿因子,第二补偿因子取值由步骤4.2)的查找表进行查表取得,得到旋转后的坐标,表示为:
其中,x2和y2分别表示第二待旋转坐标旋转后的坐标;
由求得的作为CORDIC算法中第k次迭代的旋转符号,对第三待旋转坐标执行CORDIC算法以旋转角度θi+θj进行平面旋转,将平面旋转结果乘以第三补偿因子,第三补偿因子取值由步骤4.2)的查找表进行查表取得,得到旋转后的坐标,表示为:
其中,x3和y3分别表示第三待旋转坐标旋转后的坐标;
4.4)然后采用以下公式对非对角处理单元中的元素进行更新:
其中,和分别表示非对角处理单元包含的四个元素;
5)处理单元间元素交换
在对每个处理单元的元素进行更新后,将更新后的处理单元之间的元素进行交换:
5.A)针对对角处理单元中的对角元素进行交换
设当前对角处理单元Pii包含对角元素和然后:针对对角元素i表示对角处理单元的行列序数,若i=1,则对角元素不变,若i=2,则对角元素的值更换为对角元素的值,若i2,则对角元素的值更换为对角元素的值;针对对角元素若则对角元素的值换为的值;若则对角元素的值更换为对角元素的值;
5.B)针对对角处理单元中的非对角元素和非对角处理单元中的元素进行交换,均采用以下方式更换位置:将对角处理单元中的非对角元素和非对角处理单元中的元素进行移动位置,使元素的行下标与移动后处于相同行的步骤5.A)交换后的对角元素的行号相同,且元素的列下标与移动后处于相同列的步骤5.A)交换后的对角元素的列号相同;
6)交换后Jacobi计算将n×n维矩阵所有对角处理单元中的非对角元素都经过更新一次,返回步骤2)进行下一处理和更新,不断重复以上更新过程使n×n维矩阵的非对角元素逐渐收敛到0,达到预设收敛精度后结束更新,并行Jacobi计算结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910285351.4/1.html,转载请声明来源钻瓜专利网。