我真的需要一个OpenCL SDK吗



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

我对使用OpenCL的理解如下:

  1. 下载Kronos在Khronos OpenCL注册表中维护的OpenCL头文件,并将其提供给您的编译器
  2. 根据OpenCL.dll编译代码和链接

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

有人能说清楚吗?

您的理解是绝对正确的-您不需要任何供应商的SDK来开发或运行OpenCL程序。您所需要的只是要链接的标头和库。供应商SDK提供的示例代码在您学习如何使用OpenCL时可能会很有用,它们还可能提供有助于开发的工具。

在Windows上,您将需要一个OpenCL.lib库进行链接,SDK确实提供了该库。如果你愿意,你可以下载这个库的源代码并自己构建它。

然而,使用特定供应商的SDK并没有害处。他们在SDK中提供的头文件和库应该只是您可以自己下载的Khronos版本。这意味着,使用一个供应商的SDK构建的OpenCL应用程序在与其他供应商的设备相比仍然可以正常运行。

最新更新