Viewshed 2 is a new geoprocessing tool available in the Spatial Analyst extension at ArcGIS for Desktop 10.3 and ArcGIS Pro 1.0. This tool uses geodesic distances and angles when calculating the viewshed, and takes advantage of graphics processing units (GPU), if available. It optionally accommodates vertical uncertainty in the input surface and produces an observer-visible region relationship table for up to 32 observers (points, multipoints or polylines) which can be related back to the input observer feature class.
Below are release notes providing additional technical details for using this tool.
- With systems containing multiple NVIDIA GPUs, the GPU used for analysis should use the TCC (Tesla Compute Cluster) driver instead of the WDDM driver when possible. To control TCC/WDDM mode, use the NVIDIA System Management Interface (nvidia-smi) control program typically found at:
C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe
For example, the command, 'nvidia-smi -dm 1 -i 1' switches 'card' with 'device id 1' to display 'mode 1' (TCC). TCC mode is required for compute GPUs being accessed by an ArcGIS server since it is running as a Windows service. Refer to the Related Information section at the bottom of this article.
- As of July 2014, only NVIDIA GPUs are supported. Esri is working on AMD GPU support.
- Verify that the graphics driver is up to date. Do not rely on the window driver update mechanism; instead, check NVIDIA's driver update page.
- CUDA compute capability 2.0 or OpenCL 1.2 is required. Visit NVIDIA's CUDA GPUs website to find the compute capability of the device. If access to a Microsoft Windows or Linux software development environment is available, the user can also build and run the deviceQuery sample app from the CUDA software development kit: CUDA Toolkit 10.1 Download.
- Approximately 30 bytes of temp space per processed target cell is required in the ArcGIS temporary folder.
The Outer radius parameter is used to restrict the number of cells that are processed (as opposed to the previous Viewshed/Visibility implementations).
- A VAT (value attribute table) currently gets built only when OBSERVER output is requested.
- For output with vertical uncertainty, the GPU random number generation method is described is not the same as the CPU version, which uses the random number generator defined in the geoprocessing environment.
For NVIDIA GPUs attached to an X Server on Linux, it may be necessary to disable the device's interactive mode if the user requires the GPU for 'compute'. This may cause the display to become unresponsive. For details, see the 'interactive' x-config option in the NVIDIA driver ReadMe file, which is usually found under ".../usr/share/doc/nvidia-x11-drv-<version>".
- For NVIDIA cards controlled by the Windows WDDM display driver, the user may also encounter an unresponsive display. There is a registry setting that can be adjusted to mitigate this issue. Review "method 1" at Microsoft's TDR Registry Keys webpage. For details on how to define the 'TdrDelay' (Timeout Detection and Recovery Delay) registry key, visit the link above.
The user must reboot after modifying this key value.
- The user can use WinVNC (instead of Remote Desktop) to access a WDDM-controlled GPU remotely.
- For systems with multiple NVIDIA cards installed, ensure Scalable Link Interface (SLI) is disabled.
- For systems with multiple WDDM-controlled NVIDIA GPUs, select which GPUs to use for an analysis operation by setting the 'CUDA_VISIBLE_DEVICES' environment variable to the GPUs that are used. Visit the CUDA Toolkit Programming Guide website for more details on environment variables.
This environment variable may not work for TCC controlled devices.