Обработка на графическом процессоре c Spatial Analyst

ArcGIS AllSource обеспечивает повышенную производительность за счет использования графического процессора (GPU) для обработки некоторых инструментов. В современных компьютерах эта технология использует преимущества вычислительной мощности видеокарты для повышения производительности определенных операций.

В настоящее время поддержка GPU реализована в следующих инструментах:

Обработка GPU

Графический процессор (GPU) – это аппаратный компонент компьютера, основной задачей которого является ускорение визуализации графики на экране компьютера. В последнее время вычислительная мощность процессоров GPU направлена на выполнение общих вычислительных задач.

В инструментах на базе GPU задача обработки растра направляется не на центральный процессор компьютера (CPU), а на графический – GPU. Такой подход выгоден для определенных типов операций. В таких случаях программа разбивает задачу на множество мелких частей, которые направляются на GPU для обработки. Графический процессор выполняет вычисления параллельно для всех небольших фрагментов с более высокой скоростью. Полученные данные отправляются обратно, и программное обеспечение собирает отдельные компоненты в окончательный готовый продукт.

Поддерживаемые карты и драйверы GPU

Для обработки с помощью GPU доступны различные решения. В настоящее время поддерживаются только графические процессоры NVIDIA с вычислительной мощностью CUDA версии 5.2 или выше. Для доступа к этой возможности в системе должна быть установлена соответствующая карта.

Чтобы проверить типы видеокарты на компьютере с Windows, откройте диспетчер устройств и разверните Видеоадаптеры. Там будут перечислены названия и типы видеокарт. Если в списке нет видеокарты NVIDIA, вы не сможете получить доступ к этой функции, и инструмент будет использовать только CPU.

Если видеокарта NVIDIA есть, проверьте тип установленного графического процессора, используя для этого Панель управления NVIDIA:

  1. Щелкните правой кнопкой мыши на любой пустой области рабочего стола.
  2. В контекстном меню щелкните Панель управления NVIDIA.
  3. В окне панели управления откройте меню Справка и щелкните Информация о системе. Отобразятся все сведения о видеокарте NVIDIA, версии драйверов и другие свойства.

Определив тип видеокарты NVIDIA GPU, найдите ее вычислительную мощность CUDA на странице справки NVIDIA для графических процессоров CUDA GPU. В соответствующем разделе найдите свою плату GPU и обратите внимание на значение Вычислительная мощность, указанное для нее. Это значение должно быть равным или выше 5.2, чтобы поддерживаться инструментом.

Устанавливаемая на компьютерах видеокарта поставляется с драйвером по умолчанию. Перед запуском инструмента анализа, использующего GPU, необходимо обновить видеокарту графического процессора до последней доступной версии на странице NVIDIA driver update.

Конфигурация GPU

Для вычислительных операций инструмент использует один GPU. Но если у вас в компьютере только один GPU, то он будет использоваться и для визуализации, и для вычислительных операций. В этом случае во время выполнения инструмента появится предупреждающее сообщение, указывающее, что дисплей может перестать отвечать на запросы/ Для пространственного анализа рекомендуется использовать два GPU: один для визуализации, а другой – для вычислительных операций.

Когда в системе используется несколько графических процессоров, две системных переменных среды определяют, какой графический процессор будет использоваться: CUDA_DEVICE_ORDER и CUDA_VISIBLE_DEVICES.

По умолчанию системная переменная среды CUDA_DEVICE_ORDER задана как FASTEST_FIRST. Это означает, что несколько GPU на компьютере нумеруются от самого быстрого до самого медленного, начиная с 0. Чтобы пронумеровать графические процессоры в зависимости от того, как они установлены на машине, измените параметр среды CUDA_DEVICE_ORDER на PCI_BUS_ID.

Графический процессор в Tesla Computer Cluster (TCC) считается более быстрым, чем графический процессор Windows Display Driver Model (WDDM), используемый по умолчанию. Следовательно, он будет указан первым (индекс 0) и будет использоваться по умолчанию для запуска инструмента. Если в режиме драйвера TCC графический процессор недоступен, а значение среды CUDA_DEVICE_ORDER оставлено с настройками по умолчанию, будет использоваться самый быстрый графический процессор (с индексом 0), если не указано иное.

