舰船科学技术  2024, Vol. 46 Issue (14): 153-157    DOI: 10.3404/j.issn.1672-7649.2024.14.025   PDF    
基于图形处理器的水下目标传递函数多频点处理方法
钱浩然1,2, 王斌1,2     
1. 上海交通大学 船舶海洋与建筑工程学院,上海 200240;
2. 上海交通大学三亚崖州湾深海科技研究院,海南 三亚 572024
摘要: 为了提高水下目标宽带回波的计算速度,本文提出一种基于图形处理器GPU的散射传递函数多频点快速计算解决方案。相较于传统算法中逐个频率点计算的方式,CUDA快速算法充分利用各频点处目标强度的相对独立性,基于GPU的硬件特点,同时计算宽带内的散射声场,从而显著提高了计算效率。本文以潜航器模型为算例,对不同网格数量下模型的目标散射传递函数计算速度进行对比分析。仿真结果表明,相较于传统的CPU串行计算,采用CUDA快速算法能够实现超过80的加速比,有效提高了计算速度。
关键词: 板块元方法     图像处理器     计算统一设备架构     并行计算    
Deployment method of graphic processor for scattering transfer function of underwater targets
QIAN Haoran1,2, WANG Bin1,2     
1. School of Ocean and Engineering, Shanghai Jiao Tong University, Shanghai 200240, China;
2. SJTU Yazhou Bay Institute of Deepsea SCI-TECH, Sanya 572024, China
Abstract: In order to improve the calculation speed of broadband echoes of underwater targets, this paper proposes a solution for fast computation of the scattering transfer function at multiple frequency points based on graphics processing unit (GPU). Compared to the traditional approach of calculating each frequency point individually, the CUDA fast algorithm fully utilizes the relative independence of target intensity at different frequency points and takes advantage of the hardware characteristics of GPUs to simultaneously compute the scattering sound field within the broadband, significantly improving the computational efficiency. The cylindrical model is used as a case study in this paper to compare and analyze the calculation speed under different grid quantities. The simulation results demonstrate that, compared to traditional CPU serial computation, utilizing the CUDA fast algorithm can achieve an acceleration ratio of over 80, effectively improving the calculation speed.
Key words: planar elements method     graphics processing unit     compute unified device architecture     parallel computing    
0 引 言

随着目标主动声呐特征在水下探测识别领域的广泛应用,人们对水下目标散射传递函数仿真速度的要求越来越高。目前,水下目标散射传递函数仿真方法主要有有限元/边界元[12]、有限差分[3]、T矩阵[4]以及板块元等方法[56]等。其中,板块元方法是一种适用于中高频段的近似方法,它将积分运算转化为代数运算,计算时间正比于板块数量一次方,而其他方法计算时间正比于板块节点数量的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积分公式:

ps(r)=14πsps(rs)G(r,rs)njwρvsG(r,rs)dS (1)

式中:psvs分别为表面散射场声压和表面散射场法向振速;G(r,rs)为格林函数;wρ分别为角频率和密度;ejwt为时间因子。中高频情况下目标表面可以近似满足刚性边界:

vs(rs)=1jwρpi(rs)n (2)

式中:pi为入射声场声压。求解目标表面声场声压ps是计算远场散射声场的前提。

根据Helmholtz表面积分公式:

ps(r)=12πlimrrsSps(rs)G(r,rs)njwρvs(rs)G(r,rs)dS (3)

利用式(3)能够求解表面散射声场的声压。随着分析频率逐渐升高,目标表面的离散网格也大量增加,计算效率也随之降低。

为了快速求解表面散射场声压,范军等[6]提出并发展了以物理声学近似为理论基础的板块元方法。板块元方法的核心思想是为把目标表面划分为若干个板块(尺度小于声波波长三分之一),根据Kirchhoff近似方法计算每个位于“亮区”板块散射声场,求和得到目标散射传递函数。

将目标表面划分为板块元,在收-发合置情况下,散射波势函数可表示为:

ϕ=A2πSei2k0rV(α)(ik0r1r3cosα)dS (4)

式中,A为入射波的幅值;α为目标表面声波的入射角;r是表面上一点到源点的距离;V(α)为目标表面反射系数;k0代表波数。

在远场条件下(k0r1),每个板块元散射声场可以表示为:

