我真的需要OpenCL SDK吗?

den*_*nim 10 windows sdk opencl

我只是想让自己熟悉OpenCL,但当互联网上的每个人都在谈论下载特定于供应商的OpenCL SDK时,我感到很困惑.我为什么需要那个?

我对使用OpenCL的理解如下:

  1. 下载由Kronos在Khronos OpenCL Registry中维护的OpenCL头文件,并使其可供编译器使用.
  2. 编译代码并链接到OpenCL.dll.

它让我感到困惑的原因是因为我认为OpenCL应该抽象出特定于供应商的实现.如果我现在下载供应商特定的SDK不是那么这个优势被破坏了吗?

有人可以说清楚吗?

jpr*_*ice 18

您的理解绝对正确 - 您不需要任何供应商SDK来开发或运行OpenCL程序.您只需要标题和要链接的库.供应商SDK提供了在您学习如何使用OpenCL时可能有用的示例代码,并且它们还可以提供可以帮助开发的工具.

在Windows上,您需要一个OpenCL.lib可以链接的库,SDK会提供这些库.您可以下载此库的源代码并根据需要自行构建.

但是,使用特定供应商的SDK没有任何害处.他们在SDK中提供的标题和库应该是您可以自己下载的库存Khronos版本.这意味着使用一个供应商的SDK构建的OpenCL应用程序仍可以正常运行其他供应商的设备.