在SPGD调参过程中,一般需要在某一参数下多次运行才能代表该参数实际价值。
SPGD计算量大主要在两个方面,一个是计算远场PIB的时候需要扩展近场光束矩阵,一般扩大十倍填0,才能得到分辨率较高的远场图片进行计算PIB。一个是在不同初始相位下多次重复SPGD算法,才有意义证明该参数的意义。
由于多次重复SPGD算法的for循环上一次运算与本次无关,完全可以用并行计算的方法,在matlab中可以用parfor替代for循环,替代后十次spgd算法用时由490s降到179s,下降310s。
由于扩展后的矩阵较大,CPU计算远场图像极为耗时,GPU可以加速矩阵计算,matlab中调用GPU将生成的矩阵函数为gpuArray;
如m1 = ones(400,C)可以改成m1 = gpuArray(ones(400,C));后续该函数参与计算即是用GPU计算。
改成GPU计算后时间下降到87s,下降92s。
matlab利用并行计算和GPU加速SPGD迭代过程
最新推荐文章于 2022-02-17 17:07:51 发布