Arnold
Arnold

Reputation: 4840

OpenCL double precision error on Surface 3 pro

I have created some benchmark program to test some characteristics of OpenCL. This has run on several platforms: core i7-920/nvidia 1060 and a double Xeon-2660/Radeon 480. This all worked fine. When I run it on a surface 3 pro I get the following output:

Platform Intel(R) OpenCL contains 2 devices
   Device does not support double precision, skipped: CLDevice [id: 3642688 name: Intel(R) HD Graphics 5000 type: GPU profile: FULL_PROFILE]
   CLDevice [id: 3632160 name: Intel(R) Core(TM) i7-4650U CPU @ 1.70GHz type: CPU profile: FULL_PROFILE]
  Platform: plIntel, processor: ptIntel, double fp: true, AMD fp: false


Devices used:
CLDevice [id: 3632160 name: Intel(R) Core(TM) i7-4650U CPU @ 1.70GHz type: CPU profile: FULL_PROFILE]

Running benchmark for 1 devices.
Benchmarking Intel(R) Core(TM) i7: 0 1 2 3 4 4409 ms
Queue pool, tasks per queue = 16: 0 Exception in thread "main" com.jogamp.opencl.CLException$CLBuildProgramFailureException: 
CLDevice [id: 3642688 name: Intel(R) HD Graphics 5000 type: GPU profile: FULL_PROFILE] build log:
:2:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:3:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:4:34: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:22:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:23:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:24:34: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:42:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:43:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:44:34: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:63:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:64:40: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:65:34: error: use of type 'double' requires cl_khr_fp64 extension to be enabled

error: front end compiler failed build. [error: CL_BUILD_PROGRAM_FAILURE]
    at com.jogamp.opencl.CLException.newException(CLException.java:84)

As you can see both the graphics and the processor are recognized, but the graphics does not support double precision and is skipped by the software. The processor however should support double precision. But is does not compile. Is there something specific about the surface 3 pro that it does not run? It runs on Java and jocl.

Edit

The software builds a list of devices and only selects devices that possess the cl_khr_fp64 property. The CPU of the Surface 3 pro (an i7-4950U) does have this property. In the .CL code the first line is: #pragma OPENCL EXTENSION cl_khr_fp64 : enable.

Upvotes: 0

Views: 151

Answers (0)

Related Questions