Surface 3 pro上的OpenCL双精度错误

Surface 3 pro上的OpenCL双精度错误,opencl,jocl,Opencl,Jocl,我创建了一些基准程序来测试OpenCL的一些特性。这已在多个平台上运行:core i7-920/nvidia 1060和双Xeon-2660/Radeon 480。这一切都很好。当我在surface 3 pro上运行它时,我得到以下输出: Platform Intel(R) OpenCL contains 2 devices Device does not support double precision, skipped: CLDevice [id: 3642688 name: Inte

我创建了一些基准程序来测试OpenCL的一些特性。这已在多个平台上运行:core i7-920/nvidia 1060和双Xeon-2660/Radeon 480。这一切都很好。当我在surface 3 pro上运行它时,我得到以下输出:

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)
正如您所见,图形和处理器都可以识别,但图形不支持双精度,软件会跳过。但是,处理器应支持双精度。但它不编译。surface 3 pro是否有一些特定的功能没有运行?它在Java和jocl上运行

编辑


软件生成设备列表,并仅选择具有cl_khr_fp64属性的设备。Surface 3 pro(i7-4950U)的CPU具有此属性。在.CL代码中,第一行是:
#pragma OPENCL扩展名CL\u khr\u fp64:enable

igpu没有双精度计算能力,但cpu有,但您应该能够通过使用浮点数编写函数来模拟它。40 eu=320芯。如果函数每1dp触发器可以执行16次触发器,那么它的计算结果将相当于20个内核。那么它应该相当于3-5个cpu内核,cpu具有双精度,并且编译器仍然返回此错误。为什么呢?cl代码中发出了启用双精度的pragma。这不是仅针对igpu的错误吗?您能解释一下吗?GPU被过滤掉了:我只尝试使用CPU。