Im=V(α)wKn1e2ik0(xnu+ynu)(pn1pn)(2k0u+2k0pn1)(2k0u+2k0pnv) (5)

式中:pn=yn+1ynxn+1xnp0=y1y3x1x3K为板块元顶点数。本文计算中取为三角形板块(见图1),r0=ui+vj+wk为板块参考点到接收点的单位矢量,(xn,yn)为多边形顶点的坐标。

图 1 空间多边形 Fig. 1 Spatial polygon

总散射声场可以表示为:

I=Gi=1Mj=1[V(αij)w3n=1e2ik0(xnuij+ynvij)(pn1pn)(uij+pn1vij)(uij+pnvij)] (6)

式中:xnyn为第(i,j)个板块变换到二维平面的坐标。

根据式(4)第m个板块的近场散射声场可表示为:

ϕs,m=12πikR11R31eikR1×w3m=1ei(xmu+ymv)(pm1pm)(u+pm1v)(u+pmv) (7)

式中,R1为板块等效中心到发射点的距离。

2 面向多频点散射传递函数计算的GPU处理方法

受限于中央处理器(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)每个板块散射声场可以分为随频率变化的快速起伏项和缓变项,即

ϕs,m=Aϕ(1)s,mϕ(2)s,m (8)

其中,

A=12πikR1R31 (9)
ϕ(1)s,m=ei2kR1 (10)
ϕ(2)s,m=w3m=1ei(xmu+ymv)(pm1pm)(u+pm1v)(u+pmv) (11)

kR11时,相位因子较小,频率不是引起振荡的主要原因。在ϕ(1)s,m中的2kR1项的值一般较大,因此ϕ(1)s,m随频率变化的起伏较大,是散射声场中随频率变化的快速起伏项。ϕ(2)s,m中的相位项为2k(xmu+ymu),由于板块元方法的计算特点所致板块的尺寸划分较小,在高频情况下,2k(xmu+ymu)的值也相对较小,从而ϕ(2)s,m随频率变化的起伏较小,是散射声场中随频率变化的缓变函数。

根据切比雪夫逼近理论,对于给定定义域k[km,kn]的目标函数f(k),其函数值可由逼近公式表示为:

f(k)=nl=1clTl1~(k)c12 (12)

式中:Tl~(k)l阶第1类切比雪夫多项式。

˜k=2k(km+kn)kmkn (13)
cl=2nni=1f(ki)cos[(l1)i0.5nπ] (14)

式中:ki[km,kn]中的切比雪夫节点。

散射声场缓变项ϕ(2)s,m的计算,只需计算切比雪夫节点处的值,其他频率点的值可由给定阶数的切比雪夫逼近得到。

2.3 CUDA并行化方法

基于GPU适用于大规模计算的特点,利用CUDA编程模型结合切比雪夫逼近的方法,对水下目标在不同频率下的目标强度进行加速计算。

基于CUDA的计算特点提出2种GPU部署方法进行比较,其一为利用CUBLAS库的矩阵运算方法:以板块为单位建立数据结构,在GPU端计算所有板块,根据式(14)得到每个板块的l阶切比雪夫插值系数cl。在设备端分配每一个板块一个线程进行计算,最终分别得到散射声场在宽带范围内的m×n阶缓变项矩阵和n×m阶快速变化项矩阵。

图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列即可得到所取频带范围内的散射声场,即

Ai1=nk=1ϕ(1)ikϕ(2)ki (15)

由于第1种部署方法只需要矩阵相乘后的第1列数值,因此提出第2种根据计算得到的快速项和缓变项矩阵进行向量相乘的部署方法。具体步骤如下:

步骤1 在图5的2个矩阵中,分别取矩阵AB的第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
3 实验仿真及结果 3.1 仿真参数及设备参数

本文使用的CPU的硬件配置为AMD4800H,主频为2.90 GHz;GPU的硬件配置为NVIDIA公司的GeeForce RTX 2060,显存容量为6 GB。仿真对象分别采用排水量为100~10000 kg的航行器。仿真时采用收发合置的方式,入射方向向量和潜航器水平轴心的夹角取45°。保持模型比例不变,通过划分不同的表面板块数量来对比CPU和GPU配置下的计算时间,得到并行算法的加速比。

3.2 仿真结果

对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
4 结 语

本文介绍了一种基于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.
基于图形处理器的水下目标传递函数多频点处理方法
钱浩然, 王斌