SARscape 5.* OpenCL FAQLast update: A. Peternier, 25/10/2018Q: 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), field/programmable gate arrays (FPGAs), etc. OpenCL is an open standard adopted by the majority of today's hardware manufacturers. We are using OpenCL in SARscape to improve the performance of a range of algorithms starting with version 5.1. Unlike other similar frameworks like Nvidia CUDA, OpenCL is not limited to a 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 provide 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 some 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 Common → General Parameters. If you plan to buy some hardware for explicit usage with SARscape, 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 works on almost any recent Intel or AMD CPU. If your CPU is relatively old or not supported by the Intel CPU-only runtime, you can always download and install a previous, older version of the Intel CPU-only runtime. 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 Common → General Parameters). If performance is critical for your mission, you might consider our SARscape Cluster module, 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. |