X
8573

Troubleshooting SARscape 5.1 installation issues related to Open-CL runtime on Windows

 

Overview

Background
Warning message
Troubleshooting and solution
     a. running "sarxinfo" tool
     b. how to read the “sarxinfo" log
     c. solution
     d. checking the result of the AMD CPU-only runtime installation
     e. using the new OpenCL device during SARscape processing

 

Background

With SARscape 5.1, the support of GPGPU-based technologies is added to increase the processing performance through parallelization. The solution is based 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 work with 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.
The user can have more than one version of OpenCL runtime installed on the target machine and can select which version should be used by SARscape at any time under the SARscape Preferences.

During the installation of SARscape 5.1 on Windows, the Intel CPU-only runtime is automatically installed to provide a fallback OpenCL implementation if no other workingCPU-only implementation of OpenCL is already available. 

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.

 

Warning message

In case the machine is old or the processor is not compatible with the above specifications, you can encounter the message reported below during the SARscape installation process. You may then need to perform some steps to have SARscape working properly on your machine. 

               
 

SARscape 5.1.0 64 bit has been successfully installed to:

    C:\Program Files\SARMAP SA\SARscape5.1

but no working OpenCL CPU-only runtime have been detected. We recommend to restart the system to see whether the problem gets fixed.

If after the restart you still have some OpenCL-related problem, please follow the instructions provided at this link (you might want to investigate the option of installing the AMD OpenCL CPU-only runtime):

 http://www.sarmap.ch/ocl/opencl-install.html

  

Troubleshooting and solution

a.running the "sarxinfo" tool

If you encounter the warning message above, the first thing to do is to run the "sarxinfo" tool, which is a command-line tool installed with SARscape and available under the exe_envi directory. The application should be executed from the console window and reports a summary of selected hardware and software characteristics of the machine, including available OpenCL platforms and devices. The report can be used to verify if OpenCL is properly installed and configured.

To run the tool, please proceed as follows:

  • open DOS prompt
  • run the command

        "C:\Program Files\SARMAPSA\SARscape 5.1\exe_envi\sarxinfo" filename

        where filename is the name of the output text file generated by the tool.

We recommend that you include this file as attachment when contacting technical support.

 

b. how to read the "sarxinfo" log

The output obtained by the "sarxinfo" tool looks like the one below:

 

 

------------------
Hardware topology:
------------------

 PC name  . . . . . :  PC_NAME
 CPU name . . . . . :  Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
 RAM  . . . . . . . :  2024 MB
 Systems  . . . . . :  1
 # of nodes . . . . :  1
 # of CPUs  . . . . :  1
 # of cores . . . . :  2
 # of PUs . . . . . :  2

----------------
Supported types:
----------------

 char . . . . . . . :  8 bit
 short  . . . . . . :  16 bit
 int  . . . . . . . :  32 bit
 long . . . . . . . :  32 bit
 long long  . . . . :  64 bit
 size_t . . . . . . :  64 bit
 float  . . . . . . :  32 bit
 double . . . . . . :  64 bit
 long double  . . . :  64 bit
 bool . . . . . . . :  8 bit
 pointer  . . . . . :  64 bit

-----------------
OpenCL platforms:
-----------------

 # of platforms . . :  2
  Platform 0  . . . :  NVIDIA CUDA
   Available devices:  1 (1 GPUs, 0 CPUs, 0 accelerators)
    Device 0  . . . :  Quadro NVS 290 (def.)
     Device type  . :  GPU
     Device version :  OpenCL 1.0 CUDA
     Driver version :  332.76
     Global mem size:  256 MB
     Local mem size :  16 KB
     Max mem object :  128 MB
     Address bits . :  32
     Compute units  :  2
     Global cache . :  0 KB
     Max clock freq.:  918 MHz
     Max workgroup  :  512
     Context check  :  passed

  Platform 1  . . . :  Intel(R) OpenCL
   Available devices:  1 (0 GPUs, 1 CPUs, 0 accelerators)
    Device 0  . . . :  Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (def.)
     Device type  . :  CPU
     Device version :  OpenCL 1.2 (Build 117)
     Driver version :  4.4.0.117
     Global mem size:  4027 MB
     Local mem size :  32 KB
     Max mem object :  1006 MB
     Address bits . :  64
     Compute units  :  2
     Global cache . :  6144 KB
     Max clock freq.:  3000 MHz
     Max workgroup  :  8192
     Context check  :  failed, reason 'Device not available'


 

