近日有幸上手 tfluid 软件,完全依靠 GPU 进行有限体积法的多相流数值模拟,GPU 用了之前服务器上的 H100 和 A6000,计算效率相当震撼,实现了此前在 CPU 上从未达到的规模。之前看到胡渊鸣的 taichi,用物质点法模拟积雪压实的物理效果,用在《冰雪奇缘》电影的制作上,流体模拟也有很多粒子法在GPU上获得很好的效果,意识到计算流体力学也会实现从 CPU 到 GPU 的转变。也因此关注了一些将 OpenFOAM 迁移至 GPU 的项目,比如 RapidCFD,这个项目支持非常古老的 GPU 和 CUDA 版本,而且开发进展缓慢,文档和用户反馈都很一般,因而没有上手。也关注过一些用 taichi 实现的流体求解器,但这些求解器都不太能处理复杂网格,距离工业应用还有距离。直到俞涛博士开始 tfluid 的商业化,我才第一次在 GPU 上进行流体仿真,亲身见证计算工具的巨变。
服务器用的是之前的一台双路机架式服务器,这台服务器经过几次小升级,拥有了双路 A6000 和一块 H100,身价接近50万,而且使用这么久,受到目前的大模型热潮影响,硬件价格不降反升,真乃理财产品。tfluid 安装还比较顺利,解决了 cuda 和 msmpi 的版本依赖问题,就成功安装了,通过修改 CUDA_VISIBLE_DEVICES 环境变量,可以指定 tfluid 使用哪块 GPU。tfluid 软件界面见下图左,软件本身只有文本信息,算例文件保存的格式为 json,目前软件本身只带有结构网格生成功能,非结构网格要导入 openfoam 格式的网格文件,可视化和后处理依赖 paraview。因为小编只熟悉水气两相流,选了三维溃坝这个算例进行测试,原算例网格太少了,算不出水花飞溅的效果(体现不出 H100 的钞能力),因而三个方向均加密3倍,网格数量来到了两千六百万,实测显存占用45 GB ,几乎占满 A6000 48 GB 的显存。调整了亿点点求解器控制参数之后,开始计算,迫不及待守着电脑等结果,速度是真的快,很快就实现了水花四溅的效果,见下图。


H100 毕竟受到了美帝制裁,也不是谁都能去越南买一块游回来,为此,我又测试了 A6000 的效果,居然能达到 H100 一半的性能,见下图,而价格只有八分之一。大胆推断一下,tfluid 非常依赖 cuda 核心数,而对显存带宽不敏感,因此,3090 性价比肯定很高,4090 或许和H100性能差不多,刚出的5090也是极好的,但显存容量制约就无解了,24G 显存大概能算一千四百万网格,网格再多就只能咬牙上 A6000 了,想要大大大碗,或许 A100/A800 也是好选择。小编已经向开发者许过愿了,今年一定要把双卡并行搞出来,两块 A6000 一共 96G 显存,性能可能打平 H100。

最后再来说说 AI 这个话题,GPU采用有限体积法,在某种程度上是逆潮流的。我们看到太多数据驱动的研究,企图用高精度数据训练模型,取代 turbulence closure model;也有层出不穷的研究企图颠覆数值求解 NS 方程的路径,采用物理信息神经网络(PINN),建立一种新的研究范式;再者就是利用机器学习的方法求解控制、溯源等反问题。无疑,这三个方向才是当今的热门。在大语言模型流行后,CFD Agent 智能体也崭露头角,比如 MetaOpenFOAM。这些研究都能装进 AI CFD 这个大筐,打上新一代信息技术的标签,站上科技高地。那么,有限体积法求解 NS 方程,是不是只能在一些工程领域继续发挥余热,而无法与这些热门方向同场竞技呢?
我认为恰恰相反。我们可以建造出一个放心的吊脚楼,而无法建造出同样放心的海上平台,固体力学的完善使得结构设计臻于成熟,而流体力学却始终潜藏隐患。湍流运动小尺度各项同性,中尺度拟序,大尺度有序,而这种从无序到有序的变化都发生在物理学的宏观尺度,在一个小的几何尺度内发生了运动规律的剧变,因而流体运动都有强烈的比尺效应。受限于目前的计算能力,迫不得已选择某个“截断尺度”,小于截断尺度的运动平均化处理,仅数值求解大于该尺度的运动,截断和平均对大尺度的影响通过模型来修正,RANS 和 LES 都是这种思想的产物。这种截断和平均蕴藏无穷隐患,缺失边界层网格、误用湍流模型和二维大涡模拟等等常识问题仍然充斥 SCI 期刊。即便排除这些因为经验不足导致错误,湍流模型和壁面函数的适用范围仍然依赖于具体的流动类型,数值求解也常造成额外的扩散。
有限体积法最大程度确保了求解过程中的质量守恒,也能适应复杂几何,较容易实现二阶精度,适用的截断尺度非常宽广,也就能同时胜任 RANS 和 LES。即便如今已经接近摩尔定律的极限,芯片制程也接近光刻极限,在工程尺度求解 LES 仍然极具技术挑战且开销巨大。
只要我们仍然相信 NS 方程的有效性,最好的模型就是没有模型。克服算力瓶颈,始终都是计算流体力学最正统的路径,算力成为我们获得真相的唯一制约。这正是利用 GPU 的强大算力,进行有限体积法模拟的价值所在。