Boosting Computational Fluid Dynamics Performance with AMD Instinct™ MI300X — ROCm Blogs
2025 年 1 月 14 日,作者:Martin Huarte
本文将逐步指导您安装并运行借助 AMD MI300X 的 Ansys Fluent 基准测试。我们首先概述 Ansys Fluent CFD 应用程序,然后展示如何配置 AMD MI300X 系统运行基准测试。基准测试结果展示了 MI300X 在加速仿真、提高设计效率和降低成本方面的显著影响,尤其对汽车、航空航天和环境工程行业具有重要意义。
Ansys Fluent 概述
Ansys Fluent® 是商业计算流体动力学 (CFD) 领域广受赞誉的通用求解器,以其多功能性闻名。科学家和工程师在全球多个行业中使用 Fluent,尤其是汽车和航空航天领域,以及能源、材料和化学加工和高科技行业。Ansys 最近在 Fluent 流体仿真软件中集成了对 AMD Instinct™ MI200 和 MI300 加速器的支持, 显著提升了仿真效率和性能。Fluent 今天可以直接在 AMD Instinct™ GPU 上运行。要在 AMD Instinct™ GPU 上运行 Ansys Fluent,只需在 Fluent 启动器中勾选一个框,或在命令行中添加 -gpu
标志,因为 Fluent 流体仿真软件中的 CPU 和 GPU 求解器的运行环境类似。
性能测试方法
本文描述的基准测试通过四个 Ansys Fluent 基准模型评估 AMD Instinct™ MI300X 平台和 NVIDIA H100 平台在关键 CFD 用例中的性能。Ansys 设计这些测试以衡量在代表实际应用的配置下的求解速度和效率,包括轿车、飞机机翼和赛车等。我们根据数百万个网格单元以及与这些用例相关的单元类型来调整基准测试工作负载,如下表所示。正如将显现的那样,AMD Instinct MI300X 的 192 GB HBM3 大容量和高内存带宽,以及 AMD Infinity Cache™ 使其成为这些应用及其稳态分析需求的理想选择。
用例总结和描述
用例 | 网格数量 [百万个单元] | 单元类型 | 描述 |
---|---|---|---|
sedan_4m | 4 | 混合 | 标准 k-ε 湍流模型模拟乘用车外部流动。允许客户优化车辆设计的空气动力学性能,自动化形状优化,特别是复杂部件如后视镜,提升车辆的燃油效率、稳定性和整体性能。 |
aircraft_wing_14m | 14 | 六面体 | 真实 k-ε 湍流模型模拟飞机机翼的气流。允许航空客户优化其飞机设计的空气动力学性能,并分析起飞和着陆条件下仿真飞机机翼的低速气流。这有助于提高飞机的燃油效率和稳定性。 |
exhaust_system_33m | 33 | 混合 | SST k-ω 湍流模拟排气歧管中的流动和传热,测量流动结构以及质量和能量的守恒。允许客户了解并优化其排气系统的性能。 |
f1_racecar_140m | 140 | 五边形核心 | 真实 k-ε 湍流模型模拟一级方程式赛车的流动,测量流动结构以及质量的保持。允许 F1 车队对空气动力学、热管理及车辆性能有深入了解,从而在赛场上获得竞争优势。 |
AMD Instinct MI300X GPU 测试系统配置
对于 MI300X 的基准测试,使用 FP64 精度在 SuperMicro 服务器上的 8 个 GPU 上执行 Ansys Fluent 版本 2024 R2。Fluent 耦合求解器使用 sedan_4m、aircraft_wing_14m、exhaust_system_33m 和 f1_racecar_140m 基准模型运行。
信息 | 规格 |
---|---|
服务器平台 | Supermicro AS -8125GS-TNMR2 |
GPUs | AMD Instinct MI300X Platform (8x MI300X OAM GPUs 192GB HBM3, 750W each) |
CPUs | 2x AMD EPYC™ 9554 CPUs |
Cores | 2x 64 cores |
Numa 配置 | 每个插槽 1 个 NUMA 节点 |
内存 | 2TB |
存储 | 877GB |
主机操作系统 | Ubuntu 22.04.4 LTS |
主机 GPU 驱动程序 | ROCm™ 6.2.0-66 |
BIOS 版本 | American Megatrends Inc. - 1.1 |
ROCm™ 版本 | 6.1.0-48 |
Learn more about the compute, memory, and networking capabilities of the MI300X platform in the AMD CNDA™ 3 Architecture white paper在 AMD CDNA™ 3 架构白皮书中了解 MI300X 平台的计算、内存和网络能力。Learn more about the compute, memory, and networking capabilities of the MI300X platform in the AMD CNDA™ 3 Architecture white paper.
NVIDIA H100 GPU 测试系统配置
NVIDIA H100 的基准测试在 Ansys Fluent 版本 2024 R2 上运行,使用 FP64 精度在 8 个 GPU 上执行,使用 Fluent 耦合求解器在 sedan_4m、aircraft_wing_14m、exhaust_system_33m 和 f1_racecar_140m 基准模型上运行。
信息 | 规格 |
---|---|
服务器平台 | NVIDIA DGXH100 |
GPUs | 8x NVIDIA H100 SXM GPUs 80GB HBM3 (700W each) |
CPUs | 2x Intel Xeon 8480CL CPUs |
Cores | 2x 56 cores |
Numa 配置 | 每个插槽 1 个 NUMA 节点 |
内存 | 2TB |
存储 | 1.8TB |
主机操作系统 | Ubuntu 22.04.4 LTS |
主机 GPU 驱动程序 | CUDA 12.2 |
BIOS 版本 | 96.00.61.00.01 |
测试指南
以下是此基准测试研究中代码安装和配置的分步指南,包括复制 MI300X 和 H100 结果的步骤。
单节点服务器要求
CPUs | GPUs | Operating Systems | ROCm™ Driver | Container Runtimes |
---|---|---|---|---|
X86_64 CPU(s) | AMD Instinct MI300A/X APU/GPU(s) |
有关 ROCm 安装程序和验证检查,请参见:
安装 Ansys Fluent 裸机选项
[如果要在 Docker 容器而非裸机上构建或安装 Fluent,请按照下文中的“安装 Ansys Fluent 基础容器选项”部分的说明进行操作。](### 安装 Ansys Fluent 基础容器选项)
本安装指南假设你拥有 Ansys Fluent 的许可证以及 Ansys 提供的含 Fluent 应用程序的 tar 文件。本例中使用名为 fluent.24.2.lnamd64.tgz
的 tar 文件
构建系统要求
-
ROCm
-
Mesa 3D 图形库和 XCB 实用程序库
-
MPI 堆栈(可选)
-
OpenMPI/UCC/UCX
-
Cray MPI
-
安装步骤本例将 Ansys Fluent 安装到 /opt
目录,但这不是必须的。
解压 tar 文件
cd /opt tar -xzvf fluent.24.2.lnamd64.tgz
将 Fluent 添加到 PATH 并设置环境变量
export PATH=/opt/ansys_inc/v242/fluent/bin:/opt/ansys_inc/v242/fluent/bench/bin:$PATH export ANSGPU_OVERRIDE=1
将 Fluent Python 链接到 Path
ln -s /opt/ansys_inc/v242/commonfiles/CPython/3_10/linx64/Release/python/bin/python /usr/bin/python
或
sudo update-alternatives -set python /opt/ansys_inc/v242/commonfiles/CPython/3_10/linx64/Release/python/bin/python
设置外部 MPI(可选)
本例使用本地 Open MPI 安装在 /opt/ompi
目录下。要使用 CRAY MPI
,请指向安装根目录。
export OPENMPI_ROOT=/opt/ompi
Ansys 许可证
Ansys Fluent 有两种许可证方法。运行 Ansys Fluent 在 GPU 节点上需要其中一种。
-
许可证服务器
TheANSYSLMD_LICENSE_FILE
环境变量应设置为你使用的 AnsysLMD 服务器地址。export ANSYSLMD_LICENSE_FILE=1055@<AnsysLMD server IP address>
-
临时许可证本例使用名为
ansyslmd.ini
的文件作为许可文件。假设 Fluent 安装在/opt/ansys_inc/
目录中。
cp ./ansyslmd.ini /opt/ansys_inc/shared_files/licensing/ ANSYSLI_ELASTIC=1 # SSL 问题修复(修复 elastic 问题) capath=/etc/ssl/certs cacert=/etc/ssl/certs/ca-certificates.crt echo "capath=/etc/ssl/certs" >> $HOME/.curlrc echo "cacert=/etc/ssl/certs/ca-certificates.crt" >> $HOME/.curlrc cd /etc/ssl/certs && wget http://curl.haxx.se/ca/cacert.pem && ln -s cacert.pem ca-bundle.crt
安装 Ansys Fluent 基础容器选项
这些说明使用 Docker 创建 Ansys Fluent 容器。此容器假设你拥有 Ansys Fluent 的许可证以及 Ansys 提供的含 Fluent 应用程序的 tar 文件([请参阅上述 Ansys 许可证部分](#### Ansys License))。这些文件应位于 docker 构建上下文中的名为 sources
的目录下。
本例中使用名为 fluent.24.2.lnamd64.tgz
的 tar 文件
系统要求
-
Git
-
Docker
更新 Docker 文件在 Dockerfile
中可以在构建前硬编码 FLUENT_TAR
和 FLUENT_VERSION
的默认值或在构建时输入。
Ansys 许可证Ansys Fluent 有两种许可证方法。在构建时,可以提供 ANSYSLMD_LICENSE_FILE
的 build-arg
或更新 临时许可证部分 取消注释并确保 ansyslmd.ini
文件与 tar 文件一起放在 sources
目录中。
输入可能的 Docker 构建命令的 build-arg
参数
IMAGE
默认值: rocm_gpu:6.2.4
此容器需要使用 Base ROCm GPU 构建。
FLUENT_TAR
Default: fluent.24.2.lnamd64.tgz
This should reflect the tar file provided by Ansys. This file must be in the folder sources
and this folder must be referenced at build time.
FLUENT_VERSION
默认值: 242
这是 Fluent 的版本号。例如:本例是 24.2,因此使用 242,因为这是 Fluent tar 中的参考。
ANSYSLMD_LICENSE_FILE (必需)
如果不使用临时许可证,必须提供此文件。这是指向运行 Ansys Fluent 所需的 Ansys 许可证服务器/许可证的引用。
构建容器
下载 Dockerfile
运行默认配置:
docker build -t ansys/fluent:latest --build-arg ANSYSLMD_LICENSE_FILE=1234 -f /path/to/Dockerfile .
注意事项:
-
ansys/fluent:latest
是一个示例容器名称。 -
在构建命令末尾的
.
非常重要。它告诉 Docker 您的构建上下文所在位置,Ansys Fluent 文件应相对于此路径。 -
只有在您的 Dockerfile 位于与构建上下文不同的目录中时才需要
-f /path/to/Dockerfile
。如果您在同一个目录中构建,则不需要。
要运行自定义配置,请包含一个或多个自定义的 build-arg
参数。
免责声明:此 Docker 构建仅在使用默认值时进行了验证。如果不遵循指令,可能会导致构建失败。
docker build \ -t fluent:latest \ -f /path/to/Dockerfile \ --build-arg IMAGE=rocm_gpu:6.2 \ --build-arg FLUENT_TAR=fluent.24.2.lnamd64.tgz \ --build-arg FLUENT_VERSION=242 \ --build-arg ANSYSLMD_LICENSE_FILE=1055@127.0.0.1 \ .
运行应用容器
本节介绍如何启动容器。假定您的系统上安装了最新版的 Docker 和/或 Singularity。如果需要,请咨询您的系统管理员或查看官方文档。
Docker
要交互式地运行容器,请运行以下命令:
docker run -it \ --device=/dev/kfd \ --device=/dev/dri \ --security-opt \ seccomp=unconfined \ -v /PATH/TO/FLUENT_TEST_FILES/:/benchmark \ fluent:latest bash
运行容器的用户必须对 /dev/kfd
和 /dev/dri
具有权限。这可以通过成为 video
和(或)`render` 组的成员来实现。
附加参数说明
-
-v [system-directory]:[container-directory]
将在运行时挂载一个目录到容器中。 -
-w [container-directory]
将指定容器内的起始目录。 -
该容器已使用
OpenMPI
构建,要使用Cray MPICH
,需要用 Cray MPICH 的路径覆盖 OpenMPI 的安装路径。-v [/absolute/path/to/mpich]/:/opt/ompi/
包含所有必要的 Cray 环境变量,每个变量使用
-e MPICH_GPU_SUPPORT_ENABLED=1
Singularity
Singularity,类似于 Docker,可以用于运行 HPC 容器。要从本地 Docker 容器创建 Singularity 容器,请运行以下命令:
singularity build fluent.sif docker-daemon://fluent:latest
Singularity 可以像 Docker 一样启动交互式和非交互式容器,以下是启动交互式运行的示例
singularity shell --writable-tmpfs fluent.sif
-
--writable-tmpfs
允许文件系统可写,许多基准测试/工作负载需要此功能。 -
--no-home
在运行时不会将用户的主目录挂载到容器中。 -
--bind [system-directory]:[container-directory]
将在运行时挂载一个目录到容器中。 -
--pwd [container-directory]
将指定容器内的起始目录。 -
该容器已使用
OpenMPI
构建,要使用Cray MPICH
,需要用 Cray MPICH 的路径覆盖 OpenMPI 的安装路径。-bind [/absolute/path/to/mpich]/:/opt/ompi/
使用--env
为每个变量包括任何/所有必需的 Cray 环境变量env MPICH_GPU_SUPPORT_ENABLED=1
有关 Singularity 的更多详细信息,请参阅他们的 用户指南
下载工作负载
将 .tar
文件复制到 Ansys 安装目录下 [path]/ansys_inc/v<version>/fluent
tar -xvf <case>.tar
对于每个独立的案例包,请重复上述步骤。
启动性能测试
-
使用 8 个 MI300X GPU 运行用例 sedan_4m、aircraft_wing_14m、exhaust_system_33m 和 f1_racecar_140m:
ansys_inc/v242/commonfiles/CPython/3_10/linx64/Release/python/bin/python ansys_inc/v242/fluent/bench/bin/fluent_benchmark_gpu.py -gpu.amd -cores 8 -cases sedan_4m,aircraft_wing_14m,exhaust_system_33m,f1_racecar_140m -reorder_by_partition 1024 -mpi=openmpi
-
使用 8 个 H100 GPU 运行用例 sedan_4m、aircraft_wing_14m、exhaust_system_33m 和 f1_racecar_140m:
ansys_inc/v242/commonfiles/CPython/3_10/linx64/Release/python/bin/python ansys_inc/v242/fluent/bench/bin/fluent_benchmark_gpu.py -gpu -cores 8 -cases sedan_4m,aircraft_wing_14m,exhaust_system_33m,f1_racecar_140m -reorder_by_partition 1024 -mpi=openmpi
故障排除
如果您在执行上述命令时遇到任何问题,请使用详细模式以获取有用的信息。只需在上述任一命令末尾添加标志 -verbose 1
即可。
有关这些安装的更多详细信息,请访问 AMD’s Infinity Hub.
性能亮点
基准测试结果表明,AMD Instinct™ MI300X 加速器在关键的 CFD 耦合求解任务上,较 Nvidia H100 提供了开箱即用的性能提升。这些基准测试显示,在从400万到1.4亿个单元的模型中,MI300X 的解决时间速度提升高达 10%,展示了 MI300X 在处理复杂 CFD 操作中的优越效率和响应能力。
延迟结果是通过对每种单元大小和类型组合进行 5 次测试运行的中位数计算得出的。
总结
本文中的基准测试结果显示,AMD Instinct MI300X 加速器在关键的 CFD 耦合求解任务上,较 Nvidia H100 GPU 提供了开箱即用的性能提升。这些基准测试显示,在从400万单元的外部车身空气动力学到1.4亿单元的一级方程式赛车详细空气动力学性能模型中,MI300X 的解决时间速度提升高达 10%,展示了 MI300X 在处理复杂 CFD 操作中的优越效率和响应能力。基准测试结果突显了 AMD Instinct MI300X 加速器的高内存带宽和容量所带来的显著影响,并显示了它们如何为需要稳态分析的应用提供优势。
MI300X 准备好在需要竞争性延迟的环境中部署,为开发者提供了一个最大限度降低设置复杂性同时最大化性能的平台。对于寻求可靠、高效且可扩展的 HPC CFD 工作负载解决方案的组织而言,AMD Instinct MI300X 加速器代表了一种能够提供可衡量价值的引人注目的选项。