资源描述:
《HRT5200加速多普勒雷达仿真模型结果比较》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、HRT5200加速多普勒雷达仿真模型结果比较1使用5100所有模型运行时间设定位0.129秒停止。1.1使用硬件矩阵库Ts=4.096e6运行到0.128秒时打印数据t=0.128000,output=276.061951,k1_q=398.437469,k2_q*1000=0.019984t=0.128000,output=276.061951,k1_q=398.437469,k2_q*1000=0.019984t=0.128000,output=276.061951,k1_q=398.437469,k2_q*1000=0.019984实际运行时间13.1
2、17s12.917s12.917s平均=12.9836s1.2使用CPU解算FFTTs=4e6运行到0.128秒时打印数据output=0,ck1_q=398.437500,ck2_q*1000=0.020250output=0,ck1_q=398.437500,ck2_q*1000=0.020250实际运行时间13.850s13.867s13.867s平均=13.8613快0.877s快了6.32%2使用MV55002.1使用硬件矩阵库Ts=4e6运行到0.128秒时打印数据t=0.128000,output=276.061951,k1_q=398.437
3、469,k2_q*1000=0.019984t=0.128000,output=276.061951,k1_q=398.437469,k2_q*1000=0.019984t=0.128000,output=276.061951,k1_q=398.437469,k2_q*1000=0.019984实际运行时间7.600s7.600s7.583s平均=7.59432.2使用CPU解算FFT运行到0.128秒时打印数据output=0,ck1_q=398.437500,ck2_q*1000=0.020250output=0,ck1_q=398.437500,ck2
4、_q*1000=0.020250output=0,ck1_q=398.437500,ck2_q*1000=0.020250实际运行时间10.867s10.900s10.883s平均10.883快3.2881比CPU解算快了30.21%3使用多CPU实现高速解算把一个模型拆分成可以并行运算的多个模型,可以大大加速模型的运算解算速度。而相关联的工作却不多。对于多个CPU之间的模型,和单个CPU是一样的,都是由上一步的模块运算出结果给下一个模块作为输入。以下面模型为例:ABDC单CPU运算时,CPU必须按顺序解算完成ABCD四个模块,才能得到最终结果。如果把模块C
5、放到第二块CPU板上。CPU1只需计算AB的输出,CPU2计算C的输出,然后CPU1计算D的输出就可得到结果。这样CPU1就只运行了3个模块,节省了模块C的运行时间。详细说明如下:CPU之间是同步触发的。也就是说模块A计算出数据后分发给模块B和CPU2上的模块C,然后在下一个步长时间,两块CPU同时解算B和C。在这个步长完成前,B和C得到结果发送给模块D。CPU之间的通讯由底层函数通过高速背板硬件实现。用户无需关心实现的编程代码。只需在模块中加入通讯的模块,就可实现数据的交换,如下图所示:ABDC下面的是通讯模块,上面的是延时模块延迟一个步长。来保证与原模型
6、的数据流时序一致。底层由VXMP实现通过高速背板实现40M或者80M每秒的速度进行CPU板间内存交换数据。当并行的模块比较多时,采用多CPU将更加加快运算时间。A(CPU1)FFT1(CPU1)FFT2(CPU2)FFT3(CPU3)FFT4(CPU4)B(CPU1)如上图就可以实现4个CPU的并行。结论在matlab平台上用M语言写的模型,运行时间大概是20分钟,改写成C的sfunction后运行时间加快到5分钟。当生成实时代码在仿真机上运行时间加快到10秒级别。而且这时运行的模型是只运行了一个步长的矩阵运算(fft,转置等,相当于整个循环的1%),如果相
7、关矩阵和向量运算量更多,将会比原matlab运算速度更快。原模型的开始是一维矩阵,如果使用一维向量来代替进行硬件的数学运算,还将进一步提高速度。所以使用硬件向量和矩阵运算,将大大提高包含此种运算的仿真过程。