利用 AMD Instinct™ MI300X 提升计算流体动力学性能

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)
AMD Instinct MI200 GPU(s)
AMD Instinct MI100 GPU(s)

Ubuntu
RHEL
SLES
Oracle Linux

ROCm Latest

Docker Engine Singularity

有关 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 节点上需要其中一种。

  • 许可证服务器
    The ANSYSLMD_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 操作中的优越效率和响应能力。

Performance Test Image

延迟结果是通过对每种单元大小和类型组合进行 5 次测试运行的中位数计算得出的。

总结

本文中的基准测试结果显示,AMD Instinct MI300X 加速器在关键的 CFD 耦合求解任务上,较 Nvidia H100 GPU 提供了开箱即用的性能提升。这些基准测试显示,在从400万单元的外部车身空气动力学到1.4亿单元的一级方程式赛车详细空气动力学性能模型中,MI300X 的解决时间速度提升高达 10%,展示了 MI300X 在处理复杂 CFD 操作中的优越效率和响应能力。基准测试结果突显了 AMD Instinct MI300X 加速器的高内存带宽和容量所带来的显著影响,并显示了它们如何为需要稳态分析的应用提供优势。

MI300X 准备好在需要竞争性延迟的环境中部署,为开发者提供了一个最大限度降低设置复杂性同时最大化性能的平台。对于寻求可靠、高效且可扩展的 HPC CFD 工作负载解决方案的组织而言,AMD Instinct MI300X 加速器代表了一种能够提供可衡量价值的引人注目的选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

109702008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值