【问题标题】:OpenCL SDK overview and hardware interoperabilityOpenCL SDK 概述和硬件互操作性
【发布时间】:2013-02-24 08:35:59
【问题描述】:

我对 OpenCL 开发的整体情况有点困惑,所以我将我目前的理解和问题列一个列表。如果我错了,请纠正我。

  1. 我知道英特尔、AMD 有 SDK(“平台”)(我猜 Nvidia SDK 中也支持 OpenCL?)

  2. 是否有其他供应商的 SDK?

  3. 一个供应商的 SDK 会支持另一个供应商的设备吗?例如带有 AMD sdk 的 Nvidia 设备?我可以使用 AMD SDK 在我的 Intel CPU 上运行程序。

  4. 这是一次安装多个平台并在运行时处理它们的方法吗?

谢谢!

【问题讨论】:

标签: opencl gpu gpgpu


【解决方案1】:

1) Intel SDK 为 CPU 和 GPU 设备(例如 i7、HD4000、Xeon Phi 等)提供 OpenCL 1.2 支持,AMD SDK 为 CPU 和 GPU 设备(例如 Opteron、HD5xxx、HD6xxx、 HD7xxx 等),NVIDIA SDK 仅为 GPU 提供 OpenCL 1.1 支持(例如 GTX 2xx、GTX 4xx、GTX 5xx、Tesla 等)。

2) 是的,来自 Apple、ARM 等。

3) 是的,感谢 OpenCL ICD,您可以在 NVIDIA SDK 上编译可执行文件并在 AMD 硬件上运行。但是,您必须小心使用 OpenCL 版本,使用 OpenCL 1.2 SDK 编译并在 1.1 上运行可能会出现一些问题。平台。

4) 是的,您可以在运行时查询 OpenCL 以获取可用平台列表并使用其中一个或所有平台。我将日常的 Intel OpenCL CPU 设备与多个 AMD OpenCL GPU 设备并排使用。

【讨论】:

    【解决方案2】:

    这是How to use 2 OpenCL runtimes 的副本,已回答。简短的回答:SDK 只是为您提供标题。安装的驱动程序提供平台和设备。您可以使用任何已安装的。

    【讨论】:

      【解决方案3】:

      英特尔 OpenCL SDK 支持 CPU 的 OpenCL 1.2,但仅支持英特尔 HD 的 OpenCL 1.1。引用他们的网页“OpenCL 1.2 on CPU with OpenCL 1.1 on Intel® HD Graphics”。但是,Intel HD 的驱动程序似乎不是很好。它会在运行在其他所有东西上的大多数代码上崩溃。

      Nvidia SDK 不包含 C++ 绑定文件 cl.hpp。您可以从另一个 SDK 复制它或从 Khronos Group OpenCL 站点获取它。

      我在使用 AMD SDK 的非 AMD 设备上运行 OpenCL 时遇到问题,因此我改用 Intel SDK,它可以在 AMD、Intel 和 Nvidia 上运行。但是,1.1 C++ 绑定和 1.2 C++ 绑定不是 100% 兼容的。如果您希望您的代码同时在 Nvidia 和 AMD GPUS 上运行,请仅使用 OpenCL 1.1,并且此定义: #define CL_USE_DEPRECATED_OPENCL_1_1_APIS

      【讨论】:

        猜你喜欢
        • 2013-07-27
        • 2012-04-12
        • 2016-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-05
        • 1970-01-01
        相关资源
        最近更新 更多