获取 "cl_version.h."。CL_TARGET_OPENCL_VERSION is not defined. 默认为220 (OpenCL 2.2) "警告。

问题描述 投票:0回答:1

以下 这个这个 的帖子,我正在整理 main.c 码上 这个GitHub的Gist.

运行CMake命令 find_package(OpenCL REQUIRED) 我得到了这个。

-- 寻找CL_VERSION_2_2 - 找到 -- 找到OpenCL: C:Program Files (x86)IntelSWToolssystem_studio_2020OpenCLsdklibx86OpenCL.lib (找到版本 "2.2")

表示发现了OpenCL SDK 2.2版本。这与我从以下方面得到的信息相矛盾 clinfo 工具,检测到一个1.2的OpenCL for Intel's SDKplatforms。现在当运行可执行文件时,我得到的是

cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. 默认为220 (OpenCL 2.2)

我的问题是:为什么我得到两个不同版本的OpenCL。

  1. 为什么我从CMake和... clinfo?
  2. 我在运行时收到的警告是什么,如何解决?

P.S. 这里是 的输出。cmake .. --debug-find

c windows cmake opencl intel
1个回答
2
投票

SDK中的OpenCL版本和clinfo报告的OpenCL版本是两码事。

  • clinfo报告的是你的GPU支持的OpenCL版本。
  • SDK OpenCL版本是SDK支持的最大版本。

如果你在程序中使用OpenCL 2.0,而你的GPU支持OpenCL 1.2,那么我怀疑其中一个CL函数会报错,或者程序会有未定义的行为。你可以在你的程序中设置目标OpenCL版本,使用 #define CL_TARGET_OPENCL_VERSION <version>例如

#define CL_TARGET_OPENCL_VERSION 120

然后目标版本以上的API就不应该出现了。

© www.soinside.com 2019 - 2024. All rights reserved.