图1 神经网络结构示意图
纸质出版日期:2023-09-25,
网络出版日期:2023-06-26,
收稿日期:2022-07-27,
录用日期:2023-01-03
扫 描 看 全 文
引用本文
阅读全文PDF
在无网格法中,移动粒子半隐式方法(MPS)利用流体的不可压性构造泊松方程,在获得了压力求解准确性的同时也带来了巨大的计算量,导致其不适合实现大规模流体模拟. 针对上述问题提出新型算法NN-MPS,将泊松方程的求解转化为利用神经网络求解回归问题. NN-MPS算法通过构建每一步的流场特征与压力的预测模型,实现泊松方程的快速求解. 本文进一步将基于NN-MPS算法的泊松方程求解过程移植到Atlas 200 DK上,实现边缘侧加速求解泊松方程. 本文采用多种溃坝模型进行数值实验,结果表明,本文的MPS加速方法具有低成本、高速度且较少精度损失的特点,求解速度实现了一定的提升. 本文同时也验证了边缘计算设备在计算流体力学领域应用的可行性.
As a meshless method, the moving particle semi-implicit(MPS) method forms the pressure Poisson equation by using the incompressibility of fluid, which not only obtain the accuracy of pressure but also bring a high cost of calculation. Therefore, it is not appropriate for MPS to solve large-scale fluid simulations. IA new algorithm NN-MPS is proposed to solve the above problems, which transforms the solution of the Poisson equation into a regression problem by using neural network. The NN-MPS algorithm realizes the quick solution of the Poisson equation by constructing the prediction model of flow field features and pressure at each step. In this work, the procedure of solving the pressure Poisson equation is further transported to Atlas 200 DK device for a faster speed of solving procedure. Results show that the acceleration method of MPS mentioned in this work has the characteristics of low cost, high speed, and low accuracy loss, and the solution speed has been improved. We also verified the feasibility of applying the edge computing device in the field of CFD.
计算流体力学(CFD,computational fluid dynamics)是当前流体力学领域中十分重要的研究方法,通过数值求解流体运动的控制方程组,研究流体流动的物理现象. 目前主流计算流体方法主要分为两类:基于网格的欧拉方法和基于粒子的拉格朗日方法. 欧拉方法如有限体积法(FVM)、有限元法(FEM)、有限差分法(FDM)通过对计算区域划分网格,离散微分方程,获得网格点各时刻的物理量变化;拉格朗日方法则研究粒子的物理量随时间的变化,适用于比较复杂的边界情况(
近年来拉格朗日方法得到发展,SPH(
MPS采用预估和修正(显式和隐式)两个步骤来求解流体控制方程(
边缘计算(
本文使用电功耗、成本、体积等各方面较有优势,且在张量计算等神经网络计算有出色计算效率的边缘计算设备Atlas 200 DK作为加速硬件,成功实现了以新型边缘计算硬件作为加速设备的计算流体仿真. 本文研究用较低的成本在小规模与大规模粒子法仿真中达到了与传统CPU计算效率相似甚至有所提高的计算效果. 该研究为将来特殊场景下的快速流体仿真提供了一种可行的参考,意味着我们可以在一些需要低成本或无法使用专业计算集群或是在实时采集实际物理边界信息的边缘侧场景中,提供一定的快速流体动力学分析能力.
不可压缩流体的控制方程组由连续性方程和Navier-Stokes方程组成:
DρDt=∂ρ∂t+∇·(ρv)=0, | (1) |
DvDt=-1ρ∇P+ν∇2v+f, | (2) |
其中ρ为流体密度,P为压力,v为速度向量,f为流体单位质量力,ν是运动黏度系数.
1.2.1 核函数
MPS方法中,核函数与光滑半径内邻域粒子相互作用,计算控制方程中的微分算子.
W(r)={rer-1, 0≤r<re, 0, r≥re , | (3) |
式中re为粒子的有效半径,即光滑长度.
核函数值在靠近中心处最大,并随着r的增加减小. 因此,核函数在计算中起到了类似于权重函数的作用,使较远粒子对于当前粒子的影响较小. 在本节后面的部分中将展示由权重函数表示的微分离散计算方法.
1.2.2 粒子密度模型
MPS中粒子数密度<n>i是第i粒子在核函数控制域内与其周围粒子核函数数值的累加:
<n>i=N∑j=1W(|ri-rj|,h), | (4) |
其中N为粒子i的相邻粒子,W(|ri-rj|,h)为核函数,ri、rj分别为i、j粒子的位置矢量,h为光滑长度. 粒子数密度与流体密度成正比.
1.2.3 Laplacian模型
Laplacian算子采用如下形式:
<∇2ϕ>i=2Dn0λiN∑j=1[(ϕj-ϕj)W(|rj-ri|,h)] , | (5) |
式中D为计算维数,
λ=N∑j=1|rj-ri|2W(|rj-ri|,h)N∑j=1W(|rj-ri|,h) . | (6) |
为求解由式(
Δv=Δv*+Δv' , | (7) |
其中
{Δv*=Δt*(fk+ν∇2vk),Δv'=-Δtρ∇Pk+1. | (8) |
传统MPS算法通过保持粒子数密度不变来实现流体的不可压缩性,利用中间密度ρ*和中间速度v*,令下一时间步的速度散度为0、密度变化为0,可构造压力泊松方程,进而求解Pk+1 . 参考
<∇2Pk+1>i=(1-γ)ρΔt∇·v*i-γρ(Δt)2 <n>i-n0n0 , | (9) |
其中右边第一项为基于散度为0构造泊松方程的源项、第二项为基于密度不变构造的泊松方程源项. γ为可变参数,本文中定义为0.2 .
综上,MPS算法每个时间步的求解步骤如下:
(i)根据
(ii)根据
(iii)根据方程(9)求解压力泊松方程,得到Pk+1;
(iv)利用所求压力梯度获得修正速度v',并计算vk+1、rk+1 .
根据
<∇2P>i=2Dn0λ[N∑j=1Pj·W(|rj-ri|)-Pi·N∑j=1W(|rj-ri|)] . | (10) |
代入
APk+1=b , | (11) |
其中
A=2Dn0λ[-∑j≠1W(|rj-r1|)⋯W(|ri-r1|)⋯W(|rn-r1|)⋮⋮⋮W(|r1-ri|)⋯-∑j≠iW(|rj-ri|)⋯W(|rn-ri|)⋮⋮⋮W(|r1-rn|)⋯W(|ri-rn|)⋯-∑j≠nW(|rj-rn|)] , | (12) |
b=ρΔt[(1-γ)∇·v*1-γ1Δt <n*>1-n0n0 ⋮(1-γ)∇·v*i-γ1Δt <n*>i-n0n0⋮(1-γ)∇·v*n-γ1Δt <n*>n-n0n0] , | (13) |
其中下标n为参与计算的粒子数. 可知,PPE是一个包含所有粒子状态的矩阵方程,在大规模计算的情况下,求解该方程将需要非常大的存储空间和非常长的求解时间. 为了更高效地求解PPE、MPS中常用共轭梯度法(CG)、不完全Cholesky共轭梯度法(ICCG)进行求解大型矩阵方程,求解该方程的代价仍然极高.
为了解决PPE求解代价过高的问题,前期研究中,我们提出了一种数值驱动的NN-MPS方法. NN-MPS方法将求解PPE方程转化为机器学习领域的回归问题. 针对这一回归问题,算法采用神经网络建立求解模型. 对于高维问题,传统数值方法的计算成本过高,神经网络较强的提取特征的能力以及求解非线性问题的能力,使其成为了解决该回归问题一个很好的选择.
为了使回归求解器更加准确和稳定,我们需要为模型选择合适的输入. 参考原始MPS算法的PPE构造:
2Dn0λ[N∑j=1Pj·W(|rj-ri|)-Pi·N∑j=1W(|rj-ri|)] =(1-γ)ρΔt∇·v*i-γρ(Δt)2<n*>i-n0n0 . | (14) |
结合<n>的表达
Pk+1i =1n*{N∑j=1Pj·W(|rj-ri|)-n0λ2D[(1-γ)ρΔt∇·v*i-γρ(Δt)2<n*>i-n0n0]} . | (15) |
观察
Pk+1=H(ϕpresi,ϕpres1,ϕpres2,⋯,ϕpresn,n*i,∇·v*i) , | (16) |
其中
ϕpresi=Pkin*i , | (17) |
ϕpresj=PkjW(|rj-ri|), | (18) |
式中Pk表示当前时间步该粒子的压力,ϕpresj则体现了周围粒子与中心粒子的压力积分特征,ϕpresj的数量由模型的邻域极限半径确定.
基于以上数据模型,NN-MPS构造了适合PPE回归求解器的输入.
多层感知机(Multi-Layer Perceptron)作为一种经典深度学习模型,是当前主流深度神经网络的基础(
f(x)=H(ω x+b) , | (19) |
其中x=(x1,x2,…,xn)表示该层的输入向量,ω表示权重,b表示偏置,H则称为激活函数,f(x)表示该层输出.
本文选择以多层感知机作为回归网络的基础结构. 隐藏层的层数对回归求解效果、计算速度有较大的影响,目前相关领域尚无法给出DNN模型深度(隐藏层层数)与计算误差之间的绝对关系. 因此,综合考虑了计算精度、计算效率之间的平衡,结合实际数值测试结果,我们选择将隐藏层数设置为5. 如
图1 神经网络结构示意图
Fig.1 Structure of the neural network
改进后的MPS算法单时间步积分流程如下:
(i)根据
(ii)根据
(iii)构造神经网络输入,并通过神经网络求解Pk+1;
(iv)利用求得的压力,根据
华为公司的Atlas 200 DK开发者套件是以Atlas 200 AI加速模块为核心的开发板形态. 其中Atlas 200 AI加速模块集成了Ascend 310 AI处理器,Ascend 310芯片内置2个DaVinci AI core,可以实现最大8TFLOPS/FP16或16TOPS/INT8的乘加性能(
开发板可以实现图像、视频等多种数据分析与推理计算,目前广泛用于基于机器视觉的AI应用,如智能监控、机器人、无人机、视频服务器等场景. 机身包括2个DaVinci AI core,1个8核A55CPU,支持1000 M以太网. 由于其对神经网络的高速计算的特性与高速以太网通信能力,我们选择Atlas 200 DK作为配置NN-MPS的边缘计算设备.
本文所有工作基于Atlas 200 DK开发者套件的1.32.0.0版本进行开发.
本文采用Python3在Mind Studio平台上进行NN-MPS程序开发. 开发前开发平台为Mind Studio,语言为Python3、hiai库。
华为公司为调用AI Core提供了一套如
图2 昇腾AI软件栈
Fig.2 Software stack of Ascend AI
① 初始化图(Graph)对象,图的作用是管理和编排计算引擎;
② 创建引擎(Engine),引擎是执行功能的基本单元;
③ 设置模型文件(.om)路径;
④ 构造输出输入对象;
⑤ 调用引擎进行模型推理;
⑥ 结果后处理.
Atlas开发板板载CPU实际性能并不比一般计算机CPU高,因此将整个NN-MPS由开发板运行并不是个很合适的方案. 考虑到Atlas 200 DK支持1000 M以太网传输,将计算过程分成两个部分,推理部分由开发板完成,其余部分由电脑CPU完成具有相当高的可行性. 因此,为了结合计算机CPU算力与边缘计算设备对神经网络的加速能力,程序将求解压力泊松方程的神经网络推理部分在Atlas 200 DK开发板上实现,其余部分由计算机CPU完成,两者通过千兆以太网利用Socket通信协议实现快速的数据交换.
图3 整体计算流程
Fig.3 Calculation flow chart
本文中采用如
图4 MPS模型初始状态
Fig.4 MPS model initial state
采用该模型的原因主要有以下几点:首先,溃坝模型为大部分MPS算例使用的经典模型,且模型结构简单易于实现;其次,增加了圆柱障碍物和移动障碍物可以更好表现MPS算法对于复杂边界条件的适应性和泛化能力;不同的粒子规模有助于比较不同规模流场场景下计算速度的差别.
本文计算了在小模型场景下,固定障碍物与移动障碍物模型计算结果在经典MPS算法、使用CPU的NN-MPS算法、使用Atlas 200 DK加速的NN-MPS算法的计算精度. 使用如下3个参数进行数值比较:近壁面液面高度、液面前缘位置,以及如
图5 比较参数示意图
Fig.5 Parameters used for comparison
图
图6 前缘位置变化
Fig.6 Movement of the leading edge
图7 近壁面液面高度变化
Fig.7 The liquid level height near the left wall
图8 压力变化
Fig.8 Pressure developments
单独分析在不同硬件上的NN-MPS计算结果,发现计算前期阶段在CPU与Atlas上的NN-MPS计算结果差别较小,而在第75时间步左右移动圆柱下的前缘位置参数Atlas与CPU计算结果开始出现差别;在125时间步附近,两者在静止圆柱和移动圆柱的液面高度也开始出现差别. 这可能是由于经过碰撞之后产生的流场变化加剧,导致由FP64移植到FP16设备上产生微小误差的积累增大,从而使结果出现较大差距. 这点可以通过静止圆柱与移动圆柱计算结果的区别加以证明:静止圆柱场景下,流场变化与移动圆柱场景相比较为缓和,因而移动圆柱场景下,两种NN-MPS算法的计算结果更早出现较大差别,同理在移动圆柱场景下,液面高度也比静止圆柱场景下出现了更大的差距.
本文比较了加宽模型与小模型分别采用传统MPS、神经网络改进后的MPS、移植到Atlas 200 DK的MPS在求解PPE时的用时情况. 为了时间比较的合理性,移植到Atlas的MPS计算PPE求解时包括了Socket通信消耗的时间.
实例计算使用的CPU:Intel(R) Core(TM) i7-10510U CPU@1.80 GHz .
本文采用神经网络结合边缘计算硬件的方式,将MPS方法中的计算瓶颈——压力泊松方程的计算时间缩减,提出了一种面向边缘计算场景的流体动力学仿真新方案. 研究利用神经网络抽象压力泊松方程的求解过程,将其转化为光滑半径内粒子特征与下一时间步压力值之间的回归问题,成功减少了泊松方程求解时间. 同时,本文利用边缘计算硬件求解神经网络推理过程,探究在边缘计算场景下进一步加速计算的可能性. 在实验结果中,当粒子规模在28 800以上时,使用边缘计算硬件的计算速度相对于使用CPU的计算速度有所提升,而在小规模场景下,使用边缘计算硬件与CPU计算速度相当,因此在计算规模较大时,可以使用本文所述方法作为加速手段. 本文采用的方案,相较于使用GPU等常见加速硬件,具有更低的功率需求和更低的成本,为一些边缘侧有流体动力学仿真需求的场景提供了一种有效的解决方案,同时也为边缘计算与基础学科进行学科交融提供新的切入方向.
崔勇, 宋健, 缪葱葱, 等, 2017. 移动云计算研究进展与趋势[J]. 计算机学报, 40(2): 273-295. [百度学术]
杜年春, 沈向前, 谢翔, 等, 2022. Online SAR地质灾害监测和预警系统关键技术及应用研究[J]. 现代雷达, 44(10):28-32. [百度学术]
何腾, 2020. 浅析边缘计算技术应用的现状及挑战[C]// 第三十四届中国(天津)2020’IT、网络、信息技术、电子、仪器仪表创新学术会议论文集:117-120. [百度学术]
华为技术有限公司, 2022. Atlas 200 DK开发者套件-概述[EB/OL]. (2022-12-29) [2023-02-23]. https://www.hiascend.com/document/detail/zh/Atlas200DKDeveloperKit/1013/productdesc/atlas200_DK_pdes_19_0007.html [百度学术]
滕云豪, 2022. 基于边缘计算的室内空气质量监测技术研究[D]. 上海:上海第二工业大学. [百度学术]
杨超, 2018. 基于大涡模拟的移动粒子半隐式法研究流固耦合及冲击破坏问题[D]. 上海: 上海交通大学. [百度学术]
张驰,张雨新,万德成, 2011. SPH方法和MPS方法模拟溃坝问题的比较分析[J]. 水动力学研究与进展A辑, 26(6): 11. [百度学术]
张雨新, 万德成, 2012. 用MPS方法数值模拟低充水液舱的晃荡[J]. 水动力学研究与进展A辑, 27(1): 100-107. [百度学术]
CHIKAZAWA Y, KOSHIZUKA S, OKA Y, 2001. A particle method for elastic and visco-plastic structures and fluid-structure interactions[J]. Comput Mech, 27(2): 97-106. [百度学术]
GARDNER M W, DORLING S R, 1998. Artificial neural networks (the multilayer perceptron)—a review of applications in the atmospheric sciences[J]. Atmos Environ, 32(14/15):2627-2636. [百度学术]
GLOROT X, BORDES A, BENGIO Y, 2011. Deep sparse rectifier neural networks[J]. J Mach Learn Res, 15:315-323. [百度学术]
GOTOH H, SAKAI T, 2006. Key issues in the particle method for computation of wave breaking[J]. Coast Eng, 53(2/3): 171-179. [百度学术]
JOUPPI N P, YOUNG C, PATIL N, et al,2017. In-datacenter performance analysis of a tensor processing unit[C]//Proceedings of 44th Annual International Symposium on Computer Architecture: 1-12. [百度学术]
KHAYYER A, GOTOH H, 2008. Development of CMPS method for accurate water-surface tracking in breaking waves[J]. Coast Eng J, 50(2): 179-207. [百度学术]
KOSHIZUKA S, OKA Y, 1996. Moving-particle semi-implicit method for fragmentation of incompressible fluid[J]. Nucl Sci Eng, 123(3): 421-434. [百度学术]
LEE B H, PARK J C, KIM M H, et al, 2011. Step-by-step improvement of MPS method in simulating violent free-surface motions and impact-loads[J]. Comput Methods Appl Mech Eng, 200(9/10/11/12): 1113-1125. [百度学术]
LEE V W, KIM C, CHHUGANI J, et al, 2010. Debunking the 100X GPU vs. CPU myth: An evaluation of throughput computing on CPU and GPU[J]. Acm Sigarch Comput Archit News, 38(3):451-460. [百度学术]
LIU D, CHEN T, LIU S, et al, 2015. PuDianNao: A polyvalent machine learning accelerator[J]. Acm Sigplan Notices, 50(4):369-381. [百度学术]
MONAGHAN J J, 1992. Smoothed particle hydrodynamics[J]. Annu Rev Astron Astrophys, 30:543-574. [百度学术]
SHIBATA K, KOSHIZUKA S, 2007. Numerical analysis of shipping water impact on a deck using a particle method[J]. Ocean Eng, 34(3/4): 585-593. [百度学术]
TANAKA M, MASUNAGA T, 2010. Stabilization and smoothing of pressure in MPS method by quasi-compressibility[J]. J Comput Phys, 229(11): 4279-4290. [百度学术]
TSURUTA N, KHAYYER A, GOTOH H, 2013. A short note on dynamic stabilization of moving particle semi-implicit method [J]. Comput Fluids, 82: 158-164. [百度学术]
TSURUTA N, KHAYYER A, GOTOH H, 2015. Space potential particles to enhance the stability of projection-based particle methods[J]. Int J Comput Fluid Dyn, 29(1): 100-119. [百度学术]
118
浏览量
357
下载量
0
CSCD
相关文章
相关作者
相关机构