SARscape 5.4 OpenCL FAQ

Last update: A. Peternier, 23/01/2017

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), accelerators/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 are using OpenCL to improve the performance of a range of algorithms in SARscape starting with version 5.1+. Unlike other similar frameworks 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 processing pipelines to cope with this shift in the programming paradigm.

GPUs and other modern massively parallel devices 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.

GPUs are a cost-efficient solution to deal with the increasing big data issue of today’s SAR processing.

Q: Do I need a recent graphics card to run SARscape?
No. Unlike CUDA, where an NVidia GPU is required to run any CUDA-related application, 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, double precision (FP64) support and 1 GB of device memory are required. OpenCL 1.2 devices not satisfying the minimum requirements are not listed among the available ones under the SARscape → Preferences → General Parameters. If you plan to buy some hardware for explicit usage with SARscape 5.1+, feel free to contact us for some updated recommendations depending on your needs.

Q: I don’t have any GPU in my computer: can I run SARscape?
Yes: through the SARscape installer for Windows you can directly check the option to install the Intel CPU-only OpenCL runtime (under Linux it is up to you to download and install a package compatible with your distribution). The Intel CPU-only OpenCL runtime supports most of the recent Intel (and some AMD) CPUs.

If your CPU is relatively old or not supported by the Intel CPU-only runtime, you can always download and install the AMD CPU-only OpenCL runtime, which is 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.9.1 even if more recent versions are available. Additional information is provided in our OpenCL installation notes.

Q: Will SARscape run faster on my computer with two (or more) GPUs connected through NVidia SLI or AMD 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. Only one single device can be used by SARscape for a given processing: if several devices are available, it is up to the end-user to specify which one to use (under SARscape → Preferences → General Parameters).

If performance is critical for your mission, you might consider switching to the SARscape for Cluster edition, which splits the workload over a series of distributed nodes that can run on multiple computers, each one with one or more GPUs. Feel free to contact us for additional information.