Procesamiento con GPU con Spatial Analyst

ArcGIS AllSource ofrece un rendimiento mejorado gracias al uso del procesamiento con la unidad de procesamiento de gráficos (GPU) para algunas herramientas. Esta tecnología aprovecha la capacidad computacional de la tarjeta de gráficos de los ordenadores modernos para mejorar el rendimiento de algunas operaciones.

Las siguientes herramientas admiten actualmente el procesamiento con GPU:

Procesamiento con GPU

Una GPU es un componente de hardware de un ordenador cuya finalidad es acelerar la representación de los gráficos en la pantalla. Recientemente, la capacidad de procesamiento de las GPU se ha orientado a la realización de tareas de computación generales.

Para las herramientas aceleradas mediante GPU, la tarea de procesamiento de los rásteres se asigna a la GPU en lugar de a la unidad central de procesamiento (CPU). Ciertos tipos de operaciones se benefician de esta estrategia. En esos casos, el software divide la tarea de procesamiento en muchas porciones pequeñas que se envían a la GPU para realizar los cálculos. La GPU realiza los cálculos en paralelo para todas las porciones pequeñas a mayor velocidad. Los datos resultantes se devuelven y el software vuelve a reunir los componentes individuales en un producto final completo.

Tarjetas y controladores de GPU admitidos

Existen varias soluciones para el procesamiento en la GPU. Actualmente, solo se admiten las GPU NVIDIA con capacidad de computación CUDA con la versión 5.2 o posterior. El sistema debe tener instalada una tarjeta adecuada para poder acceder a esta capacidad.

Para comprobar el tipo de tarjeta gráfica existente en un equipo Windows, abra el Administrador de dispositivos del sistema y expanda Adaptadores de pantalla. Se muestran las marcas y los tipos de las tarjetas gráficas. Si no aparece ninguna tarjeta gráfica de la marca NVIDIA, no podrá acceder a esta función y la herramienta utilizará la CPU.

Si aparece una tarjeta gráfica NVIDIA, revise el tipo de GPU instalada en su sistema utilizando el panel de control de NVIDIA:

  1. Haga clic con el botón derecho en un área vacía del escritorio.
  2. En el menú contextual, haga clic en el Panel de control de NVIDIA.
  3. En la ventana del panel de control, vaya al menú Ayuda y haga clic en Información del sistema. Se muestran todas las tarjetas gráficas de NVIDIA, las versiones de sus controladores y otras propiedades.

Una vez que determine el tipo de tarjeta de GPU de NVIDIA, busque su capacidad de computación CUDA en la página de ayuda de NVIDIA para las GPU de CUDA. En la sección correspondiente, busque la tarjeta de GPU específica y anote el valor de capacidad de computación indicado para ella. Debe ser 5.2 o superior para que sea compatible con la herramienta.

Cuando se instala una tarjeta de GPU en un equipo, incluye un controlador predeterminado. Antes de ejecutar una herramienta de análisis que use una GPU, debe actualizar los controladores de las tarjetas de GPU a la versión más reciente disponible en la página de actualización del controlador de NVIDIA.

Configuración de GPU

La herramienta utiliza una GPU para el cómputo. Sin embargo, si el equipo solo tiene una GPU, se usará tanto para la visualización como para el cálculo. En este caso, al ejecutar la herramienta se mostrará un mensaje de advertencia indicando que es posible que la pantalla no responda. Para el análisis espacial, es recomendable usar dos GPU: una para la visualización y otra para el cálculo.

En el caso de que haya varias GPU en un sistema, dos variables de entorno del sistema determinan qué GPU se utilizará: CUDA_DEVICE_ORDER y CUDA_VISIBLE_DEVICES.

De forma predeterminada, la variable de entorno del sistema CUDA_DEVICE_ORDER se establece en FASTEST_FIRST. Esto significa que las distintas GPU de una máquina se numerarán de la más rápida a la más lenta, empezando por 0. Para numerar las GPU en función de cómo estén instaladas en una máquina, modifique la variable de entorno CUDA_DEVICE_ORDER y establézcala en PCI_BUS_ID.

Se considera que una GPU del clúster de cómputo Tesla (TCC) es más rápida que una GPU del modelo de controlador de pantalla Windows (WDDM) predeterminado. Por consiguiente, aparecerá en primer lugar (índice 0) y se utilizará para ejecutar la herramienta predeterminada. Si no hay ninguna GPU disponible en el modo de controlador TCC, y se deja el entorno CUDA_DEVICE_ORDER con la configuración predeterminada, se utilizará la GPU más rápida GPU (con índice 0), a menos que se indique proceder de otro modo.

