You are on page 1of 6

® ®

ENVI SARscape Installation Procedure for Windows 7, 8, 8.1


(SARscape 5.1.0)

Two installation packages are provided:


SARscape_5.1.0_64bit.exe for 64 bit operating systems.
SARscape_5.1.0_32bit.exe for 32 bit operating systems.

The installation requires administrator privileges and ENVI 5.1 must be already
installed on the target system. SARscape 5.1 runs on ENVI 5.1 (with the
new interface) and ENVI 5.0 SP3 (with the old interface).

In SARscape 5.1 we started the progressive adoption of GPGPU-based


technologies to increase performance through improved parallelism. We based
our solution on the Open Computing Language (OpenCL) which is an open
standard widely supported by most of the hardware manufacturers and software
developers. In order to use SARscape 5.1, a working OpenCL runtime must
be available on the target machine. A default runtime is automatically
installed through the installation wizard, but additional considerations must be
applied if you plan to use a GPU for better performance or if the target machine
is not compatible with the default OpenCL runtime. Please refer to the SARscape
5.1 OpenCL Installation Notes section hereafter for additional information.

The installation wizard will guide you through the installation process, which is
almost entirely automatic: the user can only select the installation directory.

Please note that for installations targeting a virtual machine, the number of
available processors should be set to two or more, at least. Please also enable all
the advanced instruction sets (such as SSE4, AVX, etc.) supported by your
CPU/hypervisor: OpenCL requires them to work properly.

Obj100

It might happen that some antivirus/firewall software prevents the proper


installation of the SARscape extensions: in such a case, the SARscape menu will
not appear under the ENVI mainframe. To fix this problem, the following
command must be entered from a DOS command prompt (cmd):

custom_action_install_sarscape.exe /SARSCAPE_PATH=installation directory

Example:

custom_action_install_sarscape.exe /SARSCAPE_PATH=C:\Program
Files\SARMAP SA\SARscape 5.1

In case you need further information, or if you have any question, don’t hesitate
to contact us.

Kind regards,
Your sarmap team

SARscape 5.1 OpenCL Installation Notes


These installation notes are provided as fallback for customers without an
internet connection.
Please refer to the online version of this document for the most recent source of
information:
http://sarmap.ch/ocl/opencl-install.html

1. Introduction
In SARscape 5.1 we started the progressive adoption of GPGPU-based
technologies to increase the processing performance through improved
parallelism. We based our solution on the Open Computing Language (OpenCL),
which is an open standard widely supported by most of the hardware
manufacturers and software developers.

In order to use SARscape 5.1, a working OpenCL runtime must be first installed
on the target machine. There are several different OpenCL runtime versions that
are designed to work with specific devices such as CPUs, GPUs and accelerators.
You can have more than one version of OpenCL runtime on your machine: you
can select at any moment which version should be used by SARscape under the
General Properties.
According to the hardware characteristics of the machine that you plan to use for
SARscape, the following sections might help you in finding out how to properly
install and configure OpenCL.

2. OpenCL runtimes
2.1 CPU-only
Unlike CUDA, you don't need a specific brand of GPUs to start using OpenCL.
Actually, you don't need a GPU at all to use OpenCL since, as of today, there
already exist two CPU-only runtime versions that are capable to put the
computational power provided by your CPU at the service of OpenCL.
Depending on the brand and model of your CPU, one or both the following
options can be applied.

Intel CPU-only runtime


Intel provides a highly-optimized CPU-only implementation of OpenCL that is
taking advantage of the most recent CPU instruction sets (such as SSE4.2 and
AVX) and code vectorization to speed up the execution of OpenCL kernels. Intel
CPU-only runtime installers can be found at this link.
Please be aware that the Intel CPU-only runtime only works on modern Intel
processors (and unofficially on some recent AMD processors, too),
which means on CPUs that are not older than 5 years.
During the installation procedure of SARscape 5.1, the Intel CPU-only runtime
is automatically installed to provide a fallback OpenCL implementation only if
no other working CPU-only implementations of OpenCL are already available.

AMD CPU-only runtime


AMD also provides a CPU-only implementation of OpenCL that runs on almost
any CPU supporting SSE2 at least. While the AMD implementation is slightly less
optimized than Intel's one, it can be used on a wider set of processors, including
Intel and older AMD models.
For legal reasons, we cannot redistribute the AMD CPU-only runtime within
SARscape. If you are experiencing problems with the Intel CPU-only runtime
(e.g., you don't have an Intel CPU or your CPU is not supported by the Intel
runtime), you can download and install the AMD CPU-only runtime as fallback.
The AMD CPU-only runtime is included in the AMD APP SDK that is available
here. Although more recent releases are available, we recommend to download
and use the 2.8.1 version (version 2.9 has a problem with the installation of
the runtime). During the AMD APP SDK installation process select the Custom
option and install just the runtime (unless you need the whole SDK for other
reasons):

Obj101

2.2 GPU support


