技术特征:
1.一种矩阵奇异值分解的fpga加速实现方法,其特征在于,所述fpga有3k个bram,所述矩阵为m行
×
n列,所述方法包括如下步骤:s1:将所述矩阵按每k列列向量为一组,平均分成p=n/k个子块,若p=n/k不能整除时,则预先对所述矩阵末尾进行列向量补齐以达到整除,且新添加的列向量所有元素值取0;s2:将第1子块与第2子块进行组合得到m行
×
2k列的新矩阵,并将每列列向量一一对应写入到fpga相应的2k个bram中,每个bram对应其中一列列向量;s3:对m行
×
2k列的新矩阵执行单边jacobi旋转变换,以round
‑
robin调度机制共执行2k
‑
1轮,同时将第3子块的k列列向量预先写入到剩余的k个bram;s4:将s3中对应第1子块的k列列向量中间计算结果与预先写入的第3子块进行组合,得到新的m行
×
2k列矩阵,执行2k
‑
1轮的单边jacobi旋转变换;同时将s3中对应第2子块的k列列向量的中间结果a'2写回片外dram,等到这部分的k个bram的空间释放后,再将第4子块的k列列向量写入这部分的k个bram中;以此类推,按照如下子块间的组合规则和顺序(1,2)
→
(1,3)
→
(1,4)
→
...
ꢀ→
(1,p);(2,p)
→
(3,p)
→
(4,p)
→
...
ꢀ→
(p
‑
1,p);(p
‑
1,2)
→
(p
‑
1,3)
→
(p
‑
1,4)
→
...
ꢀ→
(p
‑
1,p
‑
2);...;(3,2);p个子块两两组合,共计种情况,完成整个矩阵一整轮的单边jacobi旋转变换;s5:将每个子块经过单边jacobi旋转变换后的中间结果作为新一整轮的迭代输入,重复s2~s4相同的组合和计算操作,直至满足收敛条件,即m行
×
n列矩阵奇异值分解完毕。2.根据权利要求1所述的矩阵奇异值分解的fpga加速实现方法,其特征在于,所述s4中,完成整个矩阵最后一个子块组合(3,2)的2k
‑
1轮的单边jacobi旋转变换后,将第3个子块的中间结果写回片外dram,将第2个子块的中间结果保留在片内k个bram中,即复用第2个子块的中间计算结果。
技术总结
本发明公开一种矩阵奇异值分解的FPGA加速实现方法,该方法首先将存储在片外DRAM的m行
技术研发人员:胡塘 李相迪 徐志伟
受保护的技术使用者:之江实验室
技术研发日:2021.09.16
技术公布日:2021/10/23
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。