Procesamiento con GPU en 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 utiliza 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

La GPU es un componente de hardware de un ordenador que agiliza la representación en pantalla de los gráficos. 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). Hay ciertos tipos de operaciones para los que esta estrategia resulta ventajosa. 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 estas 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

Hay varias soluciones disponibles para el procesamiento con GPU. Actualmente, la herramienta solo admite las GPU NVIDIA con capacidad mínima de computación CUDA con la versión 5.2. El sistema debe tener instalada una tarjeta adecuada para tener acceso a esta capacidad. Para análisis de radiación solar se recomienda una capacidad de computación CUDA con la versión 7.0 o posterior para aprovechar plenamente las mejoras de rendimiento de GPU adicionales.

Para determinar el tipo de tarjeta gráfica de un equipo Windows, abra el Administrador de dispositivos del sistema y expanda Adaptadores de pantalla. Allí se enumeran las marcas y tipos de tarjetas gráficas. Si no aparece ninguna tarjeta gráfica de marca NVIDIA, no podrá acceder a esta capacidad y la herramienta utilizará la CPU.

Si tiene una tarjeta gráfica NVIDIA, debe comprobar el tipo de GPU instalada en el sistema usando 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 su tarjeta de GPU y tome nota del valor de capacidad de cálculo 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 solo usa una GPU para el cálculo. 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 que indica que la pantalla puede no responder. 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 varias GPU en un sistema, dos variables de entorno de 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 está establecida en FASTEST_FIRST. Significa que las diversas GPU de un equipo se numerarán de la más rápida a la más lenta, empezando por 0. Para numerar las GPU según cómo estén instaladas en un equipo, modifique la configuración del entorno CUDA_DEVICE_ORDER a PCI_BUS_ID.

Se considera que una GPU en el Tesla Computer Cluster (TCC) es más rápida que una GPU en el predeterminado Windows Display Driver Model (WDDM). En consecuencia, aparecerá en primer lugar (índice 0) y se utilizará para ejecutar la herramienta de forma predeterminada. Si no hay ninguna GPU disponible en el modo de controlador TCC, y el entorno CUDA_DEVICE_ORDER se deja en la configuración predeterminada, se utilizará la GPU más rápida (con índice 0), a menos que se especifique lo contrario.

Para especificar una GPU o para deshabilitarla, puede configurar las variables de entorno del sistema CUDA_DEVICE_ORDER y CUDA_VISIBLE_DEVICES haciendo lo siguiente:

  • Para usar una GPU diferente, especifíquela por medio de la variable de entorno del sistema CUDA_VISIBLE_DEVICES. 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 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, defina la variable de entorno del sistema CUDA_VISIBLE_DEVICES en -1 y reinicie la aplicación. La herramienta se ejecutará usando la CPU únicamente.
  • Para configurar una herramienta de modo que utilice de nuevo un dispositivo de GPU, elimine la variable de entorno del sistema CUDA_VISIBLE_DEVICES o defina su valor en el valor de índice del dispositivo de GPU que desee usar 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 CUDA Toolkit Programming Guide.

Las siguientes subsecciones describen los pasos de configuración recomendados para obtener un procesamiento óptimo cuando se use la funcionalidad de GPU.

Definir el modo de controlador TCC

Para las GPU NVIDIA, defina la GPU que se utiliza para el cálculo en el controlador TCC, en lugar de en el 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' deshabilita 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 de Windows puede reiniciar la GPU si algún cálculo tarda más de un par de segundos. Se conoce como condición de detección del tiempo del espera y recuperación (TDR) de Windows. Si sucede, la herramienta no podrá completar la ejecución y se devolverá un error de GPU.

La clave del registro TdrDelay se puede modificar para evitar esta situación. Si se define en un valor adecuado (por ejemplo, 60 segundos), deja tiempo suficiente para 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 de 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 Microsoft.

Precaución:

Esri no se responsabiliza de los problemas del sistema que puedan 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.