Чтобы указать графический процессор или отключить его, вы можете настроить системные переменные среды CUDA_DEVICE_ORDER и CUDA_VISIBLE_DEVICES, выполнив следующее:

  • Чтобы использовать другой графический процессор, укажите его с помощью переменной среды CUDA_VISIBLE_DEVICES. Для этого сначала создайте эту переменную, если ранее она не была создана в системе. Затем задайте ее значение, равное значению индекса (0 для первого, 1 для второго и т. д.), представляющего устройство GPU, которое вы желали бы использовать, и перезапустите приложение. Значение индекса зависит от порядка, определенного системной переменной среды CUDA_DEVICE_ORDER. Чтобы изменить значение CUDA_DEVICE_ORDER, выполните те же действия, что и для системной переменной среды CUDA_VISIBLE_DEVICES.
  • Если вы не хотите, чтобы в анализе использовалось какое-либо из устройств GPU, установленных в системе, установите переменную среды CUDA_VISIBLE_DEVICES на -1 и перезапустите приложение. Инструмент будет работать только за счет CPU.
  • Чтобы разрешить инструменту снова использовать GPU, либо удалите системную переменную среды CUDA_VISIBLE_DEVICES, либо установите ее значение в значение индекса устройства с графическим процессором, которое вы хотите использовать, и перезапустите приложение.

Для получения дополнительной информации о системных переменных среды CUDA_VISIBLE_DEVICES и CUDA_DEVICE_ORDER, см. CUDA Toolkit Programming Guide.

В следующих подразделах описываются рекомендуемые шаги настройки для достижения оптимальной работы при использовании возможностей GPU.

Настройка драйвера TCC

Для графических процессоров NVIDIA установите GPU, используемый для вычислений, в драйвер TCC, а не в драйвер WDDM по умолчанию. Режим TCC позволяет GPU работать более эффективно.

Чтобы включить режим драйвера TCC, используйте управляющую программу NVIDIA System Management Interface, обычно находящуюся в C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. Например, команда 'nvidia-smi -dm 1 -i 2' переключает видеокарту с идентификатором устройства 2 в режим отображения 1 (TCC).

Примечание:

Если вы запускаете ArcGIS Server, то GPU, используемый для вычислительных процессов, должен находиться в режиме драйвера TCC.

Отключение режима ECC

Отключите режим Код с исправлением ошибок (ECC) для того графического процессора, который используется для вычислительных процессов, поскольку он уменьшает объем памяти, доступной для данного GPU.

Чтобы отключить режим ECC, используйте управляющую программу NVIDIA System Management Interface (nvidia-smi), обычно находящуюся в C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. Например, команда 'nvidia-smi -e 0 -i 1' отключает режим ECC у GPU с идентификатором устройства 1.

Изменение настроек TDR

Когда графический процессор, используемый для вычислений, находится в режиме драйвера WDDM, то драйвер устройства Windows может перезагрузить этот графический процессор, если любой из этих процессов занимает более 2 секунд. Это называется условием для Windows Timeout Detection and Recovery (TDR). В этом случае работа инструмента не будет завершена и будет выведена ошибка GPU.

Вы можете изменить раздел реестра TdrDelay, чтобы избежать этой ситуации. Установка подходящего значения (например, 60 секунд), позволит завершить выполнение длительных операций до срабатывания условия TDR. На большинстве систем с Windows путь к ключу TdrDelay в реестре следующий HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers. Если ключ TdrDelay не существует, его необходимо создать в этом расположении. При создании или изменении этого значения реестра, сначала следует сделать резервную копию реестра. Вы должны перезагрузить компьютер, чтобы внесенные изменения вступили в силу. Дополнительные сведения см. в разделе Timeout detection and recovery (TDR) в документации разработчика Microsoft.

Внимание:

Esri не несет ответственность за любые проблемы, которые могут возникнуть при неправильном изменении реестра. Убедитесь, что у вас есть действительная резервная копия реестра, к которой можно вернуться в случае возникновения проблем, или попросите квалифицированного системного аналитика выполнить данное изменение.