通过针对一些工具使用图形处理器 (GPU),ArcGIS AllSource 现在可提供增强的性能。 该技术利用现代计算机中的图形卡的计算能力来改善某些操作的性能。
目前,以下工具支持 GPU 处理:
GPU 处理
GPU 是计算机中的硬件组件,其作用是在屏幕显示中加速图形的渲染。 最近,已将 GPU 的处理能力用于执行常规计算任务。
对于启用已加速 GPU 的工具,栅格处理任务将定向至 GPU,而非中央处理器 (CPU)。 某些类型的操作可从此方法中获益。 在此类情况下,软件可将处理任务划分为多个小部分并将其发送到 GPU 以进行计算。 然后,GPU 会以更快的速率并行执行所有小部分的计算。 将生成的数据发送回后,软件会将单个部分重新组成最终完成的产品。
支持的 GPU 卡和驱动程序
提供了多种适用于 GPU 处理的解决方案。 目前,工具仅支持具有 CUDA 计算能力的 5.2 版本或更高版本的 NVIDIA GPU。 您的系统必须安装相应的图形卡,才能具有访问此功能的权限。
要检查 Windows 计算机上的图形卡类型,请打开系统的“设备管理器”,然后展开“显示适配器”。 随即列出图形卡的品牌名称和类型。 如果未列出 NVIDIA 品牌的图形卡,则无法访问此功能,并且此工具将使用 CPU。
如果列出了 NVIDIA 图形卡,则需要使用 NVIDIA 控制面板来查看系统上安装的 GPU 类型:
- 右键单击桌面上的空白区域。
- 在快捷菜单中,单击 NVIDIA 控制面板。
- 在控制面板窗口中,转至“帮助”菜单并单击系统信息。 随即显示所有 NVIDIA 图形卡、其驱动程序版本以及其他属性。
确定 NVIDIA GPU 卡的类型后,可以在 NVIDIA CUDA GPU 帮助页面查看其 CUDA 计算能力。 在相关部分中,定位特定 GPU 卡,然后记下列出的其“计算机能力”值。 该值必须为 5.2 或更高的值,工具才支持此卡。
在计算机上安装 GPU 卡后,会随附默认驱动程序。 运行使用 GPU 的分析工具前,必须从 NVIDIA 驱动程序更新页面将 GPU 卡驱动程序更新为最新可用版本。
GPU 配置
此工具将使用一个 GPU 进行计算。 但是,如果计算机仅具有一个 GPU,则其将同时用于显示和计算。 在此情况下,将在工具运行时报告一条警告消息,指示显示可能出现无响应状态。 对于空间分析,建议使用两个 GPU:一个用于显示,另一个用于计算。
在系统中存在多个 GPU 的情况下,将通过两个系统环境变量(CUDA_DEVICE_ORDER 和 CUDA_VISIBLE_DEVICES)确定要使用的 GPU。
默认情况下,系统环境变量 CUDA_DEVICE_ORDER 设置为 FASTEST_FIRST。 这意味着计算机上的多个 GPU 将从最快到最慢编号,从 0 开始。 要根据 GPU 安装在计算机上的顺序对其进行编号,请将 CUDA_DEVICE_ORDER 环境设置修改为 PCI_BUS_ID。
在 Tesla 计算机集群 (TCC) 中的 GPU 被认为比默认 Windows 显示驱动程序模型 (WDDM) 中的 GPU 更快。 因此,它将首先列出 (索引为 0),并且默认情况下将用于运行工具。 如果 TCC 驱动程序模式中没有可用的 GPU,并且 CUDA_DEVICE_ORDER 环境保持默认设置,则将使用最快的 GPU (索引为 0),除非另有指定。
要指定 GPU 或将其禁用,可以通过执行以下操作设置 CUDA_DEVICE_ORDER 和 CUDA_VISIBLE_DEVICES 系统环境变量:
- 要使用其他 GPU,可以通过系统环境变量 CUDA_VISIBLE_DEVICES 进行指定。 为此,请先创建此环境变量(如果系统中不存在)。 然后,将其值设置为表示要使用的 GPU 设备的索引值(0 表示第一个,1 表示第二个,以此类推),然后重启应用程序。 索引值取决于由 CUDA_DEVICE_ORDER 系统环境变量确定的顺序。 要修改 CUDA_DEVICE_ORDER 值,按照与 CUDA_VISIBLE_DEVICES 系统环境变量相同的步骤进行操作。
- 如果不希望分析使用系统中安装的任何 GPU 设备,则可将系统环境变量 CUDA_VISIBLE_DEVICES 设置为 -1,然后重启应用程序。 将仅使用 CPU 运行该工具。
- 要启用工具再次使用 GPU 设备,可以删除系统环境变量 CUDA_VISIBLE_DEVICES 或者将其值设置为要使用的 GPU 设备的索引值,然后重启应用程序。
有关系统环境变量 CUDA_VISIBLE_DEVICES 和 CUDA_DEVICE_ORDER 的详细信息,请参阅 CUDA 工具包程序设计指南。
以下各小节介绍了使用 GPU 功能时要达到最佳处理性能的建议配置步骤。
设置 TCC 驱动模式
对于 NVIDIA GPU,应将用于计算的 GPU 设置为 TCC 驱动程序,而非默认 WDDM 驱动程序。 TCC 模式允许 GPU 更有效地运行。
要启用 TCC 驱动模式,请使用通常位于 C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe 的 NVIDIA 系统管理接口控制程序。 例如,命令 'nvidia-smi -dm 1 -i 2' 可将设备 ID 为 2 的卡切换为显示模式 1 (TCC)。
注:
如果运行 ArcGIS Server,则用于计算的 GPU 必须处于 TCC 驱动模式。
禁用 ECC 模式
禁用用于计算的 GPU 错误检查和纠正 (ECC) 模式,因为该模式会减少 GPU 上的可用内存。
要禁用 ECC 模式,请使用通常位于 C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe 的 NVIDIA 系统管理接口 (nvidia-smi) 控制程序。 例如,命令 'nvidia-smi -e 0 -i 1' 将禁用设备 ID 为 1 的 GPU 的 ECC 模式。
增大 TDR 设置
如果用于计算的 GPU 处于 WDDM 驱动模式,则当计算花费时间超过几秒钟时,Windows 显示设备驱动程序将重启 GPU。 这称为 Windows 超时检测和恢复 (TDR) 条件。 如果出现这种情况,则工具将无法完成运行,并且将返回 GPU 错误。
您可以修改 TdrDelay 注册表项以避免发生此情况。 将其设置为相应的值(例如,60 秒),可在触发 TDR 条件前保留足够时间以完成较长的操作。 在大部分 Windows 系统中,到注册表中 TdrDelay 项的路径为 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers。 如果 TdrDelay 项不存在,则必须在此路径中创建该项。 当创建或更改此注册表值时,需首先对注册表进行备份。 必须重新启动计算机才能使更改生效。 有关详细信息,请参阅 Microsoft 开发人员文档中的超时检测和恢复 (TDR)。
警告:
Esri 不对因错误修改注册表而导致的任何系统问题承担责任。 确保具有有效注册表备份,以便在遇到问题时用于恢复,或者由资深系统分析人员来执行此更改。