Обработка GPU в Spatial Analyst

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

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

Обработка GPU

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

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

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

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

Чтобы определить типы видеокарты на компьютере с 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 не несет ответственность за любые проблемы, которые могут возникнуть при неправильном изменении реестра. Убедитесь, что у вас есть действительная резервная копия реестра, к которой можно вернуться в случае возникновения проблем, или попросите квалифицированного системного аналитика выполнить данное изменение.