OpenCL runtimes for a specific GPU are usually transparently installed with the
GPU drivers provided by each hardware vendor. Please be aware that OpenCL
support is often only included in the official full-version of the drivers that can be
downloaded from each hardware manufacturer: default drivers installed by
Windows only provides a minimal set of the features supported by a specific
model.
Specific drivers can be directly downloaded from NVIDIA, AMD, and Intel.
Any OpenCL 1.1-compliant GPU with at least 1 GB of VRAM can be used for
SARscape: GPUs not matching these requirements are not mentioned in the
General Preferences.
We strongly recommend to keep your GPU drivers updated to the latest
available version.
2.3 Accelerator support
Accelerators are another category of devices suitable for OpenCL acceleration.
Intel Xeon Phi coprocessors belong to this category and their drivers are
provided by Intel.
2.4 Linux support
OpenCL runs smoothly also under Linux, but unlike the Windows version of
SARscape, the Intel CPU-only runtime is not automatically installed. It is up
to the user to make sure that a working OpenCL runtime is already available on
the target system before installing SARscape. OpenCL runtime installers for Linux
are usually provided at the same links mentioned in the previous sections. A
good guide on how to install OpenCL under Linux is available at this page.

3. Troubleshooting
3.1 Known issues
Even if not explicitly required, it is often necessary to reboot the machine
before a freshly installed OpenCL platform or device is correctly
recognized by the system.

AMD APP SDK 2.9 is not correctly installing the CPU-only runtime. As a
workaround, please keep using the 2.8.1 version instead.

We faced some compilation problems with OpenCL and the NVidia GeForce
GT 6x0M series: updating the GPU drivers to the latest version fixed the
issues.

GPU-accelerated OpenCL is not always available when SARscape is used over


a Remote Desktop session under Windows. Only a few GPU products are
compatible with the RDP protocol, like NVidia GPUs in TCC mode or some
AMD GPUs.
As a workaround, users can opt for one of the following options:
rely on CPU-only OpenCL when SARscape is used remotely
use a different remote desktop service, such as VNC or TeamViewer
install SARscape on a Linux machine and connect through ssh –X

SARscape 5.1 OpenCL Frequently Asked Questions


This FAQ is provided as fallback for customers without an internet connection.
Please refer to the online version of this document for the most recent source of
information:
http://sarmap.ch/ocl/opencl-faq.html

Q: What is OpenCL?
The Open Computing Language (OpenCL) is a framework for writing applications
capable of taking advantage of the parallel power provided by modern
computational devices like multicore processors, graphics processing units
(GPUs), co-processors (Xeon Phi), field/programmable gate arrays (FPGAs), etc.
OpenCL is an open standard adopted by the majority of today’s hardware
manufacturers.
We used OpenCL to improve the performance of the core units of selected
algorithms in SARscape 5.1. Unlike other similar products like NVIDIA CUDA,
OpenCL is not tight to any specific vendor, operating system, or hardware
platform.

Q: Why using OpenCL in SARscape?


Since about one decade, processors are providing additional computational
power through improved parallelism rather than higher clock frequencies. For this
reason, we already parallelized several portions of the SARscape pipelines to
cope with this shift in the programming paradigm. GPUs and other modern
massively parallel devices (such as Xeon Phi coprocessors) are providing a
significantly higher level of parallelism within a reasonable cost/benefit ratio. By
writing our core units in OpenCL, we allow SARscape to take advantage not only
of multicore CPUs, but also (when available) of the parallel computational power
provided by those dedicated devices.

Q: Which portions of SARscape are taking advantage of OpenCL?


OpenCL has been introduced as a strict requirement in SARscape version 5.1.
Currently, the Persistence scatterer and Geocoding processing pipelines have
been ported to OpenCL, in addition to several global routines used in many parts
of SARscape. Additional OpenCL support will be progressively introduced with the
future releases of SARscape.

Q: Do I need a recent graphics card to run SARscape 5.1?


No. Unlike CUDA, where an NVIDIA GPU is required to run the code, OpenCL
provides at least two CPU-only implementations that can be used to run
SARscape on almost any computer. These CPU-only implementations are much
more than a simple fallback for machines not equipped with a recent GPU since
they are optimized for exploiting the hardware resources of the CPU (like multiple
cores and advanced instruction sets). In any case, SARscape 5.1 requires a GPU
(or OpenCL accelerator) with at least 1 GB of memory. As of today, if you plan to
buy some hardware for explicit usage with SARscape 5.1, we recommend recent
AMD GPU products: while SARscape also runs smoothly on NVIDIA hardware and
Xeon Phi coprocessors, the OpenCL performance, support and cost/benefit ratio
provided by AMD are significantly better than the ones provided by other
hardware manufacturers.

Q: I don’t have any GPU in my computer: can I run SARscape 5.1?


Yes: by default, the SARscape 5.1 installer inspects the underlying system and, if
no CPU-only OpenCL runtime is detected, the Intel CPU-only OpenCL runtime is
automatically installed. The Intel CPU-only OpenCL runtime supports most of the
recent Intel (and, to some extent, AMD) CPUs. If your CPU is relatively old or not
supported by the Intel runtime, you can always download and install the AMD
CPU-only OpenCL runtime, which is slightly less optimized than Intel’s one but
works on a broader series of processors (i.e., it just requires SSE2 support). For
legal reasons, we cannot redistribute the AMD runtime with SARscape, but it is
integrated within the AMD APP SDK that can be freely downloaded at the AMD
developer portal (developer.amd.com). At the moment, we recommend to use
the AMD APP SDK version 2.8.1 even if more recent versions are available.

Q: Will SARscape run faster on my computer with two (or more) GPUs
connected through SLI/CrossFire?
NVIDIA SLI and AMD CrossFire are technologies exploited only when the GPUs
are used for graphics rendering: they don’t have any impact on OpenCL. At the
moment, only one single device can be used by SARscape: if several devices are
available, it is up to the user to specify which one to use. On the other hand,
multiple independent batches can be assigned to different GPUs and processed
in parallel.

You might also like