HTML
-
本文中采用煤粉颗粒全息图作为实验对象,测试二级并行架构的准确性和加速效果。实验装置如图 4所示。采用同轴数字全息系统记录煤粉颗粒流的全息图。激光器发出的激光束经过光强衰减、滤波、扩束、准直后照射煤粉颗粒场,CCD相机记录煤粉颗粒全息图,其中激光器波长为532nm,相机像素大小为5.5μm、分辨率可调。高性能工作站用于重建煤粉颗粒全息图,工作站配备了2块骁龙处理器(Intel Xeon E5-2680 v4)和4块英伟达显卡(NVIDIA Tesla P100)。实验中获得了一系列不同分辨率的煤粉颗粒全息图。
-
在二级并行架构重建准确性的验证中,比较了并行算法与单线程算法重建不同分辨率的煤粉颗粒全息图的差异。图 5a为分辨率为1000×1000的煤粉颗粒全息图; 图 5b为单线程重建结果; 图 5c为并行重建结果。重建深度z范围为9cm至10cm,重建截面间隔为1mm。
计算图 5b和图 5c对应位置的像素值的方差,作为重建准确性的判别依据。计算得到图 5中二级并行与单线程重建结果图的方差S=0.078,由于像素值的大小在0~255之间,所以可以基本认为图 5b和图 5c是一致的。分别处理多张不同分辨率和重建参量的全息图,计算两种重建算法的结果方差,结果如表 1所示。表中,zmin为重建深度的最小值,zmax为重建深度的最大值,interval为重建间隔,variance为方差计算结果,随着全息图分辨率的增加,方差逐渐增大,但都小于0.1,表明不同方法重建图差别极小。结果说明基于二级并行架构的全息重建程序与单线程全息重建程序在重建结果上是基本一致的,证明了二级并行架构的重建准确性。
hologram resolution zmin/cm zmax/cm interval/mm variance 100×100 9 10 0.1 0.0003 200×200 3 4 0.2 0.0042 500×500 6 12 1 0.0037 1000×1000 9 10 1 0.078 2000×2000 6 8 0.3 0.069 5000×5000 9 10 1 0.082 -
在二级并行架构重建加速效果的验证中,首先同时使用单线程重建算法、二级并行架构重建算法以及单线程调用CUDA的并行算法重建了从100×100~5000×5000的6种不同分辨率的全息图,重建截面数都为40。3种方法计算耗时以及加速比(speedup ratio) 如图 6所示。speedup ratio 1为单线程耗时与单线程调用CUDA耗时的比值,speedup ratio 2为单线程耗时与二级并行耗时的比值。如图 6所示,重建低分辨率的全息图时,二级并行架构的加速效果不明显,主要是因为计算量小,单线程重建程序也有足够的计算能力在短时间内处理完成,而并行计算能力没有充分体现出来。当全息图分辨率增大时,重建耗时明显减少。对于100×100, 200×200, 500×500, 1000×1000, 2000×2000和5000×5000的全息图,二级并行架构的加速比分别达到了22.8倍、30.7倍、36.1倍、42.7倍和48.3倍,充分显示了其并行加速能力。全息图的分辨率增大到1000×1000时,加速比的增加开始变得缓慢。这主要是由于一个重建截面的内存动态申请过程不能通过并行处理来加速,因此动态申请内存所消耗的时间占了很大的比例,加速比的增加也就逐渐平缓。单线程调用CUDA的重建耗时结果也证明了全息图分辨率增大时动态申请内存的耗时会大大增加,分辨率大于1000×1000后,单线程调用CUDA的加速比迅速下降。在实际工程应用中,例如工业粉体粒度的在线监测,往往要求数字全息技术的结果反馈时间在分钟级,假设全息图分辨率为1000×1000,每张全息图捕捉的颗粒数目为1000。60000颗颗粒能够具有充分的代表性,那么至少需要处理60张全息图。如果要在2min内反馈结果,则一张全息图的处理时间要少于2s,而本文中采用的并行架构处理时间为1.41s,能够满足要求。
其次,选择分辨率为1000×1000的全息图,测试3种算法在重建截面数目不同时的计算耗时和加速比,结果如图 7所示。随着重建截面的增多,单线程重建耗时急剧增加。二级并行算法的加速效果受限于线程数量,重建截面较少时,计算耗时主要来源于线程通信,重建截面数目影响较小,随着重建截面数目的增加,线程趋于满负荷状态,此时二级并行算法的计算耗时随之也会有较大的增加。而对于单线程调用CUDA,加速比都在20左右,重建截面数大于200后略有下降,这说明CUDA的并行效果稳定,单线程调用CUDA的重建耗时与单纯单线程的重建耗时为近似线性的关系。以上不同分辨率和不同截面数下的实验结果表明,采用二级并行架构重建全息图,当分辨率过大或重建截面过多时,加速效果会受到内存申请和线程通信的限制,在实际应用过程中应加以考虑。