自 2023 R2 版本起,FDTD 支持 GPU 计算。本页总结了FDTD GPU求解器的要求和当前限制。

要在GPU上运行FDTD模拟,您需要Nvidia CUDA驱动程序版本450.80.02或更高版本(Linux)和版本452.39或更高版本(Windows)。此外,您的 Nvidia GPU 必須符合以下規定:

  • GPU 必须提供大于或等于 3.0(开普勒微架构或更高版本)的计算能力。
    • 旧设备的驱动程序已于 2019 年 <> 月停产。
  • 统一内存必须可用且已启用
    • 始终在台式机、笔记本电脑和裸机服务器上启用
    • 通常在通告“GPU 直通”的云实例(包括 AWS EC2 实例)上启用
    • 其他虚拟环境服务提供商应查阅 NVidia 虚拟 GPU 软件用户指南。
      • 虚拟机监控程序必须配置为提供 GPU 直通(其中物理设备专用于特定虚拟机)
      • 可能需要为每个特定的 vGPU 启用统一内存。

要监控 GPU 使用情况,请使用 NVidia 系统管理命令行实用程序报告的“GPU-Util”值。Windows 用户应注意,Windows 任务管理器仅报告与图形相关的 GPU 利用率。

许可要求

GPU 求解器许可证消耗与 CPU 求解器类似(请参见 Ansys 光学求解、加速器和 Ansys HPC 许可证消耗)。对于许可证使用情况计算,我们将流式处理多处理器 (SM) 视为 CPU 的核心。例如,对于Ansys标准/商业许可,每32条SM都需要Lumerical Accelerator(引擎许可证),且不进行部分计数。例如,具有 40 条短信的 GPU 需要两个许可证才能运行任何作业。

FDTD 作业将使用 GPU 中所有可用的 SM,即每个作业的 SM 数量不是用户可配置的。因此,必须有足够的许可证可用于所有 GPU SM。

对于多个作业,建议串联运行它们,而不是并行运行。并行运行所需的许可证数量与作业数量一样多,但与串行运行所需的时间大致相同。例如,在具有 32 个或更少 SMS 的 GPU 中同时运行两个作业需要两个许可证,但这与仅使用一个许可证在同一台计算机上运行一个作业所需的时间大致相同。

GPU 中的 SM 数量可以在 NVidia 的文档、第三方网站上找到,方法是运行 GPU 资源的作业管理器配置测试(仅限本地主机),

在日志文件中运行 FDTD GPU 引擎时

start loading CUDA query DLL...
load CUDA query DLL successfully.
GPU streaming multiprocessors(SMs): 16

或在FDTD GPU引擎运行后,FDTD结果“总GPU短信”

注意:与 CPU 一样,总内存带宽对于性能比内核数量更重要(请参阅 CPU 上的 FDTD 基准测试)。

模拟要求

FDTD GPU 求解器只能运行 3D FDTD 模拟。“快速模式”选项应在FDTD对象属性(高级选项选项卡)中启用。

GPU 求解器适用于窄带仿真或使用非色散材料进行仿真。
禁用所有动画监视器。

用户将作业管理器从“CPU”切换到“GPU”

  • 如果本地计算机上有多个 GPU,用户可以在作业管理器中选择特定的 GPU。运行引擎时,作业管理器将配置标准CUDA_VISIBLE_DEVICES环境变量。
  • 如果远程计算机上有多个 GPU,用户可以通过为 mpiexec.exe 指定适当的“额外命令行选项”来选择特定的 GPU。例如,要在具有 Microsoft MPI 的远程计算机上选择 GPU 3,请提供额外的命令行选项 /env CUDA_VISIBLE_DEVICES 3

脚本访问/自动化

FDTD 求解器属性“快速模式”

setnamed("FDTD", "express mode", true);

FDTD 资源管理器:

setresource("FDTD","GPU", true);
setresource("FDTD", 3, "GPU Device", "Auto");
setresource("FDTD", "GPU", false);
setresource("FDTD", "CPU", true); //< equivalent to previous line

为了允许远程主机 GPU,不会验证“GPU 设备”的值。默认值为“自动”。用户需要设置一个整数值。

当前限制

FDTD 求解器

仅支持 PML 边界条件。不支持布洛赫、周期、对称、反对称、PEC、PMC 边界条件。

来源

模式源/端口:

  • 不支持频率相关模式配置文件。

总场散射场 (TFSF) 来源:

  • 不支持 TFSF 源。

显示器

时间监视器:

  • 时间监视器会限制 GPU 性能。我们建议仅将它们用于调试和初步模拟。
  • 不支持空间插值。

频域监视器:

  • 不支持部分和总光谱平均
  • 不支持切趾

其他

图层构建器

  • 如果任何层生成器使用受限进程文件,则无法使用 FDTD GPU 引擎