我的应用程序是OpenCL 1.1兼容的,我想检查每个设备是否都有该版本的驱动程序。有两种方法:
我有以下怀疑:
答案 0 :(得分:5)
OpenCL中有一些具有硬件要求的功能。这意味着即使特定供应商的OpenCL实施(平台)支持OpenCL版本,设备也可能不支持。因此,CL_DEVICE_VERSION
和CL_PLATFORM_VERSION
查询返回的版本完全有可能不同。
当OpenCL 2.0实施开始出现时,这可能会更频繁地发生,因为市场上有大量硬件没有对OpenCL 2.0功能的必要支持。想象一个系统有两个来自 Vendor X 的设备:一个可以运行OpenCL 2.0的新 Device A ,以及一个更老的 Device B “T。在这种情况下,平台版本可能是OpenCL 2.0,但设备版本可能是 Device A 的OpenCL 2.0和的OpenCL 1.2 >设备B 。
CL_DRIVER_VERSION
用于获取实施的供应商特定版本号。此数字可以使用供应商用于跟踪不同软件版本的任何版本编号系统,并且完全独立于OpenCL版本号(尽管某些供应商也可能在此处包含OpenCL版本)。
因此,为了确保设备和平台都支持您所需的OpenCL版本,您只需要检查CL_DEVICE_VERSION
。