2. 上海交通大学三亚崖州湾深海科技研究院,海南 三亚 572024
2. SJTU Yazhou Bay Institute of Deepsea SCI-TECH, Sanya 572024, China
随着目标主动声呐特征在水下探测识别领域的广泛应用,人们对水下目标散射传递函数仿真速度的要求越来越高。目前,水下目标散射传递函数仿真方法主要有有限元/边界元[1 − 2]、有限差分[3]、T矩阵[4]以及板块元等方法[5 − 6]等。其中,板块元方法是一种适用于中高频段的近似方法,它将积分运算转化为代数运算,计算时间正比于板块数量一次方,而其他方法计算时间正比于板块节点数量的2~3次方。为了进一步提高计算速度,范军等[7]提出了基于可视化图形声学计算方法(GRACO)的板块元加速算法,借助计算机图像学光照渲染算法解决面元之间遮挡快速判断问题。李威等[8]进一步将GRACO和弹跳射线法相结合,修正了凹表面板块之间多次散射问题。上述研究中的GRACO方法均是在GPU的图形渲染功能的基础上对目标进行遮挡判断和散射声场的计算,计算上限仍然受限制于计算机CPU的主频,GPU(Graphic Processing Unit)在并行计算中的核心优势没有完全发挥出来。针对多个频点计算问题,贾波等[9]将水下目标近场散射声场分解为随频率变化的快速起伏项和缓变项的乘积,再利用切比雪夫插值计算各频点缓变项,将散射传递函数计算速度提高了3~5倍。
为进一步提高声学计算中的计算效率,基于图像处理器(GPU)的并行计算方法逐渐体现出了其计算优势。余立志等[10]利用GPU的通用计算技术,实现了可控响应功率算法在声源定位计算中的应用,相比基于CPU的计算方法,效率提高了约20倍。吕云飞等[11]实现了基于GPU的FIR分数时延波束形成算法,相较于CPU计算有80多倍的加速。受此启发,本文在对水下目标散射声场计算理论和并行计算可行性分析的基础上,提出了一种面向散射传递函数多频点计算的GPU处理方法,为目标散射传递函数多频点快速计算提供了新思路。
1 理论方法水下目标散射声场满足Helmholtz积分公式:
$ {p_s}(\overrightarrow r ) = \frac{1}{{4{\text π} }}\int_s {{p_s}(\overrightarrow {{r_s}} )\frac{{\partial G(\overrightarrow r ,\overrightarrow {{r_s}} )}}{{\partial n}} - jw\rho {v_s}G(\overrightarrow r ,\overrightarrow {{r_s}} ){\rm d}S} 。$ | (1) |
式中:
$ {v_s}(\overrightarrow {{r_s}} ) = - \frac{1}{{jw\rho }}\frac{{\partial {p_i}(\overrightarrow {{r_s}} )}}{{\partial n}} 。$ | (2) |
式中:
根据Helmholtz表面积分公式:
$\begin{split} {p_s}(\overrightarrow r ) =& \frac{1}{2{\text π} }\mathop {\lim }\limits_{r \to {r_s}} \int_S {{p_s}(\overrightarrow {{r_s}} )\frac{\partial G(\overrightarrow r ,\overrightarrow {{r_s}} )}{\partial n}} -\\ & jw\rho {v_s}(\overrightarrow {r_s} )G(\overrightarrow r ,\overrightarrow {r_s} ) {\text d}S 。\end{split}$ | (3) |
利用式(3)能够求解表面散射声场的声压。随着分析频率逐渐升高,目标表面的离散网格也大量增加,计算效率也随之降低。
为了快速求解表面散射场声压,范军等[6]提出并发展了以物理声学近似为理论基础的板块元方法。板块元方法的核心思想是为把目标表面划分为若干个板块(尺度小于声波波长三分之一),根据Kirchhoff近似方法计算每个位于“亮区”板块散射声场,求和得到目标散射传递函数。
将目标表面划分为板块元,在收-发合置情况下,散射波势函数可表示为:
$ \phi = - \frac{A}{{2{\text π} }}\int\limits_S {{e^{i2{k_0}r}}V(\alpha )} \left( {\frac{{i{k_0}r - 1}}{{{r^3}}}\cos \alpha } \right){\rm d}S 。$ | (4) |
式中,A为入射波的幅值;
在远场条件下(
$ {I_m} = V(\alpha ) \cdot w\sum\limits_{n - 1}^K { \displaystyle\frac{{{e^{2i{k_0}({x_n}u + {y_n}u)}}({p_{n - 1}} - {p_n})}}{{(2{k_0}u + 2{k_0}{p_{n - 1}})(2{k_0}u + 2{k_0}{p_n}v)}}}。$ | (5) |
式中:
![]() |
图 1 空间多边形 Fig. 1 Spatial polygon |
总散射声场可以表示为:
$ I = \sum\limits_{i = 1}^G {\sum\limits_{j = 1}^M {\left[ {V({\alpha _{ij}}')w' \sum\limits_{n = 1}^3 { \displaystyle\frac{{{e^{2i{k_0}({x_n}'{u_{ij}}' + {y_n}'{v_{ij}}')}}({p_{n - 1}} - {p_n})}}{{({u_{ij}}' + {p}_{n - 1}{v_{ij}}')({u_{ij}}' + {p_n}{v_{ij}}')}}} } \right]} },$ | (6) |
式中:
根据式(4)第m个板块的近场散射声场可表示为:
$ {\phi _{s,m}} = - \frac{1}{{2{\text π} }}\frac{{ik{R_1} - 1}}{{R_1^3}}{e^{ik{R_1}}} \times w \sum\limits_{m = 1}^3 {\frac{{{e^{ - i({x_m}u' + {y_m}v')}}({p_{m - 1}} - {p_m})}}{{(u' + {p_{m - 1}}v')(u' + {p_m}v')}}} ,$ | (7) |
式中,
受限于中央处理器(CPU)的处理速度,在板块数与频点数乘积数量级较大的情况下往往需要大量的计算时间。取板块数为M,频点数为N,时间t(s),图2显示了不同排水量水下航行器板块数随频率的变化规律,图3展示了计算时间随板块数与频点数乘积的变化规律。
![]() |
图 2 板块数随频率的变化规律 Fig. 2 The variation of plate number with frequency |
![]() |
图 3 计算时间随板块数与频点数乘积变化规律 Fig. 3 The variation of calculation time with the product of grid number and frequency point |
可以看出,10吨级中小型航行器网格可以到1018@30kHz,单一频段散射声场传递函数计算时间需要1012s@GHz。受制造工艺以及散热问题困扰,CPU处理速度提升空间越来越小,为此提高散射传递函数计算速度需要探索新的解决方案。
2.1 CUDA平台GPU作为显示芯片常用于处理多边形3D渲染、视频像素级转换等方面,在硬件结构上存在大量的晶体管来为并行线程提供计算支持。相较于CPU,GPU更适合处理大量的重复计算。在此基础上,NVIDIA公司研发了并行计算的计算统一设备架构(Compute Unified Device Architecture,CUDA),主要用于NVIDA开发的GPU异构系统。此外,CUDA架构还提供了丰富的库和工具,用于简化并行编程的开发过程。在CUDA的编程模型中,程序员将计算任务划分为多个线程块(thread block),每个线程块包含多个线程(thread),并发执行不同的任务,利用GPU的并行计算能力加速计算过程。
2.2 基于切比雪夫多项式的频间插值技术由式(3)每个板块散射声场可以分为随频率变化的快速起伏项和缓变项,即
$ {\phi _{s,m}} = A\phi _{s,m}^{(1)}\phi _{s,m}^{(2)} ,$ | (8) |
其中,
$ A = - \frac{1}{{2{\text π} }}\frac{{ikR - 1}}{{R_1^3}},$ | (9) |
$ \phi _{s,m}^{(1)} = {e^{i2k{R_1}}} ,$ | (10) |
$ \phi _{s,m}^{(2)} = w\sum\limits_{m = 1}^3 {\frac{{{e^{ - i({x_m}u' + {y_m}v')}}({p_{m - 1}} - {p_m})}}{{(u' + {p_{m - 1}}v')(u' + {p_m}v')}}} 。$ | (11) |
当
根据切比雪夫逼近理论,对于给定定义域
$ f\left(k\right)={\sum }_{l=1}^{n}{c}_{l}{T}_{l-1}\tilde{\left(k\right)}-\frac{{c}_{1}}{2}。$ | (12) |
式中:
$ \tilde{k}=\frac{2k-({k}_{m}+{k}_{n})}{{k}_{m}-{k}_{n}},$ | (13) |
$ {c}_{l}=\frac{2}{n}{\sum }_{i=1}^{n}f\left({k}_{i}\right)\mathrm{cos}\left[(l-1)\frac{i-0.5}{n}{\text π} \right] 。$ | (14) |
式中:
散射声场缓变项
基于GPU适用于大规模计算的特点,利用CUDA编程模型结合切比雪夫逼近的方法,对水下目标在不同频率下的目标强度进行加速计算。
基于CUDA的计算特点提出2种GPU部署方法进行比较,其一为利用CUBLAS库的矩阵运算方法:以板块为单位建立数据结构,在GPU端计算所有板块,根据式(14)得到每个板块的
图4中的快速项和缓变项矩阵分布如图5所示,每个元素分别对应不同频点下不同板块的散射散射声场。利用式(8)和CUDA中的矩阵计算库CUBLAS,可以将图4中的矩阵快速相乘计算,计算得到的矩阵取第1列即为所取频带范围内的散射声场。具体而言,可以按照以下步骤进行计算:
![]() |
图 4 散射声场计算并行化过程 Fig. 4 Parallelization process of scattering sound field calculation |
![]() |
图 5 缓变项和快变项矩阵 Fig. 5 Matrix of slow and fast fluctuating functions varied with frequency |
步骤1 将图5中的矩阵分别转换为CUDA中的矩阵形式,可以使用CUDA提供的矩阵数据类型定义复数矩阵。
步骤2 调用CUBLAS提供的矩阵相乘函数,使用cublasZgemm函数进行复数矩阵相乘,该函数在CUBLAS V2版本中可以被使用,能够实现高效的矩阵计算。
步骤3 计算得到的矩阵包含了所有频率范围内的散射声场,取结果矩阵的第1列即可得到所取频带范围内的散射声场,即
$ {A_{i1}} = \sum\nolimits_{k = 1}^n {\phi _{ik}^{(1)}\phi _{ki}^{(2)}} 。$ | (15) |
由于第1种部署方法只需要矩阵相乘后的第1列数值,因此提出第2种根据计算得到的快速项和缓变项矩阵进行向量相乘的部署方法。具体步骤如下:
步骤1 在图5的2个矩阵中,分别取矩阵A、B的第1列和第1行,利用CUBLAS库的向量运算函数,相乘后得到单一频点的散射声场传递函数,如图6所示
![]() |
图 6 2组相乘的向量 Fig. 6 Two sets of vectors multiplied by each other |
步骤2 创建核函数,分配每个线程计算不同频点的散射声场传递函数,最终得到整个频带内的传递函数。
如图7所示,对2种不同的部署方法进行比较后可得,矩阵计算方法相较于后一种向量部署方法的计算速度有80%的提升,因此在后续仿真中,采用第1种部署方式来比较GPU的优化性能。
![]() |
图 7 计算效果对比 Fig. 7 The comparison of calculation effects |
本文使用的CPU的硬件配置为AMD4800H,主频为2.90 GHz;GPU的硬件配置为NVIDIA公司的GeeForce RTX
对10~30 kHz范围内对不同体积的潜航器模型进行网格划分,得到利用板块元方法计算目标强度时的板块数。图8对比了步长400 Hz情况下GPU、CPU计算不同排水量的潜航器模型散射声场传递函数的运行时间。
![]() |
图 8 不同网格数、频率数计算时间对比 Fig. 8 The comparison of calculation time for different grid quantities |
表1展示了在相同频点数不同板块数量情况下,GPU-CUDA框架相对于CPU计算的加速比。根据表中的数据可以看出,采用CUDA技术后目标的散射声场传递函数计算速度得到了显著提升,且提升幅度随着网格增加而增大。在当前的硬件配置下,当板块数与频点数乘积达到107时,计算加速比可超过80。
![]() |
表 1 计算速度比较 Tab.1 The comparison of calculation speed |
本文介绍了一种基于GPU(图形处理器)的CUDA技术,用于实现宽带目标回波的快速计算方法。通过和传统的基于CPU的计算方法相比较,本文验证了CUDA技术在宽带回波计算中的加速效果。算例仿真表明,随着板块数量和频点数量的增加,目标散射声场传递函数的计算时间也会快速增加。本文针对多频点的板块元计算在CUDA平台提出了基于矩阵和向量的2种部署方法,对在计算量较大的情况下,矩阵部署方法的加速效果更明显。仿真结果表明,基于GPU的并行计算方法可以有效提高多频点条件下目标强度的计算速度,从而缩短宽带回波仿真的计算时间而且矩阵部署方法的加速效果较向量部署方法更加明显。本文的研究仅限于单GPU条件下的性能效果测试,为了进一步提高并行算法的加速效果,下一步可以开展基于多GPU的并行加速方法研究,以拓展CUDA技术的应用范围,实现更高效、更快速的水下目标回波计算。
[1] |
MARBURG S, NOLTE B. Computational acoustic of noise propagation in fluids-finite and boundary element methods coumputional aeroacoustics based on lighthill’s acoustic analogy[J]. 2008, 8(5): 115−142.
|
[2] |
QIU F L, FISHER A C. The boundary element method: applications to steady-state voltammetric simulations within domains extending to infinity[J]. Electrochemistry Communications, 2001, 3(3): 117-121. DOI:10.1016/S1388-2481(00)00146-6 |
[3] |
YEE K S. Numerical solution of initial boundry value problems involving equations in isotropic media Maxwell’s equations in isotropic media[J]. IEEE Transactions on. Antennas Propagate, 1966, 14(3): 302−307.
|
[4] |
LIM R, LOPES J L, HACKMAN R H, et al. Scattering by objects buried in underwater sediments: theory and experiment[J]. The Journal of the Acoustical Society of America 1993.93(4): 1762−1783.
|
[5] |
范军, 汤渭霖. 声呐目标强度(TS)计算的板块元方法[C]//中国声学学会青年学术会议, 1999.
|
[6] |
范军, 汤渭霖, 卓琳凯. 声呐目标回声特性预报的板块元方法[J]. 船舶力学, 2012, 16(1): 171-180. DOI:10.3969/j.issn.1007-7294.2012.01.020 |
[7] |
范军, 卓琳凯. 水下目标回波特性计算的图形声学方法[J]. 声学学报, 2006, 31(6): 511-516. DOI:10.3321/j.issn:0371-0025.2006.06.006 |
[8] |
ZHANG Yang, YANG Yuzheng, CHAI Yingbin, et al. Graphical acoustic computing method incorporated with the shooting and bouncing ray: application to target strength prediction of concave objects with second-order reflection effects[J]. Journal of Sound and Vibration, 2022, 541.
|
[9] |
贾波, 王斌, 范军, 等. 水下目标宽带回波特性的快速计算方法[J]. 上海交通大学学报, 2017, 51(2): 224-228.. |
[10] |
余立志, 杨亦春, 滕鹏晓, 等. 基于图像处理器的传声器阵列实时声成像方法[J]. 声学技术, 2014, 33(4): 367-371. |
[11] |
吕云飞, 任云龙, 孙大军, 等. 基于GPU的FIR分数时延宽带波束形成[C]//中国声学学会2017年全国声学学术会议, 2017.
|