The log is composed of three sections, where the most important is the last one, called "OpenCL platforms". This section lists the available OpenCL platforms located on the machine. In the example above, the system is provided with 2 OpenCL platforms: NVIDIA CUDA and Intel.

For each platform, here are the main points to look at:

  • Device version: SARscape requires at least OpenCL 1.1 version.
  • Context check: the results should be set to "passed" to have this device supported by SARscape.

With this in mind and looking to the above example, Platform 0 is too old (OpenCL 1.0) and Platform 1 did not pass the check (Context check  : failed, reason 'Device not available').

  

c. solution

The solution is then to install the AMD CPU-Only runtime device, as explained in the section 2 of the below webpage, under OpenCL runtimes > CPU-only > AMD CPU-only runtime:

 http://www.sarmap.ch/ocl/opencl-install.html

 

d.checking the result after the AMD CPU-only runtime installation

Once the AMD CPU-only runtime has been installed, we suggest to run again the "sarxinfo" tool and look at the new output, to be sure that the new device is up and running. Find below the "OpenCL platforms" section ofthe new output obtained by the same machine as above:

   
 

-----------------
OpenCL platforms:
-----------------

 # of platforms . . :  3
  Platform 0  . . . :  NVIDIA CUDA
   Available devices:  1 (1 GPUs, 0 CPUs, 0 accelerators)
    Device 0  . . . :  Quadro NVS 290 (def.)
     Device type  . :  GPU
     Device version :  OpenCL 1.0 CUDA
     Driver version :  332.76
     Global mem size:  256 MB
     Local mem size :  16 KB
     Max mem object :  128 MB
     Address bits . :  32
     Compute units  :  2
     Global cache . :  0 KB
     Max clock freq.:  918 MHz
     Max workgroup  :  512
     Context check  :  passed

  Platform 1  . . . :  Intel(R) OpenCL
   Available devices:  1 (0 GPUs, 1 CPUs, 0 accelerators)
    Device 0  . . . :  Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (def.)
     Device type  . :  CPU
     Device version :  OpenCL 1.2 (Build 117)
     Driver version :  4.4.0.117
     Global mem size:  4027 MB
     Local mem size :  32 KB
     Max mem object :  1006 MB
     Address bits . :  64
     Compute units  :  2
     Global cache . :  6144 KB
     Max clock freq.:  3000 MHz
     Max workgroup  :  8192
     Context check  :  failed, reason 'Device not available'

  Platform 2  . . . :  AMD Accelerated Parallel Processing
   Available devices:  1 (0 GPUs, 1 CPUs, 0 accelerators)
    Device 0  . . . :  Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (def.)
     Device type  . :  CPU
     Device version :  OpenCL 1.2 AMD-APP (1214.3)
     Driver version :  1214.3 (sse2)
     Global mem size:  4027 MB
     Local mem size :  32 KB
     Max mem object :  2048 MB
     Address bits . :  64
     Compute units  :  2
     Global cache . :  32 KB
     Max clock freq.:  2992 MHz
     Max workgroup  :  1024
     Context check  :  passed

A third device is now listed: Platform 2, related to the new AMD device installed. This device has a version compatible with SARscape (OpenCL 1.2) and it passed the context check. The new device is then up and ready to be used by SARscape.

 

e. using the new OpenCL device during SARscape processing

To be sure SARscape is taking into account the newly installed OpenCL device, please :

  • open ENVI,
  • in the ENVI toolbox go to SARscape > Preferences
  • select the tab General Parameters
  • look for the available devices under "General Platform type".

The device identified above as the one properly installed and running should be the one selected in the SARscape preferences, in order to be able to run SARscape. If the wrong platform is selected (i.e. Platform 1 in the above example), the SARscape processing will fail.

        

If you encounter an issue related to the OpenCL, don't hesitate to contact Harris Geospatial technical support and provide the log from the "sarxinfo" tool.

 

Written by CS on  8/10/2014, reviewed by BC, PS and MM