Bootstrap

Ansys Fluent GPU求解器介绍

高性能计算 (HPC) 一直是加速 CFD 仿真的关键推动因素之一,GPU技术的发展对CFD的意义是革命性的。

其实在CFD领域利用GPU并不是一个新概念, 使用GPU加速CFD求解已经有一段时间了(Ansys Fluent于2014年提供)。

Ansys Fluent 在2021 R1版本开始提供了原生的GPU求解器,可完全在 GPU 上运行求解器代码,避免了 CPU 和 GPU 之间交换数据的开销以充分发挥 GPU 的潜力,与 CPU求解器相比,GPU求解器可以提高性能、降低硬件成本及功耗。

例如对于一个上亿网格的车辆外部空气动力学仿真而言,GPU求解器可以将求解效率提升5倍,如果使用多个GPU甚至可以提升至30倍。

在这里插入图片描述

同等性能的情况下,GPU相较于CPU,能耗可以降低4倍甚至更多。

在这里插入图片描述

众所周知,GPU相较于CPU在数值精度和算法稳定性上还存在一定的差距,但Fluent的GPU求解器有相当高的精度,例如对于经典的球体扰流问题,其阻力系数误差仅为-0.252%。

在这里插入图片描述

特别是对于工程应用,如果能通过GPU求解器在每项任务上节约几小时,那么全年下来节约的时间会十分可观

支持的GPU和驱动程序

Fluent GPU求解器基于NVIDIA开发的CUDA API实现并行计算,因此只支持NVIDIA的GPU。

支持的NVIDIA GPU包括NVIDIA Tesla和Quadro系列,不同的GPU对操作系统也有一定的要求(64位版本的Linux或Windows)。

Fluent在2024 R1版本开始测试支持AMD gpu,包括AMD MI250

在这里插入图片描述

在这里插入图片描述

Nvidia GPU的驱动程序必须兼容CUDA 11.0或更新版本。

在cmd或终端输入nvidia-smi,可以检查GPU型号、驱动版本、CUDA版本等信息。

在这里插入图片描述

启用Fluent GPU求解器

启用Fluent的GPU求解器有两种方法:

  • 使用Fluent启动器
  • 使用命令行

使用Fluent启动器

如图所示,GPU求解器仅支持企业级许可,切换至企业级许可后勾选本地GPU求解器选项即可。

在这里插入图片描述

如果有多个GPU可以分别进行控制,但指定的CPU进程数量必须大于GPU数。

在这里插入图片描述

通过命令行启动

对于Windows,在从命令行启动Fluent GPU求解器之前,通过执行位于Ansys Fluent目录中的setenv.exe程序(例如,c: \ program Files\ Ansys Inc\v232\ Fluent \ntbin\win64),确保到主目录的路径在命令搜索路径环境变量中。

在命令行键入以下命令即可开启GPU求解器

单精度
fluent 3d -tn -gpu 
双精度
fluent 3ddp -tn -gpu

在这里插入图片描述

GPU求解器支持的功能

以下是GPU求解器支持的主要功能

基本:

  • 仅支持3D几何

  • 支持单精度/双精度

  • 支持可压缩流动

  • 支持共轭传热

湍流模型:

  • Laminar
  • Standard 、Realizable k-epsilon
  • k-omega GEKO 、 k-omega SST
  • Large Eddy Simulation (LES)

求解:

  • 支持基于压力的求解器
  • 支持绝对速度形式
  • 支持瞬态和稳态计算

边界条件:

  • 支持壁面、对称、平移周期对称、旋转周期对称等边界条件。
  • 支持多孔介质
  • 支持动网格,旋转坐标
  • 支持源项
  • 支持组分输运

GPU求解器的局限性

下面包含了当前Fluent GPU(截止至2024R1)求解器的限制:

  • GPU求解器在Ansys Workbench环境中不可用。
  • 不支持圆柱坐标系中的Profiles,包括用于旋流入口的Profiles。
  • 必须在初始化或求解之前定义监视器(Monitors)和报告定义(Report definitions)。此外,如果求解器设置从稳定更改为瞬态,则可能需要重新定义报告定义。
  • 当检测固定壁面的动压(Dynamic Pressure)时,结果会为0。但是,使用报告计算的结果将显示一个不正确的非零值。
  • GPU求解器支持静态表达式(Static expressions),但不推荐使用。
  • 使用 GPU 求解器模拟超音速流动时,压力入口、速度入口和压力出口处的流动将无法正确离散,在这些边界类型处的流动将被视为亚音速流动。
  • 在对不可压缩或不可压缩理想气体材料进行能量方程建模时,基于cpu求解器和GPU求解器计算的温度场可能不同。这是由于两个求解器在计算不可压缩流时使用了不同的能量公式(总能量和热能)。、
  • 当使用二阶瞬态重新启动模拟时,求解器在重新启动后的第一个时间步使用一阶向后欧拉格式。

GPU求解器的显存占用

Fluent GPU求解器的显存消耗取决于案例的大小、网格类型、启用的模型、精度和某些求解器设置。

相较于内存,显存往往更少且难以扩展,因此在计算前需要对算例的显存占用进行估计。

通过以下几点可以帮助估算显存的占用情况:

  • 当用六面体网格,单精度,一百万单元模拟湍流时,需要约1GB的GPU内存。

  • 启用双精度将会提高50%显存占用。

  • 多面体网格将会提高20%到40%的显存占用。

  • 在AMG求解器聚合类型中使用最大独立集可以减少GPU20%到25%的显存占用。

    在控制台中执行以下命令为AMG求解器启用最大独立集:

    (rpsetvar 'gpuapp/aggregation-method "mis")
    

参考资料:

Ansys Fluent User's Guide

Unleashing the Full Power of GPUs for Ansys Fluent, Part 1

Unleashing the Full Power of GPUs for Ansys Fluent, Part 2

Ansys 2024 R1 - Graphics Cards Tested

Ansys 2024 R1 - GPU Accelerator Capabilities

Ansys 2024 R1 - GPU Compute Capabilities

;