Para especificar una GPU o deshabilitarla, puede configurar las variables de entorno del sistema CUDA_DEVICE_ORDER y CUDA_VISIBLE_DEVICES siguiendo estos pasos:

  • Para usar una GPU diferente, especifíquela por medio de la variable de entorno del sistema CUDA_VISIBLE_DEVICES. Para ello, cree primero esta variable de entorno si no existe en el sistema. A continuación, defina su valor como el valor del índice (0 para el primero, 1 para el segundo y así sucesivamente) que represente el dispositivo de GPU que desee usar y reinicie la aplicación. El valor del índice depende del orden determinado por la variable de entorno del sistema CUDA_DEVICE_ORDER. Para modificar el valor de CUDA_DEVICE_ORDER, siga los mismos pasos que para la variable de entorno del sistema CUDA_VISIBLE_DEVICES.
  • Si no desea que el análisis use ninguno de los dispositivos de GPU instalados en el sistema, establezca la variable de entorno del sistema CUDA_VISIBLE_DEVICES en -1 y reinicie la aplicación. La herramienta se ejecutará usando únicamente la CPU.
  • Para que una herramienta vuelva a utilizar un dispositivo GPU, elimine la variable de entorno del sistema CUDA_VISIBLE_DEVICES o establezca su valor en el valor de índice del dispositivo GPU que desea utilizar y reinicie la aplicación.

Para obtener más información sobre las variables de entorno del sistema CUDA_VISIBLE_DEVICES y CUDA_DEVICE_ORDER, consulte la guía de programación del kit de herramientas CUDA.

En las siguientes subsecciones se describen los pasos de configuración recomendados para lograr un procesamiento óptimo al utilizar la capacidad de la GPU.

Definir el modo de controlador TCC

En el caso de las GPU NVIDIA, configure la GPU que se utiliza para el cómputo con el controlador TCC, en lugar del controlador WDDM predeterminado. El modo TCC permite a la GPU funcionar de un modo más eficiente.

Para habilitar el modo del controlador TCC, use el programa de control NVIDIA System Management Interface, que se suele encontrar en C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. Por ejemplo, el comando 'nvidia-smi -dm 1 -i 2' cambia la tarjeta con el ID de dispositivo 2 al modo de visualización 1 (TCC).

Nota:

Si ejecuta ArcGIS Server, la GPU utilizada para el cálculo debe estar en el modo de controlador TCC.

Deshabilitar el modo ECC

Deshabilite el modo Error Correcting Code (ECC) en la GPU usada para el cálculo, ya que reduce la memoria disponible en la GPU.

Para deshabilitar el modo ECC, use el programa de control NVIDIA System Management Interface (nvidia-smi), que se suele encontrar en C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. Por ejemplo, el comando 'nvidia-smi -e 0 -i 1' desactiva el modo ECC para la GPU con el ID de dispositivo 1.

Aumentar el ajuste de TDR

Si la GPU utilizada para el cálculo está en el modo de controlador WDDM, el controlador del dispositivo de visualización Windows puede reiniciar la GPU si algún cálculo tarda más de un par de segundos. Esto se conoce como condición de detección del tiempo de espera y recuperación (TDR) de Windows. Si sucede, la herramienta no podrá completar y se devolverá un error de GPU.

Puede modificar la clave de registro TdrDelay para evitar esta situación. Si se establece en un valor adecuado (por ejemplo, 60 segundos), da tiempo a que se complete una operación larga antes de que se active la condición TDR. En casi todos los sistemas Windows, la ruta a la clave TdrDelay en el registro es HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers. Si la clave TdrDelay no existe, debe crearla en esta ruta. Cuando cree o cambie este valor del registro, realice primero una copia de seguridad del registro. Debe reiniciar el equipo para que el cambio tenga efecto. Para obtener más información, consulte Detección del tiempo de espera y recuperación (TDR) en la documentación para desarrolladores de Windows.

Precaución:

Esri no se responsabiliza de ningún problema del sistema que pueda ocurrir si el registro se modifica incorrectamente. Asegúrese de que dispone de una copia de seguridad válida del registro a la que volver en caso de que surjan problemas o pida a un analista de sistemas cualificado que realice el cambio.